verilog寄存顺序的、参数化的环形计数器
本帖最后由 fpgaw 于 2010-7-9 13:22 编辑题目如下:
设计并验证具有下图所示寄存顺序的、参数化的环形计数器。
0001
0010
0100
1000
0100
0010
0001
即刚开始左移,至最左边右移,如此循环。
我编的程序如下:
1module counter(state,clr,count,reset);
2output state;
3input clr,reset,count;
4parameter width=4;
5reg state
6clr=0;
7reset=1;
8for(count=0;count<8;count=count+1)
9always@(posedge clr or posedge reset)
10if(reset)
11begin
12state=4'b0001;
13count=0;
14end
15else if(count<4)
16state=state<<1;
17 else
18state=state>>1;
19 endmodule
编译时出现错误
Error: D:/flexlm/win32/1.v(6): near "b": syntax error, unexpected "IDENTIFIER", expecting ';' or ','
我不知道怎么办才好!! 5 reg state<br>
改为<br>
5 reg state;<br>
<br>
麻烦下一回先仔细检查检查. 我觉得你的算法就有问题,试想综合器能够综合一周期内把最高位移到最低位吗?设计电路时心中现有电路,再有代码。改为<br>
always@(posedge clk)<br>
shifter<={shifter,shifter}; 又看了一遍你的程序,always居然在for里面<br>
很想说一句话<br>
回去把教材再念一遍! 对。多看教程啊 always@(posedge clr or posedge reset)这个啥意思 ?太繁琐
页:
[1]