我想要利用FSM寫一個電路,但不知道怎麼寫!
想請各位幫幫忙~
Module name my_controller
Signal Direction Description
clk input System clock
rst_n input reset signal, active low
mc_din[27:0] input input raw data
mc_op[3:0] input input operation (instruction)
mc_din_rdy input input data ready
ns_ack input The next stage acknowledgement signal
mc_dout[27:0] output output data
mc_dout_rdy output output data ready to next stage
mc_surplus [1:0] output data transfer surplus
mc_full output current stage full signal to preceding stage
功能需求:
FSM將根據mc_op [3:0]處理輸入數據mc_din [27:0]。
有關輸入數據的四種可能的操作:移位,補碼,補碼和忽略。
接下來將重複或更改的輸出數據由mc_op [1:0]控制。
FSM將產生這些控制信號以控制數據存儲觸發器。
您將需要一個階段管道來存儲處理的輸入數據。
另一方面,如果數據存儲已滿,您的FSM還會向您的前一級產生完整信號以保持輸出數據,並生成到下一級的就緒信號(mc_dout_rdy),以通知它輸出數據已準備就緒,直到下一級確認(ns_ack )。
operation function table
mc_op[3:2](decide the result ) mc_op[1:0] (control repeat)
00: input data shift 1 bit right 00: output the “input raw data” 1 time
01: do 1’s complement 01: output the “input raw data” 1 time and “result data” 1 time
10: do 2’s complement 10: output the “input raw data” 1 time and “result data” 2 times
11: ignore the input data , (no output)
mc_op[1:0] function is also ignoredclk. 11: output the ” input raw data” 1 time and “result data” 3 times
|