我有一行verilog代码,我上网了,我不明白这意味着什么。
rom_data <= #`DEL {rom[rom_addr+3],rom[rom_addr+2],rom[rom_addr+1],rom[rom_addr]};
有人可以帮我揭穿这个吗?
答案 0 :(得分:5)
打破它:
1 rom_data <=
2 #`DEL
3 {rom[rom_addr+3], rom[rom_addr+2], rom[rom_addr+1], rom[rom_addr]};
对rom_data的非阻塞分配,可能在always@(posedge clk)
内用来暗示触发器
由某些事情设定延迟:
`定义DEL“1ms”
将1ms或其他值粘贴到“DEL。
{}
表示连接,它取rom [rom_addr]和接下来的3个值。
即{2'b00,2'b01,2'b10,2'b11} =&gt; 8'b00_01_10_11
你们rom_addr
指向一个特定的位置。当rom_data发生更改时,您需要接下来的4个值,从rom_addr
到rom_addr + 3
,并在延迟“DEL”后将它们分配给rom_data
。