门级Verilog语法
我在门级Verilog中有以下初始化门级Verilog语法,verilog,Verilog,我在门级Verilog中有以下初始化 bufx2 BH2_BUF ( .A(\mux_inst/aggr_portd_inst/dskw_inst/ds_mem_slice[4][5] ), .Z(\mux_inst/aggr_portd_inst/dskw_inst/ds_mem_slice_4__5_3) ); 我不太了解缓冲区的“Z”引脚连接到:“\mux_inst/aggr_portd_inst/dskw_inst/ds_mem_slice_4_5_3” 1.但“A”的连接不
bufx2 BH2_BUF (
.A(\mux_inst/aggr_portd_inst/dskw_inst/ds_mem_slice[4][5] ),
.Z(\mux_inst/aggr_portd_inst/dskw_inst/ds_mem_slice_4__5_3)
);
我不太了解缓冲区的“Z”引脚连接到:“\mux_inst/aggr_portd_inst/dskw_inst/ds_mem_slice_4_5_3”
1.但“A”的连接不清楚。2.在[4]和[5]之间是否应该有空格?对于Verilog二进制字,可以使用类似数组的语法访问每个位
//Create 24 bit word
reg [23:0] a_word;
reg a_bit;
//Access the MSB (bit 23)
initial begin
a_word = 24'b0;
a_bit= a_word[23] ;
end
可以添加额外的维度,最基本的二维数组通常称为内存。这里使用前面使用的语法,第一个[]
访问一个单词,使用双[]]
访问一个位
// Create 24 bit 10 deep memory
reg [23:0] a_memory [0:9];
integer i;
initial begin
for (i=0, i<10, i=i+1) begin
a_memory[i] = 24'b0;
end
//Access a word
a_word = memory[1];
//Access a bit
a_word[4] = memory[1][4];
a_bit = memory[1][4];
end
//创建24位10深内存
reg[23:0]a_内存[0:9];
整数i;
初始开始
对于(i=0,i合成工具可以对您的设计执行两个操作:
- 展平:它们将您的分层设计转换为一个没有分层结构的模块。在这种情况下,展平模块中与非展平模块中的信号相对应的所有信号名称
mux_inst.aggr_portd_inst.dskw_inst
都将具有前缀名称:\mux_inst/aggr portd_inst/dskw inst代码>。“\”用于转义“/”字符
- 位爆破:位爆破是将总线/阵列分解为其单个成员的术语。例如,最初定义为
逻辑[2:0]阵列
的阵列将被分解为:
logic \array[2] ;
logic \array[1] ;
logic \array[0] ;
同样,“\”用于转义“[”和“]”字符。如果它们是二维数组,则会有:logic\array[2][0];
,其作用类似于与数组的成员[2][0]相对应的单线
在您的例子中,合成器似乎同时执行了压扁和钻头爆破
可能有一种罕见的情况,合成器只在一个维度上执行位爆破,而将另一个维度作为数组。在这种情况下,\array[2][0];
的含义与logic\array[2][0];
不同。前者是名为\array[2]的数组的成员0
,而后者是钻头爆破的结果,对应于钻头爆破前阵列的索引[2][0]。右括号前应该有空格:.Z(\mux_inst/aggr_portd_inst/dskw_inst/ds_mem_slice_4_5_3)
主要问题是什么:(.a(\mux_inst/aggr_portd_inst/dskw_inst/ds_mem_slice[4][5])并且应该是[4]和[5]之间的空格。什么不清楚?为什么你认为应该有空格?为什么你对连接到Z
,而不是a
,感到高兴?谢谢,现在它的意思很清楚,我看到[4][5]之间不需要空格@Morgan:根据\mux\u inst/aggr\u portd\u inst/dskw\u inst/ds\u mem\u slice的定义,可能需要也可能不需要空格。如果\mux\u inst/aggr\u portd\u inst/dskw\u inst/ds\u mem\u slice[4]
是向量的名称,那么\mux\u inst/aggr\u portd\u inst/dskw inst/ds\u mem inst[4]
正在访问其第5位,在这种情况下需要一个空格。