-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. always@(posedge clk)フリップフロップを暗示するために内部で使用される可能性が高い、rom_data へのノンブロッキング代入

  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_addrtoから取得し、`DEL の遅延の後rom_addr + 3にそれらを割り当てます。rom_data

于 2013-08-07T06:54:38.517 に答える