資源描述:
《第3章 maxplus軟件的使用(第5節(jié))59029》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、3.5用AHDL語言設(shè)計(jì)數(shù)字系統(tǒng)AHDL語言是ALTERA公司開發(fā)的高效、易學(xué)的硬件描述語言,在max+plus2軟件中使用它比VHDL語言更有效。3.5.1AHDL簡(jiǎn)介一個(gè)AHDL邏輯設(shè)計(jì)至少必須包含一個(gè)分設(shè)計(jì)段(SubdesignSection)和一個(gè)邏輯設(shè)計(jì)段(LogicSection),其它段和語句是可選擇的,AHDL的設(shè)計(jì)文件是用Max+PlusⅡ軟件的文本編輯器編寫的源程序(*.tdf)下面介紹AHDL的一些語句。(1)常數(shù)敘述語句該語句可以用一個(gè)字符串代表數(shù)字、算數(shù)表達(dá)式例:CONSTANTUPPER_LIMIT=130;CONSTA
2、NTBAR=1+2DIV3+LOG2(256);CONSTANTFOO=1;CONSTANTFOO_PLUS_ONE=FOO+1;(2)定義函數(shù)語句該語句可以定義一個(gè)在分設(shè)計(jì)中使用函數(shù),例:DEFINEMAX(a,b)=(a>b)?a:b;SUBDESIGN(dataa[MAX(WIDTH,0)..0]:INPUT;datab[MAX(WIDTH,0)..0]:OUTPUT;)BEGINdatab[]=dataa[];END;此例中MAX函數(shù)保證最小的數(shù)據(jù)位寬度。(3)參數(shù)敘述語句該語句可以聲明參數(shù)化巨功能模塊和宏功能模塊的一個(gè)或幾個(gè)參數(shù)142例:
3、PARAMETERS(FILENAME="myfile.mif",--optionaldefaultvaluefollows"="signWIDTH,AD_WIDTH=8,NUMWORDS=2^AD_WIDTH);(4)函數(shù)描述語句共有4種形式的邏輯函數(shù)可以供用戶調(diào)用,它們是:Megafunction—具有復(fù)雜邏輯功能的巨功能模塊,放在mega_LPM庫中,可以供用戶調(diào)用Primitive—一些基本邏輯功能函數(shù),可以直接調(diào)用Macrofunction—具有高水平的邏輯宏功能模塊,共有300多種,放在max2lib子目錄中StateMachine—一
4、種具有多個(gè)狀態(tài)的時(shí)序電路,可以形成符號(hào)圖形,用戶可以調(diào)用以上幾種邏輯功能函數(shù)都可以以邏輯函數(shù)名和符號(hào)圖形的方式被調(diào)用,在AHDL源文件中調(diào)用時(shí)要首先進(jìn)行聲明,見如下例子。1)參數(shù)化函數(shù):FUNCTIONlpm_add_sub(cin,dataa[LPM_WIDTH-1..0],datab[LPM_WIDTH-1..0],add_sub)WITH(LPM_WIDTH,LPM_REPRESENTATION,LPM_DIRECTION,ADDERTYPE,ONE_INPUT_IS_CONSTANT)RETURNS(result[LPM_WIDTH-1..
5、0],cout,overflow);該函數(shù)名為lpm_add_sub,輸入端口為cin,dataa[LPM_WIDTH-1..0],anddatab[LPM_WIDTH-1..0];關(guān)鍵字WITH后是參數(shù)表,關(guān)鍵字RETURN后是輸出口result[LPM_WIDTH-1..0],cout,andoverflow2)非參數(shù)化函數(shù):FUNCTIONcompare(a[3..0],b[3..0])RETURNS(less,equal,greater);該函數(shù)名為compare,輸入端口為a3,a2,a1,a0,b3,b2,b1,andb0.關(guān)鍵字RET
6、URN后是輸出口less,equal,greater3)狀態(tài)機(jī)函數(shù):當(dāng)輸入和輸出是狀態(tài)機(jī)時(shí),應(yīng)該按照如下例子定義函數(shù),在返回結(jié)果語句中加MACHINE關(guān)鍵字FUNCTIONss_def(clock,reset,count)142RETURNS(MACHINEss_out);(5)最小位數(shù)選擇語句定義一組數(shù)據(jù)中的最小數(shù)位是否是MSB(mostsignificantbit)或LSB(leastsignificantbit)例:OPTIONSBIT0=MSB;(6)斷言語句該語句可以檢驗(yàn)表達(dá)式、參數(shù)、數(shù)據(jù)、計(jì)算函數(shù)有效性和端口的使用情況。例:ASSERT
7、(WIDTH>0)REPORT"Width(%)mustbeapositiveinteger"WIDTHSEVERITYERRORHELP_IDINTVALUE;--forinternalAlterauseonly在該例中,WIDTH>0是斷言條件,若此條件不滿足,將顯示REPORT后的內(nèi)容和SEVERITY后的錯(cuò)誤等級(jí)。(7)分設(shè)計(jì)段分設(shè)計(jì)段聲明輸入、輸出和雙向口例:SUBDESIGNtop(foo,bar,clk1,clk2:INPUT=VCC;a0,a1,a2,a3,a4:OUTPUT;b[7..0]:BIDIR;)端口類型可以是:INPUT
8、,OUTPUT,BIDIR,MACHINEINPUT,或MACHINEOUTPU其中MACHINEINPUT或MACHIN