-1

我有一行我上网的verilog代码,我不明白它是什么意思。

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

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

4

1 回答 1

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. {}意味着串联,它采用 rom[rom_addr] 和接下来的 3 个值。

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

总之,你已经rom_addr指向一个特定的位置。当 rom_data 更改时,您将获取接下来的 4 个值,从rom_addrtorom_addr + 3rom_data在延迟 `DEL.

于 2013-08-07T06:54:38.517 回答