首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在systemverilog中将多个输入连接线连接成一条连接线(除了一个hi-Z之外的所有连接线)

如何在systemverilog中将多个输入连接线连接成一条连接线(除了一个hi-Z之外的所有连接线)
EN

Stack Overflow用户
提问于 2015-09-27 06:12:27
回答 3查看 410关注 0票数 0

假设除一条输入线路外的所有输入线路都处于Hi-Z状态。我们想把这些线连接到一条线上(例如数据总线)。在SystemVerilog中如何做到这一点呢?

EN

回答 3

Stack Overflow用户

发布于 2015-09-27 23:20:27

如果您指的是模块输入,那么alias构造可以做到这一点:

module a(input wire a,b,c); wire bus; // use if you want a different internal name alias a = b = c = bus; endmodule

我敢肯定这不会是可合成的。

票数 0
EN

Stack Overflow用户

发布于 2015-09-28 23:01:30

假设只有一个输入不是Z的条件成立,那么我们可以遍历并找到最后一个非Z输入,并将其值赋给输出。不知道这个能不能合成。

代码语言:javascript
复制
module merge_bus
  #(parameter BUSW = 8)
  (
   input [BUSW-1:0] bus_in,
   output wire_out
  );

  always_comb begin
    wire_out = 1'bz;
    for(int i = 0; i<BUSW; i++) begin
      if(bus_in[i] !== 1'bz) wire_out = bus_in[i];
    end
  end
endmodule
票数 0
EN

Stack Overflow用户

发布于 2015-09-30 18:10:36

您可以使用verilog中的wor/wand数据类型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32802537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档