fpga verilog語(yǔ)法篇 0與c語(yǔ)言對(duì)比
verilog是一種編程語(yǔ)言,
它的作用是描述一個(gè)硬件電路,
從而讓fpga可以通過(guò)它的描述,進(jìn)行搭建電路.
fpga里面有很多寄存器,開(kāi)關(guān),等等一些硬件,相當(dāng)于積木的碎片.
verilog就是積木的某種模型搭建手冊(cè).
根據(jù)verilog,就可以吧積木碎片進(jìn)行重新連接,從而實(shí)現(xiàn)某種功能.
最常用的是verilog描述成一個(gè)流水線的功能,
然后讓數(shù)據(jù)流入,并進(jìn)行逐個(gè)加工,然后輸出.
比如某個(gè)溫度采集的系統(tǒng),
它的功能很簡(jiǎn)單,就是通過(guò)ad采集溫度,然后把溫度通過(guò)串口輸出.
就是通過(guò)verilog,不斷的采集溫度對(duì)應(yīng)的電壓,然后進(jìn)行轉(zhuǎn)換,然后通過(guò)串口輸入.
溫度這個(gè)數(shù)據(jù),就像流水線上的產(chǎn)品,每秒鐘采集一次,然后拋給下一個(gè)轉(zhuǎn)換的流程中,然后再拋給輸出的流程中.
經(jīng)過(guò)不斷地加工,在串口上就可以每秒鐘讀到一個(gè)溫度數(shù)據(jù)了.
我們先從最大的結(jié)構(gòu)看起,
為了方便理解verilog這種編程語(yǔ)言,
就用verilog和C語(yǔ)言進(jìn)行對(duì)比.
如下圖:
verilog中的模塊,就是相當(dāng)于C語(yǔ)言的.c文件.
verilog模塊中的代碼塊,就相當(dāng)于C語(yǔ)言中的函數(shù).
verilog中的數(shù)據(jù)類型,就相當(dāng)于C語(yǔ)言中的變量類型.

我們還是按照上面溫度采集系統(tǒng)分析.
它可以大體分成三個(gè)功能,
1,ad轉(zhuǎn)換,模數(shù)轉(zhuǎn)換;
2,進(jìn)行數(shù)據(jù)單位的換算;
3,串口溫度值的輸出;
那么,就可以設(shè)計(jì)三個(gè)verilog模塊,
1,ad轉(zhuǎn)換模塊;
2,溫度值處理模塊;
3,溫度值輸出模塊;
每個(gè)verilog模塊中肯定會(huì)有很多代碼塊,用于實(shí)現(xiàn)不同的功能.
每個(gè)代碼塊中也會(huì)用到不同的數(shù)據(jù).