我正在尝试用verilog编写一个关于银行操作的程序,所以只是一个简单的问题,我有客户队列和柜员柜台,我怎样才能向柜员柜台写一个公式。
下面我尝试写一些东西,但如果你有任何想法,如果它的错误或真实我想听。另外我需要实现if teller counter =customer counter
然后需要增加柜员柜台。非常感谢你的帮助!
always @ (posedge clk or posedge rst)
begin
case (current_state)
IDLE:
teller_count <= cust_count;
teller:
teller_count <= teller_count+1;
default:
teller_count <= teller_count;
endcase
end
答案 0 :(得分:0)
您可以通过编写两个单独的fsms来使您的生活更轻松,一个用于处理每个队列。或者至少两个总是块,每个块一个。
客户方看起来像
if (new_customer & !free_teller)
customer <= customer + 1
...
if (free_teller)
customer <= customer - 1
出纳员看起来像
at reset tellers = MAX_TELLER
...
if (tellers == MAX_TELLER)
free_teller = 0;
else
free_teller = 1;
得到了主意?