一行verilog代码

How*_*uan -1 syntax verilog

我有一行verilog代码,我上网了,我不明白这意味着什么.

rom_data <= #`DEL {rom[rom_addr+3],rom[rom_addr+2],rom[rom_addr+1],rom[rom_addr]};
Run Code Online (Sandbox Code Playgroud)

有人可以帮我揭穿这个吗?

Mor*_*gan 5

打破它:

1 rom_data <=
2 #`DEL 
3 {rom[rom_addr+3], rom[rom_addr+2], rom[rom_addr+1], rom[rom_addr]};
Run Code Online (Sandbox Code Playgroud)
  1. 对rom_data的非阻塞赋值,可能在内部always@(posedge clk)用于暗示触发器

  2. 由某些事情设定的延迟:

    `define DEL"1ms"

    将1ms或其他值粘贴到"DEL"的位置.

  3. 所述{}装置串联,它走的是ROM [ROM_ADDR]和下一个3个值.

    即{2'b00,2'b01,2'b10,2'b11} => 8'b00_01_10_11

你们一起rom_addr指着一个特定的位置.当rom_data改变时,你接下来的4个值,从rom_addr到,rom_addr + 3rom_data在延迟"DEL"后分配它们.