本人FPGA verilog初學者,近日寫程式遇到問題,向各位大神請教

2021-05-28 07:53:45 字數 917 閱讀 6653

1樓:匿名使用者

reg 這行有問題,暫存器初值不要這麼設定,放到always裡面搞個條件初值

2樓:匿名使用者

按照你上面的程式,這個警告是對的,你的l只是在上電延時一段時間直接是高電平不變了。如果你是這樣設計的就不要管warning (13410): pin "l" is stuck at gnd。

3樓:你猜

你這個程式應該出現error啊,為什麼不貼出來?

fpga verilog語法問題

4樓:

在定義led_r時給個初值看看, led_r[3:0]=4'b0000; 若還不行說明硬體電路導致的上電次序有問題, 有擾動或其它;

always裡有同步復位,非同步復位,上升沿復位,下降沿復位. 如果rst_n沒有列在觸發例表裡, 你可以隨便用if(rst_n)或if(!rst_n),這是非同步復位.

但你寫了例表意味著同步復位,所以就得用always @(posedge rst_n), 監測到rst_n上升沿執行下面程式.

"監測到下降沿時,如果訊號為高", 這是永遠也不存在的邏輯狀態,所以有warning或error.

另外verilog應該有現成的移位運算子,包括邏輯左右移,算術左右移, 你查查,並確切掌握它.

5樓:匿名使用者

if(!rst_n) led_r <= 4'b0001;相當於led初始值賦值是1,不必糾結第一個時鐘他到底是從4『b0變成4』b1還是其他的。

第二個問題是,rst_n為高時為什麼led值還是1,這個要看else if中條件是否滿足了,如果還沒有滿足就相當於一個鎖存器期,posedge clk時 led《=led,所以led的值沒有變,當else if中條件滿足時led被賦新的值

問個關於在學習FPGA VERILOG語言中的問題

怎麼掌握哪些是不可綜合語句 其實在語法書裡面就有說了,不過隨著技術發展,像過去不可綜合a b,現在很多綜合器都會自己呼叫乘法器模組來進行 fpga綜合 多想想自己寫的rtl 描述的是什麼電路,綜合出來是什麼樣子,就會明白了。還有就是一開始學習時是不是多做些簡單器件的 模型 瞭解軟體常用功能 和完整設...

本人初學VB,請各位VB高手指點一下

k 變數 0 是資訊框圖形函式的縮寫,例如48 就是 警告的符號 if x1 t x1 x1 x2 x2 t end if 如果x1小於x2那麼 把x1和x2的值交換 t 是臨時變數,t x1 先把小的數給t,然後x1 x2 把x2的值給x1 也就是把大的數給x1 x2 t 把t的值給x2,也就是把...

本人吉他初學者,左手換和絃特別慢而且總錯,怎麼練習

除了反copy復練習,沒有更好的方法和手段bai。與其花時間 去找捷du徑不如用這zhi個時間去踏踏實實 dao練習。如果非要說有什麼練習的方式,那首先要有一個好的心態,浮躁的人不適合學習樂器。其次,練習的過程中注意,永遠把準確性放在第一位,最後去考慮速度的問題。無論你的速度有多慢,慢到令人髮指都沒...