-1
我有一行verilog代碼,我上網了,我不明白它的意思。一行verilog代碼
rom_data <= #`DEL {rom[rom_addr+3],rom[rom_addr+2],rom[rom_addr+1],rom[rom_addr]};
有人能幫我揭穿這個嗎?
我有一行verilog代碼,我上網了,我不明白它的意思。一行verilog代碼
rom_data <= #`DEL {rom[rom_addr+3],rom[rom_addr+2],rom[rom_addr+1],rom[rom_addr]};
有人能幫我揭穿這個嗎?
其分解:
1 rom_data <=
2 #`DEL
3 {rom[rom_addr+3], rom[rom_addr+2], rom[rom_addr+1], rom[rom_addr]};
非阻塞分配rom_data,裏面[email protected](posedge clk)
可能用來暗示觸發器
延遲一些東西一樣設置:
`define DEL「1ms」
1ms或其他值被粘貼在你有'DEL'的地方。
{}
意味着連接,它採用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 + 3
,並在DEL延遲後將它們分配到rom_data
。
下面是一個在[EDA遊樂場](http://www.edaplayground.com/s/4/46)匹配@ Morgan的解釋的實例, –