日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《FPGA入门教程》看书随笔——RTL设计

發布時間:2023/12/19 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《FPGA入门教程》看书随笔——RTL设计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、使用verilog進行RTL設計一般可歸納為3種基本的描述方式: (1)數據流描述:采用assign連續賦值語句 (2)行為描述:使用always語句或initial語句塊的過程賦值語句 (3)結構化描述:實例化已有的功能模塊或原語,即平常所說的元件例化和IP core. 過程賦值語句包括非阻塞過程賦值、阻塞過程賦值和 連續過程賦值。 2、RTL級設計時需注意的問題 (1)凡是在always或initial語句中賦值的變量,一定是reg類型變量;凡是在assign語句中賦值的變量,一定是wire類型變量、 (2)定義存儲器:reg[3:0] ? ? ?MEMAORY[0:7];地址為0~7,每個存儲單元都是4bit; (3)由于硬件是并行工作的,在Verilog語言的module中,所有描述語句(包括連續輔助語句assign、行為語句塊always和initial語句塊以及模塊實例化)都是并發執行的。 (4)使用完備的if...else語句,使用個條件完備的case語句并設置default操作。以防止產生鎖存器latch,因為鎖存器對毛刺敏感 (5)嚴禁設計組合邏輯反饋環路,它最容易引起振蕩、毛刺、時序違規等問題。 (6)不要在兩個或兩個以上的語句塊(always或initial)中對同一個信號賦值 3、阻塞賦值與非阻塞賦值 (1)阻塞賦值的操作符號為“=”。它的含義是在計算等式右側表達式值及完成其賦值時不 會被其他的 verilog 語句打斷,就是說,在當前賦值沒有完成之前,它阻塞了其他 verilog 語句的執行。 (2) 非阻塞賦值的操作符為“<=”。它的含義是子啊賦值操作時刻開始計算等式右邊,賦值操作時刻結束時更新等式左邊。在這器件,可以執行其他Verilog語句,也不阻塞其他Verilog語句的執行。 在實際使用中,應該遵循的原則是: (1)在時序邏輯中,使用非阻塞賦值 (2)在組合邏輯中,使用阻塞賦值 (3)在同一個always塊中,不要混合使用阻塞賦值和非阻塞賦值 (4)在同一個always塊中,如果既有組合邏輯又有時序邏輯,使用非阻塞賦值 (5)always模塊的敏感表為電平敏感信號時,使用阻塞賦值 (6)不要使用#0時延進行賦值 (7)不要在阻塞賦值中使用時延語句 (8)在行為級描述中,如語句間是順序執行的關系,使用阻塞賦值 4、哪些是不可綜合的代碼 (1)對于一些抽象的行為描述代碼是不可綜合的。延遲語句(如:#delay)、初始化語句initial以及等待語句wait。 (2)對于一些抽象的運算代碼也是不可綜合的。 (3)對于不定次數的循環運算是不可綜合的。 5、面積和速度是FPGA設計的兩個標準。 “面積”是指一個設計所消耗FPGA的邏輯資源數量,“速度”指設計在芯片上穩定運行所能達到的最高頻率。 優化RTL代碼追求的最終目標是面積或速度,或者是兩者的平衡。 6、Pipelining技術 即流水線時序優化方法,其本質是調整一個較大的組合邏輯路徑中寄存器位置,用寄存器合理分割改組合邏輯路徑,從而降低路徑Clock-To-Output 和Setup等時間參數的要求,達到提高設計頻率的目的。 7、模塊復用與資源共享 模塊復用與資源共享的目的在于節約FPGA的邏輯資源,即節約面積。 8、邏輯復制時一種通過增加面積而改善時序條件的優化手段。邏輯復制最常用的場合是調整信號的扇出。 9、狀態機的設計 推薦采用兩段寫法(2個always模塊)或三段寫法(3個always模塊)。

? ? ?兩段寫法的核心思想是,一個always模塊采用同步時序描述狀態轉移;另一個always模塊采用組合邏輯方式判斷轉臺轉移條件,描述狀態轉移規律。其結構如下:


三段式寫法的核心思想是,一個always模塊采用同步時序的方式描述狀態轉移,一個采用組合邏輯的方式判斷狀態轉移條件,描述狀態轉移規律,第三個always模塊使用同步時序電路描述每個狀態的輸出


狀態機設計的其他技巧和準則: (1)狀態機的編碼最好使用one-hot(獨熱碼) (2)一個玩唄的狀態機應該具備初始化狀態和默認狀態 (3)狀態機的編碼可以用parameter定義,不推薦使用define宏定義 (4)時序邏輯always米快使用非阻塞賦值"<=",組合邏輯模塊使用阻塞賦值“=” (5)使用玩唄的if...else語句和case 語句 (6)case語句需具備full_case和parallel_case屬性。full_case定義了所有可能的輸入模式,parallel_case定義了case項是不重復的。 10、分析狀態機的工具:synplify pro。 11、testbench包括兩部分:一時激勵,而是被驗證設計的元件例化。


總結

以上是生活随笔為你收集整理的《FPGA入门教程》看书随笔——RTL设计的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。