基於vhdl/verilog hdl
描述語言具有不同的優缺點,兩者可以互為補充。為此我們不強制規定開發人員使用的描述語言種類。基於混合設計的趨勢,建議開發人員熟悉兩者描述語言,方便同事間開發設計相互借鑑和學習。
(1)建議每個程序(
process
)或(always
)一般應存在於單獨的原始檔中,通常源檔名與所包含實體(
entity
)或模組名(
module
)相同。
(2)整個體系結構中,同一訊號用相同的名字表示;
(3)引數和文字巨集的常數名字用大寫字母表示;埠、訊號、結構體和例項名字用小寫表示;
(4)例項名字和模組名字必須一致;
(5)多位匯流排描述位數順序必須一致,
eg [x..0]
(6)每個原始檔**不能超過
1000
行**(包括注釋)。
(7)每個設計檔案開頭應包含如下注釋內容:(中文描述)
l年份及公司名稱。
l作者。
l檔名。
l所屬專案。
l頂層模組。
l模組名稱及其描述。
l修改紀錄。
(1)對於
vhdl
系統保留字全部小寫。
(2)對於
verilog hdl
系統保留字全部小寫。
(1)識別符號採用傳統
c語言的命名方法,即在單詞之間以「
_」分開,如:
max_delay
、data_size
等等。(2)
檔名和其他命名只能用字母、數字和下劃線;名字必須以字母開頭
. verilog
名字區分大小寫;而
vhdl
不區分大小寫;
(3)所有物件名字不能超過
32個字母;
(4)採用有意義的、能反映物件特徵、作用和性質的單詞命名識別符號,以增強程式的可讀性。時鐘用
clk表示,復位
rst表示;
_n表示低電平有效;狀態機變數表示如
fsm_cs
;鎖存器變數表示
in_lat
;非同步訊號表示
名字_a
;三態訊號表示_z;
(5)verilog/vhdl
(6)為避免識別符號過於冗長,對較長單詞的應當採用適當的縮寫形式,如用『
buff
』代替『
buffer
』,『ena
』代替『
enable
』,『addr
』代替『
address
』等。為了源**的可讀性和可移植性起見,不要在程式中直接寫特定數值。源**都採用正邏輯,即高電平表示有效,低電平表示無效;
(1)適當地在**的不同部分中插入空行,避免因程式擁擠不利閱讀。
(2)條件判斷必須用括號表達優先順序。
(3)在表示式中插入空格,避免**擁擠,包括:
賦值符號兩邊要有空格;
雙目運算子兩邊要有空格;
單目運算子和運算元之間可沒有空格,
示例如下:
a <=b;
c<=a+b;
if (a==b) then ...
a <= ~a&c;
(1)使用連續的空格來進行語句的對齊。
(2)各種巢狀語句尤其是
if..else
語句,必須嚴格的逐層縮排對齊。
if..else
語句中間超過
10行**必須注釋
if..else
對應關係。
必須加入詳細、清晰的注釋行以增強**的可讀性和可移植性,注釋內容佔**篇幅不應少於
30%。
(1)注釋採用中文描述,言簡意賅。
(2)注釋每個程序(
process
)完成的功能。注釋需要表達該程序的設計思想。
(3)注釋重要的內部訊號、變數、輸入和輸出訊號、常數和引數等。
要形成良好的程式設計風格,有許多細節需要注意。
vhdl
,verilog hdl和c
語言風格比較接近,所以裡面提到的很多原則都是可以借鑑的。
為提高設計效率,規定頂層檔案採用語言形式描述。
用hdl
實現電路,設計人員對可綜合風格的
rtl描述的掌握不僅會影響到**和綜合的一致性,也是邏輯綜合後電路可靠性和***壞最主要的因素,對此應當予以充分的重視。
C語言 weak alias描述
macro weak alias define weak alias name,aliasname mweak alias name,aliasname define weak alias name,aliasname extern typeof name aliasname attribute w...
C語言描述 DNA
小強從小就喜歡生命科學,他總是好奇花草鳥獸從 來的。終於,小強上中學了,接觸到了神聖的名詞 dna.它有乙個雙螺旋的結構。這讓一根筋的小強抓破頭皮,要是能畫出來就好了 小強喊道。現在就請你幫助他吧 輸入包含多組測試資料。第乙個整數n n 15 n表示組數,每組資料報含兩個整數a,b。a表示乙個單位的...
快速排序 C語言描述
time limit 15ms memory limit 65536kb submit statistic discuss problem description 山東理工大學有很多學生,當然也有很多美女,機械實驗班的學委 外號 大王八 很想找個女朋友,但他想找個身高和自己相配的女生做女朋友,現有理...