一、 說明
以前總是沒有記錄的習(xí)慣,導(dǎo)致遇到問題時(shí)總得重新回憶與摸索,大大降低了學(xué)習(xí)效率,從今天開始決定改掉這個(gè)壞毛病,認(rèn)真記錄自己的Verilog學(xué)習(xí)之路,希望自己能一直堅(jiān)持下去。
二、 軟件資源與硬件資源
軟件資源說明:
1、UltraEdit:本博客所有的Verilog代碼全部都在UltraEdit中編輯, UltraEdit具有語法高亮與自動(dòng)補(bǔ)全(設(shè)置方法在本文最后面)功能,而且界面美觀,絕對是寫代碼的利器。
2、ISE14.7或Vivado2016.3:本博客的FPGA選擇的是Xilinx的,所以選擇Xilinx集成開發(fā)套件,本來之前一直在用7系列的FPGA,但是目前手頭只有一塊Spartan-6系列的二手開發(fā)板,所以代碼的驗(yàn)證都在Spartan-6上驗(yàn)證,但好在FPGA的結(jié)構(gòu)基本類似,Verilog的代碼基本可以通用。
3、ModelSim-win64-10.4-se:仿真工具使用ModelSim 10.4版本,其他版本也可以,無過多要求。
4、Windows-7 64-bit系統(tǒng):建議大家在Windows-7 64-bit系統(tǒng)做開發(fā) ,Windows-7 64-bit系統(tǒng)對以上軟件的兼容性都比較好。我的筆記本電腦用的是Windows-8.1系統(tǒng),安裝ISE14.7以后導(dǎo)入ModelSim仿真庫,選擇庫目錄的時(shí)候出現(xiàn)了卡住的情況,這種就是ISE14.7與WIndows-8.1不太兼容導(dǎo)致的,解決辦法如下。
解決Windows-8.1與ISE14.7不兼容的辦法:
找到ISE安裝目錄的中的nt64文件夾,我的ISE的安裝目錄在D盤,所以nt64的路徑如下D:Xilinx14.7ISE_DSISElib t64,然后把nt64文件夾中的libPortability.dll文件名改成libPortability.dll.org,再把libPortabilityNOSH.dll重命名為libPortability.dll。這樣可以有效解決一部分兼容性的問題。
5、更多軟件資源可以關(guān)注文末的微信公眾號(hào)并輸入關(guān)鍵字“軟件安裝包”獲取
硬件資源說明:
1、目前手頭只有一塊二手的黑金AX545開發(fā)板,F(xiàn)PGA的型號(hào)是:XC6SLX45-2CSG324,所以代碼都會(huì)在這個(gè)板子上進(jìn)行驗(yàn)證。對于其他型號(hào)的FPGA只要理解原理了應(yīng)該也不難上手。
三、 Verilog命名規(guī)范與格式說明
Verilog語言并沒有固定的命名規(guī)范與編寫格式,每個(gè)人根據(jù)自己的喜好而定就行了,我自己比較喜歡下面規(guī)范與格式。這里先寫一部分,后面如果有補(bǔ)充的在加上。
Verilog命名規(guī)范:
1、所有輸入端口以大寫I加下劃線開始,然后后面內(nèi)容的一律用小寫,信號(hào)比較長的話,后面的小寫用下劃線隔開。如:
input I_clk;
input I_led_mode;
如果輸入端口低電平有效的話就在末尾加下劃線和小寫n,如:
input I_rst_n;
2、所有輸出端口以大寫O加下劃線開始,然后后面內(nèi)容的一律用小寫,信號(hào)比較長的話,后面的小寫用下劃線隔開。如:
output O_led;
output O_led_mode;
3、所有reg變量以大寫R加下劃線開始,然后后面內(nèi)容的一律用小寫,信號(hào)比較長的話,后面的小寫用下劃線隔開。如:
reg R_cnt;
reg R_cnt_100ms;
4、所有wire變量以大寫W加下劃線開始,然后后面內(nèi)容的一律用小寫,信號(hào)比較長的話,后面的小寫用下劃線隔開。如:
wire W_cnt;
wire W_led_mode;
5、所有常量(parameter變量)以大寫C加下劃線開始,然后后面內(nèi)容的一律用大寫以示與變量的區(qū)別,信號(hào)比較長的話,后面的大寫用下劃線隔開。如:
parameter C_IDLE;
parameter C_FLASH_READ;
6、命名一定要有意義,看著變量名就大概能猜出它的作用,并適當(dāng)采用縮寫,下面幾個(gè)縮寫是寫代碼過程中比較常用的縮寫。
‘rd’代替‘read’
‘wr’代替‘write’
‘cnt’代替‘count’
‘rst’代替‘reset’
‘a(chǎn)ddr’代替‘a(chǎn)ddress’
Verilog編寫格式:
1、always塊的begin…end換行寫,如:
always @(posedge I_clk or negedge I_rst_n)
begin
…
end
2、if…else if…else語句的begin…end換行并空一個(gè)Tab鍵(記得設(shè)置一個(gè)Tab為4個(gè)空格)寫,如果if或者else下面只有一條語句那么就省略begin…end如:
if
begin
…
end
else if
begin
…
end
else
…
3、case…endcase語句中的條件后面如果只有一條語句,則直接在冒號(hào)后面寫語句,default一定要寫上,即使里面什么語句也沒有。最好用UltraEdit的列模式功能把那些冒號(hào)和分號(hào)都上下對齊。如
case(...)
C_IDEL : …… ;
C_FLASH : …… ;
default : ;
endcase
case…endcase語句中的條件后面如果有多條語句,則直接在冒號(hào)后面換行加Tab鍵寫begin…end。同樣用UltraEdit的列模式功能把那些冒號(hào)和分號(hào)都上下對齊。
case(R_state)
C_IDEL :
begin
…… ;
end
C_ FLASH :
begin
…… ;
end
default :
begin
…… ;
end
endcase
4、例化模塊的時(shí)候例化名就是在模塊名前面加一個(gè)大寫的U和下劃線,并且用UE的列模式功能把括號(hào)和逗號(hào)都對齊。如:
led_work U_ led_work
(
. I_clk (I_clk ),
. I_rst_n (I_rst_n ),
.O_led_mode (O_led_mode ),
.O_led_out (O_ led_out )
);
附、 UltraEdit設(shè)置方法
下載上文的UltraEdit壓縮包并解壓,里面有兩個(gè)文件,一個(gè)是UE的安裝包,一個(gè)是語法高亮文件
雙擊exe文件安裝好了以后打開UE會(huì)提示選擇風(fēng)格,我比較喜歡黑暗風(fēng)格,選完風(fēng)格以后在菜單欄找到高級(jí)選項(xiàng)卡,然后在高級(jí)選項(xiàng)卡下載找到配置菜單
單擊配置菜單,彈出如下界面
接著在上面的界面中找到自動(dòng)完成功能并選中,然后按照下圖進(jìn)行設(shè)置
接著在找到自動(dòng)換行/制表符設(shè)置,按照如下方式設(shè)置
最后找到編輯器顯示下面的語法加亮,選擇安裝包中的wordfile.uew配置文件就OK了,如下圖所示
審核編輯:湯梓紅
-
Xilinx
+關(guān)注
關(guān)注
71文章
2171瀏覽量
122217 -
軟件
+關(guān)注
關(guān)注
69文章
5026瀏覽量
88125 -
Verilog
+關(guān)注
關(guān)注
28文章
1352瀏覽量
110441 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5126瀏覽量
98310 -
代碼
+關(guān)注
關(guān)注
30文章
4834瀏覽量
69115
原文標(biāo)題:【接口時(shí)序】1、軟件與Verilog基本格式規(guī)范說明
文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
Verilog HDL代碼書寫規(guī)范
Verilog HDL代碼書寫規(guī)范
勇敢的芯伴你玩轉(zhuǎn)Altera FPGA連載34:Verilog代碼書寫規(guī)范
System Verilog問題和語言參考手冊規(guī)范
Verilog代碼書寫規(guī)范
華為_VERILOG語言編寫規(guī)范
Verilog教程之Verilog的命令格式資料說明
![<b class='flag-5'>Verilog</b>教程之<b class='flag-5'>Verilog</b>的命令<b class='flag-5'>格式</b>資料<b class='flag-5'>說明</b>](https://file.elecfans.com/web1/M00/81/93/o4YBAFw1VByAcodnAAA8EmE1c-U527.png)
評(píng)論