第一講程序設(shè)計(jì)語(yǔ)言_第1頁(yè)
第一講程序設(shè)計(jì)語(yǔ)言_第2頁(yè)
第一講程序設(shè)計(jì)語(yǔ)言_第3頁(yè)
第一講程序設(shè)計(jì)語(yǔ)言_第4頁(yè)
第一講程序設(shè)計(jì)語(yǔ)言_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第一講程序設(shè)計(jì)語(yǔ)言第一頁(yè),共三十三頁(yè),編輯于2023年,星期一參考教材本數(shù)電實(shí)驗(yàn)理論課及實(shí)驗(yàn)操作所用教材:《數(shù)字電路設(shè)計(jì)·

仿真·

測(cè)試》主編:佘新平學(xué)習(xí)該課程的參考教材:VHDL或FPGA(介紹VHDL語(yǔ)言)方面的的書籍。第二頁(yè),共三十三頁(yè),編輯于2023年,星期一

VHDL語(yǔ)言全稱:Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage是一種非常高速硬件(數(shù)字電路)描述語(yǔ)言。主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),功能和接口。語(yǔ)言形式和描述風(fēng)格與句法十分類似于一般的計(jì)算機(jī)高級(jí)語(yǔ)言。

支持VHDL語(yǔ)言的軟件平臺(tái)Max+PlusII、QuartusII

由軟件設(shè)計(jì)到硬件實(shí)現(xiàn)之間的媒介CPLD/FPGA(可編程器件)第三頁(yè),共三十三頁(yè),編輯于2023年,星期一VHDL的歷史有數(shù)十種硬件描述語(yǔ)言(如VHDL,VerilogHDL,HardwireC,CSP,SDL,Esterel),用得較廣泛的是VHDL和VerilogHDL兩種:1980美國(guó)制定VHSIC(VeryHighSpeedIntegratedCircuits)計(jì)劃。1983IBM、TI和Intermetrics聯(lián)合開發(fā)語(yǔ)言和仿真工具(VHDL)主要考慮自頂向下的設(shè)計(jì)和工藝進(jìn)步引起的系統(tǒng)升級(jí)。1987美國(guó)國(guó)防部(DOD)要求所有數(shù)字電路用VHDL描述,并決定F-22戰(zhàn)斗機(jī)項(xiàng)目采用VHDL,發(fā)布IEEE1076-1987標(biāo)準(zhǔn)。1993發(fā)布IEEE1076-1993標(biāo)準(zhǔn)。1996基于IEEE1076-1993的仿真和綜合工具問(wèn)世。IEEE1076.3使用綜合工具的程序包標(biāo)準(zhǔn)。IEEE1076.4(VITAL):ASIC和FPGA建庫(kù)1997發(fā)布IEEE1076.1即同時(shí)能夠描述數(shù)字和模擬集成電路的VHDL語(yǔ)言標(biāo)準(zhǔn)(VHDL-AMS)。第四頁(yè),共三十三頁(yè),編輯于2023年,星期一VHDL與VerilogHDL語(yǔ)言的主要區(qū)別VerilogHDL是由GDA(GatewayDesignAutomation)公司于1983年末首創(chuàng)的,1995年成為IEEE標(biāo)準(zhǔn)。VerilogHDL在工業(yè)界通用些,而VHDL在大學(xué)應(yīng)用較多。VerilogHDL是在C語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的一種硬件描述語(yǔ)言,語(yǔ)法較自由;VHDL格式較嚴(yán)謹(jǐn),其書寫規(guī)則比VerilogHDL要繁瑣些。VerilogHDL和VHDL在行為抽象建模的覆蓋面范圍不同,VerilogHDL在系統(tǒng)級(jí)抽象方面要比VHDL略差一些,而在門級(jí)開關(guān)電路方面要強(qiáng)些。VerilogHDL強(qiáng)調(diào)于集成電路的綜合,VHDL強(qiáng)調(diào)于組合邏輯電路的綜合。第五頁(yè),共三十三頁(yè),編輯于2023年,星期一在QuartusII軟件中新建工程新建VHDL文件,編寫VHDL程序存盤(文件名為實(shí)體名與工程名相同,后綴為.VHD)編譯

軟件仿真管腳鎖定下載

由軟件設(shè)計(jì)到硬件實(shí)現(xiàn)的流程第六頁(yè),共三十三頁(yè),編輯于2023年,星期一

VHDL程序的基本結(jié)構(gòu)實(shí)體說(shuō)明(Entity)(*)

VHDL程序的基本結(jié)構(gòu)五部分結(jié)構(gòu)體(Architecture)(*)配置(Configuration)包集合(Package)庫(kù)(Library)用于描述設(shè)計(jì)的系統(tǒng)的外部接口用于描述系統(tǒng)內(nèi)部的結(jié)構(gòu)和行為安裝具體元件到實(shí)體-結(jié)構(gòu)體對(duì)存放設(shè)計(jì)模塊共享的數(shù)據(jù)類型、常數(shù)和子程序等專門存放預(yù)編譯程序包的地方第七頁(yè),共三十三頁(yè),編輯于2023年,星期一VHDL程序的實(shí)體

實(shí)體:VHDL程序的描述對(duì)象稱為實(shí)體。簡(jiǎn)單的實(shí)體是由實(shí)體說(shuō)明和結(jié)構(gòu)體兩部分組成的。實(shí)體定義本設(shè)計(jì)的輸入/輸出端口,聲明到其他實(shí)體及其他設(shè)計(jì)的接口。結(jié)構(gòu)體定義實(shí)體的實(shí)現(xiàn),即電路的具體描述。第八頁(yè),共三十三頁(yè),編輯于2023年,星期一(1)實(shí)體ENTITYVHDL的描述對(duì)象稱為實(shí)體。由實(shí)體說(shuō)明部分和構(gòu)造體部分組成…

端口名

:端口模式

數(shù)據(jù)類型);

ENTITY

實(shí)體名

IsEnd實(shí)體名;

格式:Port(端口名

:端口模式數(shù)據(jù)類型;說(shuō)明:①定義本設(shè)計(jì)的輸入/輸出端口

②端口名是每個(gè)系統(tǒng)引腳的名稱,一般用幾個(gè)英文字母組成

方向:INOUTINOUTBUFFERLINKAGE

數(shù)據(jù)類型:std_logic(一位),std_logic_vector(多位)

integer,boolean,bit,bit_vector第九頁(yè),共三十三頁(yè),編輯于2023年,星期一

LIBRARYIEEE;

USEIEEE.STD_LOGIC.1164.ALL;

ENTITYadd8IS

PORT(b:INSTD_LOGIC_VECTOR(7DOWNTO0);

a:INSTD_LOGIC_VECTOR(7DOWNTO0);Ci:INSTD_LOGIC;

Sum:OUTSTD_LOGIC_VECTOR(7DOWNTO0)

Co:OUTSTD_LOGIC);

ENDadd8;例:add8實(shí)體說(shuō)明部分實(shí)體add8/8位加法器外部接口等效邏輯電路圖A[7..0]B[7..0]SUM[7..0]CoCi第十頁(yè),共三十三頁(yè),編輯于2023年,星期一ENTITY設(shè)計(jì)時(shí)注意點(diǎn)實(shí)體名與文件名要一樣文件存放位置取名要規(guī)范(實(shí)體名、端口信號(hào)名)合理確定設(shè)計(jì)所需的端口信號(hào)第十一頁(yè),共三十三頁(yè),編輯于2023年,星期一(2)結(jié)構(gòu)體(ARCHITECTURE)

結(jié)構(gòu)體具體地描述了設(shè)計(jì)實(shí)體的邏輯功能或內(nèi)部電路結(jié)構(gòu)關(guān)系,從而建立設(shè)計(jì)實(shí)體輸入與輸出之間的關(guān)系。結(jié)構(gòu)體功能可以用三種方式進(jìn)行描述,即行為描述、數(shù)據(jù)流描述、結(jié)構(gòu)描述,另外,還可以采用混合描述。三種描述方式:

行為描述方式(behavioral)數(shù)據(jù)流描述方式(dataflow)結(jié)構(gòu)描述方式(structure)第十二頁(yè),共三十三頁(yè),編輯于2023年,星期一ARCHITECTURE結(jié)構(gòu)體名

Of實(shí)體名

IsBegin功能描述語(yǔ)句;--并行語(yǔ)句

End結(jié)構(gòu)體名;結(jié)構(gòu)體格式:[定義語(yǔ)句]內(nèi)部信號(hào)、常數(shù)、數(shù)據(jù)類型、函數(shù)等的定義第十三頁(yè),共三十三頁(yè),編輯于2023年,星期一結(jié)構(gòu)體中信號(hào)定義位于關(guān)鍵字ARCHITCTURE和BEGIN之間,用于對(duì)結(jié)構(gòu)內(nèi)部使用的信號(hào),常數(shù),數(shù)據(jù)類型,函數(shù)進(jìn)行定義。注意:(1)這是在結(jié)構(gòu)體內(nèi)部定義,而不是實(shí)體內(nèi)部。(2)實(shí)體說(shuō)明中定義I/O信號(hào)為外部信號(hào),而結(jié)構(gòu)體定義的信號(hào)為內(nèi)部信號(hào)。例:結(jié)構(gòu)體的信號(hào)定義方法ARCHITECTUREstructuralOFmuxISSIGNALab:bit;SIGNALx:std_logic_vector(0to7);……BEGINENDstructural;--信號(hào)不必標(biāo)注模式IN,OUT第十四頁(yè),共三十三頁(yè),編輯于2023年,星期一ENTITYmuxISPORT(d0,d1:INBIT;Sel:INBIT;G:OUTBIT);ENDMUX;ARCHITECTUREdataflowOFmuxISBEGINg<=(D0ANDsel)OR(NOTselANDD1);ENDdataflow;例:二選一電路LIBRARYIEEE;

USEIEEE.STD_LOGIC.1164.ALL;

等效邏輯電路圖muxGSELD0D1mux--并行語(yǔ)句描述結(jié)構(gòu)體mux實(shí)體的真值表

SELDOD1

G

1xx

D0

0xx

D1第十五頁(yè),共三十三頁(yè),編輯于2023年,星期一LIBRARYIEEE;USEIEEEstd_logic_1164.ALL;ENTITYcomparatorISPORT(a,b:INstd_logic_vector(7downto0);g:OUTstd_logic);ENDcomparator;ARCHITECTUREbehavioralOFcomparatorISBEGINComp:PROCESS(a,b)BEGINIFa=bTHENG<=‘1’;ELSEG<=‘0’;ENDIF;ENDprocesscomp;ENDbehavioral;舉例:設(shè)計(jì)八位比較器實(shí)體庫(kù),包說(shuō)明結(jié)構(gòu)體進(jìn)程第十六頁(yè),共三十三頁(yè),編輯于2023年,星期一

3種方法描述結(jié)構(gòu)體

(1)行為描述法:采用進(jìn)程語(yǔ)句,順序描述被設(shè)計(jì)實(shí)體的行為。

(2)數(shù)據(jù)流描述法:采用進(jìn)程語(yǔ)句,順序描述數(shù)據(jù)流在控制流作用下被加工,處理,存儲(chǔ)的全過(guò)程。

(3)結(jié)構(gòu)描述法:采用并行處理語(yǔ)句描述設(shè)計(jì)實(shí)體內(nèi)的結(jié)構(gòu)組織和元件互連關(guān)系。

第十七頁(yè),共三十三頁(yè),編輯于2023年,星期一

1.行為描述法ARCHITECTURE

behavioral

OF

rsffBEGINq<=NOT(qbANDset);

qb<=NOT(qANDreset);END

behavioral;結(jié)構(gòu)體的行為描述表示輸入與輸出間轉(zhuǎn)換的關(guān)系,是對(duì)設(shè)計(jì)實(shí)體按算法的路徑來(lái)描述。行為描述在EDA工程中稱為高層次描述或高級(jí)描述。第十八頁(yè),共三十三頁(yè),編輯于2023年,星期一

2.結(jié)構(gòu)化描述

結(jié)構(gòu)體的結(jié)構(gòu)化描述給出了實(shí)體內(nèi)部結(jié)構(gòu)、它所包含的模塊或元件及其互連關(guān)系;以及與實(shí)體外部引線的對(duì)應(yīng)關(guān)系。ARCHITECTURE

structural

OF

rsff

ISCOMPONENT nand2 PORT(a,b:IN BIT; c:OUT BIT);ENDCOMPONENT;BEGINu0:nand2

PORT

MAP

(a=>set,b=>qb,c=>q);u1:nand2

PORT

MAP

(a=>reset,b=>q,c=>qb);END

structural;

第十九頁(yè),共三十三頁(yè),編輯于2023年,星期一3.數(shù)據(jù)流描述法 結(jié)構(gòu)體的數(shù)據(jù)流描述法反映了從輸入數(shù)據(jù)到輸出數(shù)據(jù)之間所發(fā)生的邏輯變換,或者說(shuō)描述了數(shù)據(jù)流程的運(yùn)動(dòng)路徑、運(yùn)動(dòng)方向和運(yùn)動(dòng)結(jié)果。LIBRARYIEEE;USEIEEEstd_logic_1164.ALL;ENTITYcomparatorISPORT(a,b:INstd_logic_vector(7downto0);g:OUTstd_logic);ENDcomparator;ARCHITECTURE

dataflow

OF

comparator

ISBEGINg<="1"when(a=b)else"0";ENDdataflow;第二十頁(yè),共三十三頁(yè),編輯于2023年,星期一總結(jié):從例子可以看出,VHDL語(yǔ)言由兩部分組成:第1部分為實(shí)體說(shuō)明,第2部分為結(jié)構(gòu)體。實(shí)體描述VHDL程序結(jié)構(gòu)結(jié)構(gòu)體描述

1行為描述法

2數(shù)據(jù)流描述法

3結(jié)構(gòu)化描述法(1)設(shè)計(jì)實(shí)體用關(guān)鍵字ENTITY

來(lái)標(biāo)識(shí),結(jié)構(gòu)體用ARCHITECTURE來(lái)標(biāo)識(shí)。(2)一個(gè)設(shè)計(jì)實(shí)體必須包含一個(gè)結(jié)構(gòu)體或含有多個(gè)結(jié)構(gòu)體第二十一頁(yè),共三十三頁(yè),編輯于2023年,星期一(3)配置 用于在多構(gòu)造體中的實(shí)體中選擇構(gòu)造體,例如,在做RS觸發(fā)器的實(shí)體中使用了兩個(gè)構(gòu)造體,目的是研究各個(gè)構(gòu)造體描述的RS觸發(fā)器的行為性能如何,但是究竟在仿真中使用哪一個(gè)構(gòu)造體的問(wèn)題就是配置問(wèn)題。

配置語(yǔ)句格式:

CONFIGURATION配置名OF實(shí)體名IS[說(shuō)明語(yǔ)句]END配置名;

描述層與層之間的關(guān)系以及實(shí)體與結(jié)構(gòu)之間的連接關(guān)系。第二十二頁(yè),共三十三頁(yè),編輯于2023年,星期一默認(rèn)配置格式

CONFIGURATION配置名OF實(shí)體名IS FOR選配構(gòu)造體名

ENDFOR;

END配置名;例:兩個(gè)構(gòu)造體,可以用配置語(yǔ)句進(jìn)行設(shè)置:

CONFIGRATIONrsconOFrsIS//選擇構(gòu)造體rsff1 FORrsff1 ENDFOR; ENDrscon;第二十三頁(yè),共三十三頁(yè),編輯于2023年,星期一

--結(jié)構(gòu)體rsff1ARCHITECTURErsff1OFrsISCOMPONENTnand2PORT(a,b:INBIT;c:OUTBIT);ENDCOMPONENT;BEGINU1:nand2PORTMAP(a=>set,b=>qb,c=>q);U2:nand2PORTMAP(a=>reset,b=>q,c=>qb);ENDrsff1;--結(jié)構(gòu)體rsff2

ARCHITECTURErsff2OFrsISBEGINq<=NOT(qbANDset);qb<=NOT(qANDreset);ENDrsff2--配置CONFIGRATIONrsconOFrsIS FORrsff1 ENDFOR; ENDrscon;--實(shí)體ENTITYrsISPORT(set,reset:INBIT;q,qb:BUFFERBIT);ENDrs;第二十四頁(yè),共三十三頁(yè),編輯于2023年,星期一(4)庫(kù)(LIBRARY) 庫(kù)(Library)是用于存放預(yù)先編譯好的程序包(Package),程序包中定義了數(shù)據(jù)集合體、邏輯操作和元件等。主要是聲明在設(shè)計(jì)或?qū)嶓w中將用到的常數(shù),數(shù)據(jù)類型,元件及子程序等。使用格式:LIBRARY庫(kù)名;

USE庫(kù)名.程序包名.All;

例:LIBRARYIEEE

USEieee.std_logic_1164.all該例說(shuō)明要使用IEEE庫(kù)中的1164包中所有項(xiàng)目第二十五頁(yè),共三十三頁(yè),編輯于2023年,星期一在Max+plusⅡ系統(tǒng)中有4個(gè)庫(kù)能支持VHDL語(yǔ)言,它們分別是Std庫(kù)、IEEE庫(kù)、Altera庫(kù)和Lpm庫(kù)。IEEE庫(kù)中的程序包std_logic_1164定義了std_logic和std_logic_vector等數(shù)據(jù)類型。注意STD庫(kù):STD庫(kù)是VHDL的標(biāo)準(zhǔn)庫(kù),在庫(kù)中有名為STANDARD的包,還有TEXTIO包。若使用STANDARD包中的數(shù)據(jù)可以不按標(biāo)準(zhǔn)格式說(shuō)明,但是若使用TEXTIO包,則需要按照如下格式說(shuō)明:

LIBRARYSTD;

USESTD.TEXTIO.ALL庫(kù)的作用范圍:庫(kù)的作用范圍從一個(gè)實(shí)體說(shuō)明開始到它所屬的結(jié)構(gòu)體、配置為止,當(dāng)有兩個(gè)實(shí)體時(shí),第二個(gè)實(shí)體前要另加庫(kù)和包的說(shuō)明。

第二十六頁(yè),共三十三頁(yè),編輯于2023年,星期一 通常在一個(gè)實(shí)體中對(duì)數(shù)據(jù)類型、常量等進(jìn)行的說(shuō)明只可以在一個(gè)實(shí)體中使用,為使這些說(shuō)明可以在其它實(shí)體中使用,VHDL提供了程序包結(jié)構(gòu),包中羅列VHDL中用到的信號(hào)定義、常數(shù)定義、數(shù)據(jù)類型、元件語(yǔ)句、函數(shù)定義和過(guò)程定義,它是一個(gè)可編譯的設(shè)計(jì)單元,也是庫(kù)結(jié)構(gòu)中的一個(gè)層次,使用包時(shí)可以用USE語(yǔ)句說(shuō)明。

例如:

USEIEEE.STD_LOGIC_1164.ALL

(5)程序包(PACKAGE)第二十七頁(yè),共三十三頁(yè),編輯于2023年,星期一程序包由兩部分組成:程序包說(shuō)明和程序包體程序包說(shuō)明為程序包定義接口,聲明包中的數(shù)據(jù)類型、元件、函數(shù)。其方式與實(shí)體定義模塊接口非常相似。程序體規(guī)定程序的實(shí)際功能,存放說(shuō)明中的函數(shù)和元件。其方式與結(jié)構(gòu)體語(yǔ)句方法相同。第二十八頁(yè),共三十三頁(yè),編輯于2023年,星期一包結(jié)構(gòu)格式程序包說(shuō)明:PACKAGE包名IS[說(shuō)明語(yǔ)句]END包名包頭中列出所有項(xiàng)的名稱

程序包體:PACKAGEBODY包名IS[說(shuō)明語(yǔ)句]END包名;包體給出各項(xiàng)的具體細(xì)節(jié)

第二十九頁(yè),共三十三頁(yè),編輯于2023年,星期一程序包說(shuō)明USESTD.LOGIC.ALLPACKAGElogicISTYPEthree_level_logicIS(‘0’

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論