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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
楼主: john3851

[求助] 求教,verilog里面能在if语句中使用assign吗

[复制链接]
发表于 2011-9-29 15:25:08 | 显示全部楼层
要在always块里面
回复 支持 反对

使用道具 举报

发表于 2011-9-29 15:40:23 | 显示全部楼层
没这样用过。
回复 支持 反对

使用道具 举报

发表于 2011-9-29 17:12:26 | 显示全部楼层
reg aa;
always @(aa or bb or cc)
if(xxx)
aa = bb;
else
aa = cc;

等价于
wire aa;
assign aa = (xxx) ? bb : cc;
回复 支持 反对

使用道具 举报

发表于 2011-9-29 17:13:37 | 显示全部楼层
reg aa;
always @(aa or bb or cc)
if(xxx)
aa = bb;
else
aa = cc;

等价于
wire aa;
assign aa = (xxx) ? bb : cc;
回复 支持 反对

使用道具 举报

发表于 2011-9-29 22:32:26 | 显示全部楼层
不行,这样综合过不了的
回复 支持 反对

使用道具 举报

发表于 2011-9-30 12:11:02 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2011-9-30 12:55:27 | 显示全部楼层
同意8楼~虽然定义的是reg型~但综合出来还是组合逻辑
回复 支持 反对

使用道具 举报

发表于 2011-9-30 16:25:16 | 显示全部楼层
肯定是不行的啊
Verilog里面几个进程是并发执行,不能是包含关系
initial
always
assign
task
这三个必须得单独做为一个进程
回复 支持 反对

使用道具 举报

发表于 2011-9-30 23:30:22 | 显示全部楼层
reg aa;
always @(*)   //// 要写成*   否则易错
if(xxx)
aa = bb;
else
aa = cc;

等价于
wire aa;
assign aa = (xxx) ? bb : cc;


都是组合电路     不会产生寄存器
第一个写法之所以写成 reg  aa 是因为语法要求always里面被赋值的必须是reg,综合出来是wire
回复 支持 反对

使用道具 举报

发表于 2011-9-30 23:37:17 | 显示全部楼层
呃。。。建议楼主先看看Verilog的书
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2025-8-3 18:56 , Processed in 0.022458 second(s), 3 queries , Gzip On, Redis On.

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