首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于SystemVerilog中tri数据类型的几个问题

关于SystemVerilog中tri数据类型的几个问题
EN

Stack Overflow用户
提问于 2015-06-26 17:07:35
回答 1查看 2.8K关注 0票数 2

这些天我才开始使用“tri”数据类型。我在两个不同的模块中应用了这个数据类型。它在逻辑和结构模拟方面为第一个模块提供了很好的服务(在合成之前),基本上我有一堆逻辑线分配给相同的三层,如下所示:

代码语言:javascript
运行
复制
logic wire1;
logic wire2;
logic wire3;
tri tri1;

assign tri1 = wire1;
assign tri1 = wire2;
assign tri1 = wire3;

在IEEE for SystemVerilog中,它说

线网可用于由单栅或连续分配驱动的网。在多个驱动程序驱动一个网络的情况下,可以使用tri-网类型。来自同一强度的多个源的逻辑冲突会导致x(未知)值。

所以我想它的工作原理和上面的密码一样。但是,当我将相同的逻辑应用于第二个模块时,

代码语言:javascript
运行
复制
integer var_a, var_b, var_c, var_cnt;
logic arrWire1[1:0][3:0];
logic arrWire2[1:0][1:0];
logic arrWire3[1:0];
tri triArrWire[7:0];

always_comb begin
  var_cnt = 7;
  for (var_a=1; var_a<=0; var_a--) begin
    for (var_b=1; var_b<=0; var_b--) begin
      for (var_c=(1+var_b*2); var_c<=var_b*2; var_c--) begin
        triArrWire[var_cnt] = arrWire1[var_a][var_c];
        triArrWire[var_cnt] = arrWire2[var_a][var_b];
        triArrWire[var_cnt] = arrWire3[var_a];
        var_cnt --;
      end
    end
  end
end

ModelSim对此的抱怨:

(vlog-2110)非法引用网络"triArrWire“。

基本上,第二个模块所做的就是简单地模仿第一个模块,但是在一个always_comb块中。但是为什么它不通过ModelSim编译检查呢?我是不是漏掉了什么?

另一方面,是否通常将不同的电线连接到一根电线上?我这么做的原因是因为大部分的电线都是在高阻抗的z上,其中只有一条会有0或1并驱动三网。这使我想要将它们合并到一个三网中,以便更容易地将其作为模块的输出。

任何想法都欢迎。我非常感谢你在这里的帮助。

台海

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-26 23:57:29

你不被允许做程序上的分配给电线。要建立连接,您需要像在第一个模块中所做的那样使用一个连续的分配。要做到这一点,您需要一个生成-for循环。类似于:

代码语言:javascript
运行
复制
for (genvar var_a=1; var_a<=0; var_a--) begin
  for (genvar var_b=1; var_b<=0; var_b--) begin
     for (genvar var_c=(1+var_b*2); var_c<=var_b*2; var_c--) begin
        parameter var_cnt = (some expression of var_a and var_b); 
        assign triArrWire[var_cnt] = arrWire1[var_a][var_c];
        assign triArrWire[var_cnt] = arrWire2[var_a][var_b];
        assing triArrWire[var_cnt] = arrWire3[var_a];
     end
  end
end       

我让你自己找出这句话,应该不会太难.

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

https://stackoverflow.com/questions/31078569

复制
相关文章

相似问题

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