0
我围绕这个问题编码,但我认为这很麻烦;缺乏我寻求从VHDL测试平台迁移到vlog的优雅...systemverilog - 简单的方法来避免“范围以恒定的expr范围”问题
看看和LMK,如果有更好的方法。 tmsg是一个typedef结构。 i,j是整数。
声明了一个tmp以便于将一个大向量解析为16b个切片。
$display("---- Writing T1 message -----");
for (i = 0; i < 5; i += 1) // send most of the filename as hexascii
begin
for (j = 0; j < 16; j +=1) // bit assign the sliced vec *sigh*
begin
tmp[j] = tmsg.fname[88-i*16-1-j];
end
wr(`SEND_MSG_QUEUE + `SMQ_MSG_Q_REG, tmp, 0, 3);
/* --- the original "range slice issue" line *sigh again* ----
wr(`SEND_MSG_QUEUE + `SMQ_MSG_Q_REG,
tmsg.fname[88-i*16-1:88-(i+1)*16], 0, 3);
------------------------------------------------------------- */
end
由于提前, 杰里
玩了一会儿,发现修改后的“+:”符号的工作原理如下 - 并保持简洁的符号。 – JerryJamesO