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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 7307|回复: 12

[求助] 如何用Verilog实现多个信号的逻辑运算?

[复制链接]
发表于 2010-4-21 15:59:36 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 goldenmelon 于 2010-4-21 16:24 编辑

我想实现多个wire类型的信号的与运算,但是信号的个数很多,我的写法是:
assign pt=g0[0]&g0[1]&g0[2]&g0[3]&g0[4]&g0[5]&g0[6]&g0[7]&g0[8]&g0[9]&g0[10]&g0[11]&g0[12]&g0[13]&g0[14]&g0[15]&g0[16]&g0[17]&g0[18]&g0[19]&g0[20]&g0[21]&g0[22]&g0[23]&g0[24]&g0[25]&g0[26]&g0[27]&g0[28]&g0[29]&g0[30]&g0[31];
但是按照上面的写法不仅复杂,而且容易写错或漏写某个信号,请教高手给出一个简单的写法,就是类似generate的方法,用一个生成语句直接生成?
发表于 2010-4-21 16:08:53 | 显示全部楼层
位与
Verilog有专门的运算符。
 楼主| 发表于 2010-4-21 16:22:48 | 显示全部楼层
位与不行啊,因为位与是寄存器变量才可啊,线网变量的位与编译不通过。
 楼主| 发表于 2010-4-21 16:47:23 | 显示全部楼层
急盼高手指教
 楼主| 发表于 2010-4-21 18:07:44 | 显示全部楼层
好像用always语句可以实现
发表于 2010-4-21 18:14:24 | 显示全部楼层
如果是 g0[31:16] & g0[15:0]
再來 g0[15:8] & g0[7:0]
再來 g0[7:4] & g0[3:0]  ..

還是有更好方式 ?
发表于 2010-4-21 20:11:22 | 显示全部楼层
assign  pt = &g0[31:0];
 楼主| 发表于 2010-4-21 20:34:41 | 显示全部楼层
assign  pt = &g0[31:0]; 当g0是线网类型时,编译不通过
发表于 2010-4-22 13:54:54 | 显示全部楼层
线网不行,你就再声明一组寄存器变量不就行了
发表于 2010-4-22 14:32:07 | 显示全部楼层
我问你,这些要相与的信号从哪里来的?不可能在这之前没有寄存器吧?
用那些个寄存器位与下不就行了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-9 01:43 , Processed in 0.021646 second(s), 6 queries , Gzip On, Redis On.

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