我们再用modelsim进行状态机仿真时,状态机state显示通常是以进制数字表示,我们更喜欢的是需要用当前状态表示(例如S0、S1等),这样以文本形式表示更利于调试。
下面用一个实例来说明
源文件:
module fsm_sale
(
input clk ,
input rst_n ,
input [1:0] in ,
output reg [1:0] out ,
output reg out_vld
);
reg [3:0] state ;
reg [3:0] n_state ;
localparam S0 = 4'b0001 ;
localparam S1 = 4'b0010 ;
localparam S2 = 4'b0100 ;
localparam S3 = 4'b1000 ;
always @(posedge clk or negedge rst_n)begin
if(!rst_n)
state <= S0;
else
state <= n_state;
end
always @(*)begin
case(state)
S0: begin
if(in==1)