initial begin // 當clock 時脈在正邊緣時才執行 clock = 0 end. Verilog 程式的許多地方,都可以用#delay 指定時間延遲,例如#50 就是延遲50 單位的時間(通常一單位 ... ... <看更多>
「verilog initial」的推薦目錄:
- 關於verilog initial 在 [心得] HDL合成- 看板Electronics - 批踢踢實業坊 的評價
- 關於verilog initial 在 Verilog (2) – 硬體語言的基礎(作者:陳鍾誠) 的評價
- 關於verilog initial 在 Assign a synthesizable initial value to a reg in Verilog - Stack ... 的評價
- 關於verilog initial 在 25 Difference between ALWAYS and INITIAL Block in verilog 的評價
- 關於verilog initial 在 Usage of "initial" in Verilog module description - Electronics ... 的評價
verilog initial 在 Assign a synthesizable initial value to a reg in Verilog - Stack ... 的推薦與評價
... <看更多>
相關內容
-
initial block execution order in verilog - Stack Overflow
-
How to initialize an output in verilog? - Stack Overflow
-
verilog always block within a initial block not ...
-
How to give a two dimensional array an initial value ...
-
stackoverflow.com 的其他相關資訊
-
initial block execution order in verilog - Stack Overflow
-
How to initialize an output in verilog? - Stack Overflow
-
verilog always block within a initial block not ...
-
How to give a two dimensional array an initial value ...
-
stackoverflow.com 的其他相關資訊
verilog initial 在 Usage of "initial" in Verilog module description - Electronics ... 的推薦與評價
It is a common misconception that initial blocks cannot ever be synthesised. In fact, for FPGAs, they can in most cases be synthesised. ... <看更多>
verilog initial 在 [心得] HDL合成- 看板Electronics - 批踢踢實業坊 的推薦與評價
一般我們都說Verilog中initial是"不能合成"的。
其是所謂的"不能合成",有兩種意義,一種是"不可能合成",
另一種是"合成器不支援"。
"不支援"比起"不可能"還有周旋餘地。
"不可能"把話說死了,即使未來的工藝技術(state of the art)
再怎麼進步都不可能合成出來的意思。
事上很多HDL語法僅僅只是當代的state of the art不支援罷了。
也沒人證明出哪一個HDL語法保證不可能合成。
但有standard規定哪些語法保證可合成,例如[1]:
IEEE 1364.1 Verilog register transfer level synthesis
我以前一直說initial語法不能合成。
今天我看IEEE 1364.1發現initial在某些情況下是可合成的。
例如以下這個範例[1](原始的code有點bug,我稍微修改了一下):
~~~~~~~~~~~~~~~~~~~~~~~rom_2dimarray_initial.v~~~~~~~~~~~~~~~~
module rom_2dimarray_initial (
output wire [3:0] z,
input wire [2:0] a);
reg [3:0] rom[7:0];
initial begin
rom[0] = 4'b1011;
rom[1] = 4'b0001;
rom[2] = 4'b0011;
rom[3] = 4'b0010;
rom[4] = 4'b1110;
rom[5] = 4'b0111;
rom[6] = 4'b0101;
rom[7] = 4'b0100;
end
assign z = rom[a];
endmodule
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
這在Xilinx ISE 8.2i是可以合成出來的。我跑過post-layout simulation也是正確的。
其實這code是在model一個ROM。
所以,說"當代合成器不支援某個語法",會比說"不能合成"的好。
因為"不能合成"有兩種意思。
[1] IEEE, "IEEE 1364.1 Verilog register transfer level synthesis,"
https://ieeexplore.ieee.org/Xplore/dynhome.jsp
--
西方三聖:https://p8.p.pixnet.net/albums/userpics/8/3/553683/1193661731.jpg
《佛說阿彌陀經》https://web.cc.ncu.edu.tw/~93501025/amtf.doc
十一面觀音咒:https://file.buda.idv.tw/music/DBZFY04.mp3
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.220.219
※ 編輯: zxvc 來自: 140.115.220.219 (04/07 07:53)
... <看更多>