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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 8434|回复: 15

[求助] 初学者对于verilog assign赋值语句的小困惑

[复制链接]
发表于 2016-10-6 21:56:12 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 wenfangsibao 于 2016-10-7 22:05 编辑

简单地问,就是在赋值语句里加不加assign有什么区别呢,比如:1) assign a=b;
2)            a=b;
会产生什么不同的结果吗?
发表于 2016-10-7 11:36:52 | 显示全部楼层
赋值语句?能说具体点吗?或帖写程序除出来
 楼主| 发表于 2016-10-7 18:42:23 | 显示全部楼层
回复 2# wzc92

我想写一段关于alu的代码,里面有加法器。除了module里的端口列表以为,需要一些内部逻辑的定义。对于这些内部逻辑的定义,比如中间的那些超前进位输出c1,c2,....,该怎样定义呢?加不加assign?
发表于 2016-10-9 10:29:01 | 显示全部楼层
加assign,基本上就是组合逻辑;
不加,那一般你得写在always语句里,变成时序逻辑;
这个得看设计者,你的意愿。
发表于 2016-10-9 10:44:53 | 显示全部楼层
不太明白楼主的具体意思,难道说得是以下两种方式?
1) wire[BIT-1:0] b;
assign b=a;
2)wire [BIT-1:0] b=a ;

我写code倒是经常用第二种方式,好像跟第一种没差。
发表于 2016-10-11 17:41:07 | 显示全部楼层
两种方式综合出来的电路不一样。 第二种属于声明时同时赋初值,第一种的assign,当a有变化时马上传递给b。
发表于 2016-10-23 18:16:00 | 显示全部楼层
回复 5# wuxiaoqing1


   你说的第二种方式我倒是很少用。这样的赋值方式,我一般多用reg或parameter。   我的意思是两种赋值方式:
   1、assign b=a;
   2、always @(*/posedge clk) //分组合和时序
            b=a;
发表于 2016-12-15 15:45:51 | 显示全部楼层




组合没差别,如果是时序当然有差别
发表于 2016-12-27 12:35:44 | 显示全部楼层
楼主的意思为什要有assign,  
没有为什么,标准中定义的连续赋值就只有assign a=b,没有a=b,而你又要用连续赋值来描述电路那你说你用什么语句。
发表于 2016-12-27 15:28:22 | 显示全部楼层


回复  wuxiaoqing1


   你说的第二种方式我倒是很少用。这样的赋值方式,我一般多用reg或parameter。  ...
wzc92 发表于 2016-10-23 18:16




   组合电路时,没差别。
   放在always里,一般是组合电路有点复杂,条件多,用assign描述时太复杂,不好理解,放在always里用if...else...比较清晰明了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-24 18:13 , Processed in 0.030909 second(s), 9 queries , Gzip On, Redis On.

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