首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在标准的"SRL16E“实例化中使用"gen_srl16”?

为什么在标准的"SRL16E“实例化中使用"gen_srl16”?
EN

Stack Overflow用户
提问于 2015-08-18 19:21:10
回答 1查看 115关注 0票数 0

我有这个代码片段。这是一个标准的实例化,但是为什么要使用gen_srl16

我一直认为SRL16E srl16e (...就足够了。

代码语言:javascript
复制
genvar i;

generate
for (i=0;i<WIDTH;i=i+1)
begin : 
    gen_srl16
    SRL16E srl16e(
            .Q(dataout[i]), 
            .A0(a[0]),.A1(a[1]),.A2(a[2]),.A3(a[3]),
            .CE(write),.CLK(clk),.D(datain[i])); // CE -clock enable 
end
endgenerate
EN

回答 1

Stack Overflow用户

发布于 2015-08-18 22:40:05

在这种情况下,gen_srl16只是一个generate for-loop的名称。它与子模块实例化无关。

遵循Verilog规范(IEEE Std 1800-2012,ch.27.4):

循环中的生成块生成构造可以是命名的或未命名的(...) 如果生成块是命名的,它是生成块实例数组的声明。此数组中的索引值是genvar在细化过程中采用的值。这可以是一个稀疏数组,因为genvar值不必形成一个连续的整数范围。即使循环生成方案没有生成generate块的实例,也会认为该数组已声明。

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

https://stackoverflow.com/questions/32070991

复制
相关文章

相似问题

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