在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 526|回复: 6

[求助] Verilog初学,求助

[复制链接]
发表于 2024-1-29 10:19:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
我准备设计一个从1-12的计数器,带同步复位端,下面是我的代码.但报的错误我不太明白.
2cfc394941ffa6e70f2240320cc8cc0.png
0ebaa3a4180073184c4d19563f0948b.png
发表于 2024-1-29 10:55:22 | 显示全部楼层
本帖最后由 harry_hust 于 2024-1-29 11:07 编辑

Q既然不是 counter,那么就可以不用复位,可以删掉always block;把 reset 给到 the_counter 里面去复位里面的 counter 即可;

报的问题与语法相关,Q 放到了同步时序 always block 里面,那就需要定义为 reg,但其又被assign 为 the_counter 的输出,这里就冲突了;
Q 在 always block 里面仅有复位,没有 function,这个相当于没有实际意义。
 楼主| 发表于 2024-1-29 11:30:57 | 显示全部楼层


harry_hust 发表于 2024-1-29 10:55
Q既然不是 counter,那么就可以不用复位,可以删掉always block;把 reset 给到 the_counter 里面去复位里 ...


确实,我把always去掉就成功了.但我有一个疑问,Q在the_counter中也是reg型的(子模块的定义见下图),并不会被定义为线网型呀.
dde7fe36b2d9b793b2463ce79852831.png
发表于 2024-1-29 14:03:12 | 显示全部楼层
本帖最后由 harry_hust 于 2024-1-29 14:04 编辑


2558966080 发表于 2024-1-29 11:30
确实,我把always去掉就成功了.但我有一个疑问,Q在the_counter中也是reg型的(子模块的定义见下图),并不会 ...


Q有实际 function 就不会被综合为 wire; wire 和 reg 只作用于当前模块。还是先看看语法吧
 楼主| 发表于 2024-1-29 17:47:33 | 显示全部楼层


harry_hust 发表于 2024-1-29 14:03
Q有实际 function 就不会被综合为 wire; wire 和 reg 只作用于当前模块。还是先看看语法吧
...


ok,谢谢了
发表于 2024-1-30 11:58:21 | 显示全部楼层
本帖最后由 new_fast 于 2024-1-30 14:01 编辑

有个网站叫HDLBits,可以练习代码写法。
你这个Q莫名其妙写个复位,感觉你有点想在其他always模块里给它赋值,这是绝对不行的,一个寄存器只能在一个always块里赋值。代码最终是要转换成电路的,你初学代码可以试着把自己写的代码画成电路,寄存器+组合逻辑的形式。电路里寄存器就是寄存器,wire就是wire,不会混的,也不可能画出来一个寄存器有两个输入。
 楼主| 发表于 2024-2-3 01:22:36 | 显示全部楼层


new_fast 发表于 2024-1-30 11:58
有个网站叫HDLBits,可以练习代码写法。
你这个Q莫名其妙写个复位,感觉你有点想在其他always模块里给它赋 ...


好的,很感谢! 我正在HDLbits上练习, 初学语法不太熟悉,所以总犯一些低级错误.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-28 17:51 , Processed in 0.032363 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表