偶然發現case的另一用法case(1’b1),這樣的寫法表示case裡的條件有先後之分,可利用此特性編寫優先編碼器,以下為4到2優先編碼器真值表。 i[3] i[2] i[1] i[0]...
Continue reading...學習筆記
訊號正負緣偵測
正負緣偵測主要是訊透過D Flip Flop產生一個clock時間的差異後再處理,一般會有二種寫法來實現。 (1) 把其中一個訊號反相再AND處理即可產生正/負緣訊號。 assign POS_sign...
Continue reading...Johnson counter
Johnson counter (Johnson counter Wiki) 的實作方法為在 shift register 的基礎上不斷循環,在後面多加一個反相器,如下圖所示.。 Johnson co...
Continue reading...簡易計數器設計
在 FPGA 設計多少都會用到計數器相關應用,如 watch dog、 PWM 、除頻器等等,而計數器設計大致會有二個條件 :(1)什麼條件下計數(2)什麼條件下重新計數掌握了這二個條件就可以設計一個...
Continue reading...為狀態機各個狀態加上有意義的名稱吧
在模擬時為狀態機狀態加上名稱,跑模擬時就可以清楚瞭解目前狀態,因為ASCII一個字元需要8 bit 來表示,所以在定義儲存空間時需要把可能會顯示出最大的字元數乘8,此例是假設最大字元數為10 (reg...
Continue reading...點 LED 跑馬燈的 3 種方法
很多類型開發板教學都是點 LED 跑馬燈開始的而 FPGA 也不例外,Verilog HDL 語法簡單也代表一種功能能用多種的不同方法表示,好的 coding style 還有合理的設計才能確保合成器...
Continue reading...頻率計設計
此頻率計是用 50MHz 作採樣,所以解析度以 20us 為一個單位,其構思為抓取量測訊號的正緣,直到下一個正緣來臨前使用計數器計數,下一個正緣到達時則清空計數器且重新計算,而計數器的長度決定可以抓取...
Continue reading...Verilog HDL 訊號命名規則
訊號命名原則跟 coding style 一樣重要,尤其代碼量多的工程,一看訊號名稱就大概知道此訊號的特徵 debug 也清楚 ,日後維護也方便。以下是我個人常用的方法。 頂層模塊FPGA輸入實際名稱...
Continue reading...generate 用法
generate 好用之處在於可以依不同條件下產生不同實體模組,這樣對系統的靈活性有很大的幫助。 以下為 generate 的特徵 generate 有 generate for, generate ...
Continue reading...