- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 verilog 中创建一个多级比较器,但我不知道如何在单个生成循环中增加多个 genvar。我正在尝试以下操作:
genvar i,j;
//Level 1
generate
j=0;
for (i=0;i<128;i=i+1)
begin: level1Comp
assign ci1[i] = minw(tc[j],tc[j+1]);
j = j+2;
end
endgenerate
并出现以下错误:
Error-[SE] Syntax error
Following verilog source has syntax error :
"encoder.v", 322: token is '='
j=0;
有人知道如何在同一个生成语句中增加多个 genvar 吗?或者至少获得同等的功能?
最佳答案
Anyone know how to increment multiple genvars in the same generate statement?
这是不允许的,因为生成 for 循环会为循环变量创建隐式 localparam 语句,并仅根据该 localparam 详细说明循环中的项目。这意味着如果 genvar 被声明为 localparam,则循环内的任何项目都必须在循环外有效。
genvar i,j;
//Level 1
generate
j=0;
for (i=0;i<128;i=i+1)
begin: level1Comp
assign ci1[i] = minw(tc[j],tc[j+1]);
j = j+2;
end
endgenerate
变成了
//Done for each value of i
genvar j;
localparam integer i = i_for_each_iteration;
j=0; //Not valid outside a procedural context so modelsim complains
assign ci1[i] = minw(tc[j],tc[j+1]);
j = j+2; //Also not valid outside a procedural context
在这种情况下,您可以使用循环内的显式参数创建一个依赖于 genvar 的“常量”值。
genvar i;
//Level 1
generate
for (i=0;i<128;i=i+1)
begin: level1Comp
localparam integer j = i*2;
assign ci1[i] = minw(tc[j],tc[j+1]);
end
endgenerate
关于hardware - 在 Verilog 生成语句中递增多个 Genvar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9561762/
我正在尝试在 verilog 中创建一个多级比较器,但我不知道如何在单个生成循环中增加多个 genvar。我正在尝试以下操作: genvar i,j; //Level 1 generate j=0
我试图让模块通过 ISE 12.4 中的语法检查,但它给了我一个我不明白的错误。首先是代码片段: parameter ROWBITS = 4; reg [ROWBITS-1:0] temp; genv
我是Verilog的新手,我需要编写一个简单的测试平台,但是出现错误,我无法理解为什么它是 这是我的代码 `timescale 1 ns / 1 ns module test_bench_lb2; r
我是一名优秀的程序员,十分优秀!