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