一行verilog代码

时间:2013-08-07 05:25:36

标签: syntax verilog

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

rom_data <= #`DEL {rom[rom_addr+3],rom[rom_addr+2],rom[rom_addr+1],rom[rom_addr]};

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

1 个答案:

答案 0 :(得分:5)

打破它:

1 rom_data <=
2 #`DEL 
3 {rom[rom_addr+3], rom[rom_addr+2], rom[rom_addr+1], rom[rom_addr]};
  1. 对rom_data的非阻塞分配,可能在always@(posedge clk)内用来暗示触发器

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

    `定义DEL“1ms”

    将1ms或其他值粘贴到“DEL。

  3. 的位置
  4. {}表示连接,它取rom [rom_addr]和接下来的3个值。

    即{2'b00,2'b01,2'b10,2'b11} =&gt; 8'b00_01_10_11

  5. 你们rom_addr指向一个特定的位置。当rom_data发生更改时,您需要接下来的4个值,从rom_addrrom_addr + 3,并在延迟“DEL”后将它们分配给rom_data