我试图在具有不同分层时钟的生成块中实例化一个简单模块。但面对这个问题:
错误 - [SE]语法错误以下verilog源有语法错误: “testbench / tb / uflex_ilk_comp_ext_s10_top_cr3.sv”,242:令牌为'='
genvar j = i / 4; ^
`define CLK uflex_ilk_comp_ext_s10_top.dut.soft_pcs_pam4.pam4_phy_inst[j].pam4_phy.nphy.g_xcvr_native_insts[k].ct3_xcvr_native_inst.inst_ct3_xcvr_channel.inst_ct3_hssi_xcvr.ct3_hssi_xcvr_encrypted_inst.ct1_hssirtl_c3xcvr_inst.u_serdes.corif_serial_clk_tx
genvar i;
generate
for (i=0; i<NUM_LANES; i++) begin:delay_bmod_inst
genvar j=i/4; --> Using j and k in CLK define
genvar k=i%4;
txrx_delay_bmod #(.LANE_NUM(i), .MAX_LANE_DELAY(107), .GROUP_DELAY_RANGE(17)) txrx_delay_bmod_1 (
.clk(`CLK),
.i_tx_data(tx_serial_data[i]),
.o_tx_data(tx_serial_data_dly[i])
);
end
endgenerate
答案 0 :(得分:0)
您不能分配给 genvar 。这是非法的:
genvar j=i/4;
因此您的错误消息。
答案 1 :(得分:0)
如果您使用的是SystemVerilog,则可以写为
for (genvar i=0; i<NUM_LANES; i++) begin:delay_bmod_inst
localparam j=i/4; //--> Using j and k in CLK define
localparam k=i%4;
txrx_delay_bmod #(.LANE_NUM(i), .MAX_LANE_DELAY(107), .GROUP_DELAY_RANGE(17))
txrx_delay_bmod_1 (
.clk(`CLK),
.i_tx_data(tx_serial_data[i]),
.o_tx_data(tx_serial_data_dly[i])
);
end