零基礎(chǔ)學(xué)FPGA(三)Verilog語法基基礎(chǔ)基礎(chǔ)(上)_第1頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、零基礎(chǔ)學(xué)fpga(三)verilog語法基基礎(chǔ)基礎(chǔ)(上) 這幾天復(fù)習(xí)了一下的語法學(xué)問,就借此寫寫我對(duì)這些東西的主意吧。感覺呢,是和差不多,具有c語言基礎(chǔ)的伴侶學(xué)起來應(yīng)當(dāng)沒什么問題,和c語言相同的地方就不說了吧,重點(diǎn)說一下不同點(diǎn)吧。 1、模塊的結(jié)構(gòu)模塊呢,是verilog的基本設(shè)計(jì)單元,它主要是由兩部分組成,一個(gè)是接口,另一個(gè)是規(guī)律。下面舉一個(gè)小例子解釋一下:module xiaomo (a,b,c,d);input a,b;output c,d;assign c=a|b;assign d=a&b;endmodule所謂接口就是其次,三行,解釋了一個(gè)模塊的信號(hào)流向,很顯然,a,b是輸入,

2、c,d是輸出;第四第五行是規(guī)律,即輸入和輸出之間的關(guān)系即c的值是a或b的結(jié)果。assign 是延續(xù)賦值語句,這個(gè)以后再說。第一行是模塊的端口聲明,即解釋一個(gè)模塊詳細(xì)有那幾個(gè)接口,有多少接口寫多少,挺直套模板就可以module(接口1,接口2);endmodule代表此模塊結(jié)束;2、模塊的內(nèi)容模塊的內(nèi)容包括3個(gè)部分,i/o解釋,內(nèi)部信號(hào)解釋和功能定義。關(guān)于i/o解釋有三種格式,即輸入、輸出、輸入輸出,第三種格式代表信號(hào)可以雙向傳送。在寫i/o解釋的時(shí)候要注明信號(hào)位寬,即由幾位組成,例如 input 7:0 xiaomo;代表輸入一個(gè)8位的信號(hào)“小墨”,注重這里要用中括號(hào),第一位是位寬減1,接一個(gè)

3、冒號(hào),再接數(shù)字0,再接端口名;關(guān)于內(nèi)部信號(hào)解釋要用到和端口有關(guān)的wire和reg類型變量的聲明。模板和上面類似,關(guān)于reg和wire變量后面再說。關(guān)于功能定義是模塊中最重要的部分,有三種辦法可在模塊中產(chǎn)生規(guī)律(1)用assign聲明語句,assign 語句主要用于組合規(guī)律(2)用實(shí)例元件,例如 and 2 u1(q,a,b);(這個(gè)我自己概念也有點(diǎn)含糊,不知道怎么說明)(3)用always塊,例如 always (clk or clr)beginend;always語句既可以用于描述組合規(guī)律,也可以描述時(shí)序規(guī)律,但主要以描述時(shí)序規(guī)律電路為主。小結(jié)在verilog語法中,全部的過程塊(包括ini

4、tial塊,always塊),延續(xù)賦值語句,實(shí)例引用都是并行的,也就是說在一個(gè)模塊中碰到這些語句就是同時(shí)執(zhí)行的,而且沒有先后次序。惟獨(dú)延續(xù)賦值語句assign和實(shí)例引用語句可以自立于過程塊存在于模塊的功能定義部分,即這兩種語句可以不用在那兩個(gè)過程塊里執(zhí)行,也可以在模塊的功能定義部分執(zhí)行,例如第一個(gè)例子。這些和c語言有點(diǎn)不同,對(duì)于初學(xué)者來說應(yīng)當(dāng)都要弄明了。3、數(shù)據(jù)類型、變量、常量對(duì)于初學(xué)者來說,數(shù)據(jù)類型只要把握好reg,wire,integer和parameter型就夠了,其他類型可以臨時(shí)不用去理睬。(1)常量就不說了,比較基礎(chǔ)。(2)參數(shù)型(parameter型)parameter是用來定義一

5、個(gè)常量的,個(gè)人理解和c語言里面的int,float 語句一樣,不一樣的是parameter既可以定義整型,也可以定義浮點(diǎn)型或者是表達(dá)式。例如(3)變量wire型數(shù)據(jù)常用來表示用以assign關(guān)鍵字指定的組合規(guī)律信號(hào)。verilog程序模塊中輸入、輸出信號(hào)類型默認(rèn)時(shí)自動(dòng)定義成wire型。例子reg型數(shù)據(jù)是寄存器變量,常用來表示always塊中的指定信號(hào),常代表觸發(fā)器。注重,在always塊中被賦值 的每一個(gè)信號(hào)都必需定義為reg型。上面這句話表示不理解,求大神說明.先放這兒吧.memory型因?yàn)関erilog中沒有多維數(shù)組的存在,memory數(shù)據(jù)就是通過擴(kuò)展reg型數(shù)據(jù)的地址范圍來生成的,他的格

6、式為regn-1:0 存儲(chǔ)器名m-1:0;我舉個(gè)例子,比如我定義 reg7:0 xiaomo255:0;這句話的意思是說,我定義了一個(gè)名叫“小墨”的存儲(chǔ)器,這個(gè)存儲(chǔ)器中有256個(gè)8位reg型寄存器,只要理解了這句話,就差不多了。注重,當(dāng)沒有中括號(hào)時(shí)代表的是一位,例如reg xiaomom-1:0;代表一個(gè)名為“小墨”的存儲(chǔ)器,里面有m個(gè)1位的reg型寄存器。還有個(gè)地方我感覺不太明了,見下圖,誰知道這句話上面意思.求大神說明.下面這幾句話需要注重4、運(yùn)算符及表達(dá)式這里和c語言幾乎一樣,就不做過多說明了吧。就說一下位拼接運(yùn)算符和位減運(yùn)算符,這里c語言里面沒有。挺直看個(gè)例子就可以5、賦值語句賦值語句共有兩種,即非堵塞賦值,和堵塞賦值。(1)非堵塞賦值非堵塞賦值方式所賦值的變量不能立刻就為下面語句所用,惟獨(dú)當(dāng)塊結(jié)束后才干得到上一次所附的值,這種賦值方式是編寫可綜合的時(shí)序規(guī)律不時(shí)用的賦值方式。例如這個(gè)例子的意思是,當(dāng)初鐘升高沿到來時(shí),a的值給b,b的值給c,但是惟獨(dú)當(dāng)塊結(jié)束時(shí)才完成賦值,這么說吧,如果本來a=1,b=2那么當(dāng)初鐘升高沿到來時(shí)a=1,b=2,c=2;當(dāng)塊結(jié)束時(shí),a=b=c=1;這么理解對(duì)嗎?求大神指點(diǎn).(2)堵塞賦值與非堵塞賦值不同,賦值語句執(zhí)行完后塊才結(jié)束,b 的值在賦

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論