打印
[verilog]

请教高手 wire类型变量条件下如何赋值

[复制链接]
1408|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zzbbjj|  楼主 | 2022-11-18 12:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好像对wire类型条件下赋值只能用assign = ()?xxx:xxx方式,在使用的时候遇见两个问题

第一个问题是​assign = ()?xxx:xxx好像只能在inout端口使用,不能在内部使用否则会提示:WARNING:Xst:2042 internal tristates

are replaced by logic (pull-up yes),但是内部的wire类型条件赋值怎么办呢?我尝试用一个reg类型变量进行中转(reg变量用if语句赋

值,然后reg赋值给wire),结果仍提示WARNING:Xst:2042 ,我的使用场景是一个内部模块的输出在一定条件下连接到另外模块,

第二个问题是wire类型变量怎么在多个条件下赋值,比如如下的例程:

  inout[31:0] data;

   reg[7:0] data_1;

   reg[23:0] data_2;

   assign data[7:0] = (condition_1)? data_1:8'bz;   //条件1下给 data[7:0]赋值

   assign data[31:8] = (condition_2)? data_2:8'bz;​ //条件2下给 data[31:8]赋值

综合的时候会提示WARNING:Xst:2040 - Unit top: 24  multi-source signals are replaced by logic (pull-up yes)​

请问遇到这两种应用场景怎么办呢?​

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

3

帖子

1

粉丝