【正确答案】用Verilog HDL按照题图所示的状态转换图设计六进制计数器电路的源程序cnt6_a. v如下。
module cnt6_a(clk,q,cout);
input clk;
output reg[2:0] q;
output reg cout;
parameter[2:0] st0=' b010,stl=' b011,st2=' b111,st3=' b110,st4=' b100,st5='b000
always @(posedge clk)
begin
case(q)
st0:q=st1;
stl:q=st2;
st2:q=st3;
st3:q=st4;
st4:q=st5;
st5:q=st0;
default:q=st0;
endcase
if(q==st5)cout=1;
else cout=0;
end
endmodule
在源程序中,clk是时钟输入端,上升沿有效;q是计数器的3位状态输出端,cout是进位输出端。在程序中还设置了6个参数(parameter) st0, stl、st2 , st3 , st4和st5,分别代表状态转换图中的各个状态。计数器的仿真结果如下图所示。
【答案解析】