集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 4445|回复: 5

verilog寄存顺序的、参数化的环形计数器

[复制链接]
usd 发表于 2010-6-27 22:12:30 | 显示全部楼层 |阅读模式
本帖最后由 fpgaw 于 2010-7-9 13:22 编辑

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-5-14 19:18 , Processed in 0.076988 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表