fpga verilog語(yǔ)法篇 1基本概念 1綜合
verilog是描述硬件的語(yǔ)言,
也就是一篇verilog的代碼,下載到fpga中,
可以把fpga內(nèi)部的器件進(jìn)行連線,和配置,
讓fpga內(nèi)部生成一個(gè)想要的芯片.

綜合:
verilog中分為可綜合代碼和不可綜合代碼:
可綜合代碼,就是這些代碼在經(jīng)過(guò)軟件編譯之后,下載到程序中,就可以通過(guò)代碼實(shí)現(xiàn)電路,比如:串口的verilog程序會(huì)生成串口;? pwm的verilog程序會(huì)在fpga上生成產(chǎn)生pwm的電路.
不可綜合代碼,就是這些代碼用于測(cè)試的,假如我們編寫了一個(gè)用按鍵點(diǎn)亮led的程序,下載到fpga板子中.運(yùn)行時(shí)候發(fā)現(xiàn)按下按鍵led沒(méi)有亮,就需要查問(wèn)題,這個(gè)時(shí)候可以寫一個(gè)測(cè)試程序(tb程序).
在測(cè)試程序中編寫一個(gè)按鍵信號(hào),然后輸入給led,然后運(yùn)行測(cè)試程序,查看led和按鍵的高低電平波形. 這個(gè)時(shí)候,測(cè)試程序可以不用運(yùn)行在fpga上,只在軟件上仿真,就有個(gè)問(wèn)題?沒(méi)有fpga板子,那么就沒(méi)有晶振怎么產(chǎn)生時(shí)鐘呢? verilog語(yǔ)言中有個(gè)語(yǔ)句:比如:`timescale 1ns/1ns.用于替代晶振,產(chǎn)生時(shí)鐘,進(jìn)行仿真,所以,這一類語(yǔ)句是不可以綜合的.
在verilog中,有些語(yǔ)句是可以綜合的,有些語(yǔ)句是不可以綜合的,有些語(yǔ)句只有在特定情況下才可以綜合(這個(gè)要看環(huán)境和使用的工具).硬件開(kāi)發(fā)很依賴工具.要在編寫程序的時(shí)候,時(shí)刻提醒自己是在編寫硬件,不單是代碼.


模塊:
模塊就是組成verilog的基本單元.
模塊是可以相互嵌套的,這樣就可以組成大型的系統(tǒng).模塊中有用于生成電路的,也有用于測(cè)試功能的,在verilog中測(cè)試是很重要的環(huán)節(jié).只有每個(gè)模塊穩(wěn)定了,才能保證系統(tǒng)穩(wěn)定,否則有可能一個(gè)信號(hào)的錯(cuò)誤擴(kuò)散到整個(gè)系統(tǒng).(測(cè)試需要考慮到信號(hào)的長(zhǎng)時(shí)間多次運(yùn)行是否穩(wěn)定,需要看各種輸入情況下是否穩(wěn)定.)