PLD技術(shù)及其應(yīng)用_第1頁(yè)
PLD技術(shù)及其應(yīng)用_第2頁(yè)
PLD技術(shù)及其應(yīng)用_第3頁(yè)
PLD技術(shù)及其應(yīng)用_第4頁(yè)
PLD技術(shù)及其應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩102頁(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)介

PLD技術(shù)及其應(yīng)用第1頁(yè)/共107頁(yè)P(yáng)LD的發(fā)展可編程邏輯器件(ProgrammbleLogicDevice)簡(jiǎn)稱PLD制造商通用集成電路用戶專用集成電路第11章11.1第12章概述

牛牛文庫(kù)文檔分享第2頁(yè)/共107頁(yè)可編程邏輯器件的分類從互連特性上分類從可編程特性上分類從器件容量上分類從結(jié)構(gòu)的復(fù)雜程度上分類第11章11.1第12章概述

牛牛文庫(kù)文檔分享第3頁(yè)/共107頁(yè)可編程邏輯器件的發(fā)展PROMPLAPALGALSPLDCPLDFPGAISP技術(shù)什么是ISP技術(shù)???第11章11.1第12章概述

牛牛文庫(kù)文檔分享第4頁(yè)/共107頁(yè)數(shù)字系統(tǒng)的設(shè)計(jì)積木塊式的設(shè)計(jì)方法根據(jù)需要選擇器件搭系統(tǒng)調(diào)試傳統(tǒng)電子系統(tǒng)的設(shè)計(jì)方法固定功能元件電路板設(shè)計(jì)電子系統(tǒng)缺點(diǎn)1.器件多,數(shù)目大;2.可靠性差;3.不能實(shí)時(shí)修改。第12章概述

牛牛文庫(kù)文檔分享第5頁(yè)/共107頁(yè)自頂向下的綜合技術(shù)系統(tǒng)子功能塊1子功能塊2子功能塊n邏輯塊11邏輯塊12邏輯塊1m邏輯塊21邏輯塊111Top-Down方法的關(guān)鍵在于:利用功能分割手段將設(shè)計(jì)由上到下進(jìn)行層次化和模塊化第12章概述

牛牛文庫(kù)文檔分享第6頁(yè)/共107頁(yè)自頂向下設(shè)計(jì)方法的優(yōu)點(diǎn)設(shè)計(jì)與具體的器件和工藝無(wú)關(guān)方便在各種集成電路或PLD器件之間移植適合多個(gè)設(shè)計(jì)者同時(shí)進(jìn)行設(shè)計(jì)設(shè)計(jì)原則1、逐層分解功能,分層次進(jìn)行設(shè)計(jì)2、在各設(shè)計(jì)層次上,進(jìn)行仿真驗(yàn)證第12章概述

牛牛文庫(kù)文檔分享第7頁(yè)/共107頁(yè)ISP技術(shù)介紹只要將器件插在系統(tǒng)內(nèi)或者電路板上,就能對(duì)其編程或再編程??梢韵妊b配后編程,成為產(chǎn)品后還可反復(fù)編程??梢詫?shí)時(shí)地進(jìn)行靈活和方便的更改和開發(fā),真正做到了硬件的“軟件化”自動(dòng)設(shè)計(jì)。第12章概述

牛牛文庫(kù)文檔分享第8頁(yè)/共107頁(yè)

CPLD的ISP技術(shù)使得硬件像軟件一樣被編程配置,實(shí)時(shí)設(shè)計(jì)、實(shí)時(shí)修改、實(shí)時(shí)實(shí)現(xiàn),為電子技術(shù)的發(fā)展開辟了廣闊的前景。第12章概述

牛牛文庫(kù)文檔分享第9頁(yè)/共107頁(yè)12.1可編程邏輯器件可編程邏輯器件的基本邏輯約定可編程邏輯器件的基本結(jié)構(gòu)可編程邏輯器件的介紹第12章12.1

牛牛文庫(kù)文檔分享第10頁(yè)/共107頁(yè)第12章12.1.1

(1)輸入緩沖單元

(a)緩沖器(b)真值表

有關(guān)邏輯約定

牛牛文庫(kù)文檔分享第11頁(yè)/共107頁(yè)第12章12.1.1

(2)與門和或門

(a)與門PLD表示法(b)與門傳統(tǒng)表示法

(c)或門PLD表示法(d)或門傳統(tǒng)表示法有關(guān)邏輯約定

牛牛文庫(kù)文檔分享第12頁(yè)/共107頁(yè)有關(guān)邏輯約定第12章12.1.1

(3)PLD連接方式

(a)固定連接(b)可編程連接(c)不連接

牛牛文庫(kù)文檔分享第13頁(yè)/共107頁(yè)第12章12.1.2

早期的可編程邏輯器件

(1)PROM的結(jié)構(gòu)

固定與陣列可編程或陣列

牛牛文庫(kù)文檔分享第14頁(yè)/共107頁(yè)第12章12.1.2

(2)PLA的結(jié)構(gòu)

與陣、或陣均可編程

早期的可編程邏輯器件

牛牛文庫(kù)文檔分享第15頁(yè)/共107頁(yè)第12章12.1.2

(3)PAL的結(jié)構(gòu)

可編程與陣列固定或陣列

早期的可編程邏輯器件

牛牛文庫(kù)文檔分享第16頁(yè)/共107頁(yè)第12章12.1.1

(4)GAL的結(jié)構(gòu)

其特點(diǎn)是在它的每個(gè)輸出端都集成有一個(gè)輸出邏輯宏單元,因此其輸出方式可以配置(Configurable)。

早期的可編程邏輯器件

牛牛文庫(kù)文檔分享第17頁(yè)/共107頁(yè)第12章12.1.2

CPLD的結(jié)構(gòu)特點(diǎn)在CPLD中,通常將整個(gè)邏輯分為幾個(gè)邏輯塊。每個(gè)邏輯塊相當(dāng)于數(shù)個(gè)GAL的組合,各個(gè)邏輯塊之間再用互連資源實(shí)現(xiàn)連接。在CPLD芯片中設(shè)置了若干I/O單元,它們可直接與引腳相連,然后通過(guò)另一組連線連到所需的宏單元上。CPLD中普遍設(shè)有多個(gè)時(shí)鐘輸入端,并可以利用芯片中產(chǎn)生的乘積項(xiàng)作為時(shí)鐘,給系統(tǒng)的設(shè)計(jì)帶來(lái)了很大的靈活性。結(jié)構(gòu)特點(diǎn)

牛牛文庫(kù)文檔分享第18頁(yè)/共107頁(yè)第12章12.1.2

CPLD的編程工藝

EPROM(ErasableProgrammableROM)工藝

E2ROM(ElectricalErasableROM)工藝

Flash工藝

牛牛文庫(kù)文檔分享第19頁(yè)/共107頁(yè)第12章12.1.2

FPGA的結(jié)構(gòu)特點(diǎn)

在構(gòu)造FPGA時(shí)改用了單元結(jié)構(gòu)。即在陣列的各個(gè)節(jié)點(diǎn)上放的不再是一個(gè)單獨(dú)的門,而是用門、觸發(fā)器等做成的邏輯單元,并在各個(gè)單元之間預(yù)先制作了許多連線。所以嚴(yán)格地說(shuō),F(xiàn)PGA不是門陣列,而是邏輯單元陣列,它和門陣列只是在陣列結(jié)構(gòu)上相似而已。結(jié)構(gòu)特點(diǎn)

牛牛文庫(kù)文檔分享第20頁(yè)/共107頁(yè)第12章12.1.2

FPGA的編程工藝

(1)反熔絲工藝-----編程時(shí)不是將熔絲熔斷,而是將其熔連。Actel公司的FPGA采用。

(2)RAM工藝-----Xilinx公司的FPGA采用的是另一種工藝,每個(gè)連接點(diǎn)代替熔絲的是一個(gè)受SR靜態(tài)觸發(fā)器控制的開關(guān),當(dāng)觸發(fā)器被置1時(shí),開關(guān)接通,否則開關(guān)斷開。

牛牛文庫(kù)文檔分享第21頁(yè)/共107頁(yè)第12章12.1.2

FPGA/CPLD的比較延遲可預(yù)測(cè)能力

CPLD的時(shí)序延遲是均勻的和可預(yù)測(cè)的,

FPGA的時(shí)序延遲不可預(yù)測(cè)。布線能力

CPLD獨(dú)特的內(nèi)連線結(jié)構(gòu)使其內(nèi)連率很高,更適合于芯片設(shè)計(jì)的可編程器件驗(yàn)證。適用場(chǎng)合

CPLD更適合于完成各種算法和組合邏輯,

FPGA更適合于完成時(shí)序較多的邏輯電路。主要區(qū)別

牛牛文庫(kù)文檔分享第22頁(yè)/共107頁(yè)第12章12.1.3

Altera公司的主要產(chǎn)品

器件的可用資源逐漸增多,輸入輸出管腳也隨之增加。Classic系列MAX系列ACEX系列FLEX系列APEX系列

牛牛文庫(kù)文檔分享第23頁(yè)/共107頁(yè)12.2

可編程邏輯器件開發(fā)環(huán)境MAX+PLUSII的設(shè)計(jì)流程

主要設(shè)計(jì)輸入方法原理圖輸入方式文本設(shè)計(jì)輸入方法

編譯設(shè)計(jì)項(xiàng)目

設(shè)計(jì)項(xiàng)目的模擬仿真

器件編程

時(shí)間分析

牛牛文庫(kù)文檔分享第24頁(yè)/共107頁(yè)第12章12.2MAX+PLUSII的設(shè)計(jì)流程(1)設(shè)計(jì)輸入??梢圆捎迷韴D輸入、HDL語(yǔ)言描述、EDIF網(wǎng)表讀入及波形輸入等方式。

(2)語(yǔ)法檢查。主要為檢驗(yàn)輸入是否有誤。

(3)編譯。主要完成器件的選擇及適配,邏輯的綜合及器件的裝入,延時(shí)信息的提取。

(4)仿真。將編譯產(chǎn)生的延時(shí)信息加入到設(shè)計(jì)中,進(jìn)行布局布線后的仿真。

(5)編程驗(yàn)證。經(jīng)EPROM或編程電纜配置CPLD,加入實(shí)際激勵(lì),進(jìn)行測(cè)試,以檢查是否完成預(yù)定功能。MAX+PLUSII的設(shè)計(jì)流程圖

牛牛文庫(kù)文檔分享第25頁(yè)/共107頁(yè)第12章12.2.1主要設(shè)計(jì)輸入方法

原理圖輸入方式文本設(shè)計(jì)輸入方式層次設(shè)計(jì)輸入方式波形設(shè)計(jì)輸入方式

牛牛文庫(kù)文檔分享第26頁(yè)/共107頁(yè)第12章12.2.1指定設(shè)計(jì)項(xiàng)目的名字

用MAX+PLUSII編譯一個(gè)項(xiàng)目前,必須確定一個(gè)設(shè)計(jì)文件作為當(dāng)前項(xiàng)目。原理圖輸入方式

牛牛文庫(kù)文檔分享第27頁(yè)/共107頁(yè)第12章12.2.1建立新文件原理圖輸入方式

牛牛文庫(kù)文檔分享第28頁(yè)/共107頁(yè)第12章12.2.1原理圖輸入方式

牛牛文庫(kù)文檔分享第29頁(yè)/共107頁(yè)第12章12.2.1輸入圖原和宏功能符號(hào)原理圖輸入方式

牛牛文庫(kù)文檔分享第30頁(yè)/共107頁(yè)第12章12.2.1連線

輸入引腳原理圖輸入方式

牛牛文庫(kù)文檔分享第31頁(yè)/共107頁(yè)第12章12.1.1原理圖輸入方式圖形編輯選項(xiàng)

牛牛文庫(kù)文檔分享第32頁(yè)/共107頁(yè)第12章12.1.1保存文件,檢查基本錯(cuò)誤原理圖輸入方式

牛牛文庫(kù)文檔分享第33頁(yè)/共107頁(yè)第12章12.2.1原理圖輸入方式創(chuàng)建一個(gè)默認(rèn)的圖形符號(hào)

牛牛文庫(kù)文檔分享第34頁(yè)/共107頁(yè)創(chuàng)建一個(gè)默認(rèn)的圖形符號(hào)第12章12.2.1

牛牛文庫(kù)文檔分享第35頁(yè)/共107頁(yè)第12章12.2.1文本設(shè)計(jì)輸入方法

新建文本文件

牛牛文庫(kù)文檔分享第36頁(yè)/共107頁(yè)第12章12.2.1文本設(shè)計(jì)輸入方法

新建文本文件

牛牛文庫(kù)文檔分享第37頁(yè)/共107頁(yè)第12章12.2.1文本設(shè)計(jì)輸入方法

文本輸入

牛牛文庫(kù)文檔分享第38頁(yè)/共107頁(yè)保存文件文本設(shè)計(jì)輸入方法第12章12.2.1

牛牛文庫(kù)文檔分享第39頁(yè)/共107頁(yè)第12章12.2.1頂層圖形設(shè)計(jì)方法創(chuàng)建頂層圖形設(shè)計(jì)文件

牛牛文庫(kù)文檔分享第40頁(yè)/共107頁(yè)創(chuàng)建頂層圖形設(shè)計(jì)文件第12章12.2.1

牛牛文庫(kù)文檔分享第41頁(yè)/共107頁(yè)第12章12.2.2編譯設(shè)計(jì)項(xiàng)目

打開編輯器窗口

牛牛文庫(kù)文檔分享第42頁(yè)/共107頁(yè)編譯設(shè)計(jì)項(xiàng)目第12章12.2.2

牛牛文庫(kù)文檔分享第43頁(yè)/共107頁(yè)第12章12.2.2編譯設(shè)計(jì)項(xiàng)目

選擇器件

牛牛文庫(kù)文檔分享第44頁(yè)/共107頁(yè)選擇器件編譯設(shè)計(jì)項(xiàng)目第12章12.2.2

牛牛文庫(kù)文檔分享第45頁(yè)/共107頁(yè)第12章12.2.2編譯設(shè)計(jì)項(xiàng)目

設(shè)計(jì)規(guī)則檢查

牛牛文庫(kù)文檔分享第46頁(yè)/共107頁(yè)第12章12.2.2編譯設(shè)計(jì)項(xiàng)目

保護(hù)位設(shè)置

牛牛文庫(kù)文檔分享第47頁(yè)/共107頁(yè)第12章12.2.2器件的引腳分配

引腳分配

牛牛文庫(kù)文檔分享第48頁(yè)/共107頁(yè)第12章12.2.2打開定時(shí)模擬器網(wǎng)表文件提取器

打開TimingSNFExtractor模塊

牛牛文庫(kù)文檔分享第49頁(yè)/共107頁(yè)第12章12.2.2指定在報(bào)告文件中需要產(chǎn)生的部分

如果某些部分還沒(méi)有被打開,就選中All選項(xiàng)

牛牛文庫(kù)文檔分享第50頁(yè)/共107頁(yè)第12章12.2.2閱讀報(bào)告

打開報(bào)告文件

牛牛文庫(kù)文檔分享第51頁(yè)/共107頁(yè)第12章12.2.2在底層圖編輯器中觀察試配結(jié)果

器件視圖邏輯陣列塊視圖

牛牛文庫(kù)文檔分享第52頁(yè)/共107頁(yè)第12章12.2.3設(shè)計(jì)項(xiàng)目的模擬仿真

創(chuàng)建模擬文件

牛牛文庫(kù)文檔分享第53頁(yè)/共107頁(yè)第12章12.2.3設(shè)計(jì)項(xiàng)目的模擬仿真

輸入節(jié)點(diǎn)打開仿真器

牛牛文庫(kù)文檔分享第54頁(yè)/共107頁(yè)第12章12.2.3設(shè)計(jì)項(xiàng)目的模擬仿真

模擬仿真

牛牛文庫(kù)文檔分享第55頁(yè)/共107頁(yè)第12章12.2.3設(shè)計(jì)項(xiàng)目的模擬仿真

仿真結(jié)果

牛牛文庫(kù)文檔分享第56頁(yè)/共107頁(yè)時(shí)序仿真又稱為后仿真,在后仿真中由于加入了芯片中的實(shí)際延時(shí)信息,仿真結(jié)果與芯片實(shí)際工作狀態(tài)基本一致。時(shí)序仿真時(shí)序仿真可以發(fā)現(xiàn)競(jìng)爭(zhēng)與冒險(xiǎn)現(xiàn)象,若有此問(wèn)題可從設(shè)計(jì)中設(shè)法消除,仿真與設(shè)計(jì)輸入為一交互過(guò)程。第12章12.2.4

牛牛文庫(kù)文檔分享第57頁(yè)/共107頁(yè)時(shí)間分析

傳播延遲分析第12章12.2.4

牛牛文庫(kù)文檔分享第58頁(yè)/共107頁(yè)時(shí)間分析

時(shí)序邏輯電路性能分析

第12章12.2.4

牛牛文庫(kù)文檔分享第59頁(yè)/共107頁(yè)時(shí)間分析

建立和保持時(shí)間分析第12章12.2.4

牛牛文庫(kù)文檔分享第60頁(yè)/共107頁(yè)器件編程

(1)打開編程器窗口打開編程器第12章12.2.5

牛牛文庫(kù)文檔分享第61頁(yè)/共107頁(yè)器件編程

編程器設(shè)置第12章12.2.5

牛牛文庫(kù)文檔分享第62頁(yè)/共107頁(yè)第12章12.312.3硬件描述語(yǔ)言

VHDL(VeryHighSpeedIntergratedCircuitHardwareDescriptionLanguage)即超高速集成電路硬件描述語(yǔ)言

(1)功能強(qiáng)大,描述力強(qiáng)??捎糜陂T級(jí)、電路級(jí)甚至系統(tǒng)級(jí)的描述、仿真和設(shè)計(jì)。主要優(yōu)點(diǎn)(2)可移植性好。對(duì)于設(shè)計(jì)和仿真工具采用相同的描述,對(duì)于不同的平臺(tái)也采用相同的描述。(4)可以延長(zhǎng)設(shè)計(jì)的生命周期。因?yàn)閂HDL的硬件描述與工藝技術(shù)無(wú)關(guān),不會(huì)因工藝變化而使描述過(guò)時(shí)。(3)研制周期短,成本低。由于VHDL支持大規(guī)模設(shè)計(jì)的分解和對(duì)已有設(shè)備的利用,因此加快了設(shè)計(jì)流程。定義

牛牛文庫(kù)文檔分享第63頁(yè)/共107頁(yè)第12章12.3硬件描述語(yǔ)言

庫(kù)實(shí)體結(jié)構(gòu)體

牛牛文庫(kù)文檔分享第64頁(yè)/共107頁(yè)第12章12.3實(shí)體

實(shí)體名端口數(shù)據(jù)類型

牛牛文庫(kù)文檔分享第65頁(yè)/共107頁(yè)第12章12.3端口說(shuō)明端口模式端口模式說(shuō)明IN輸入OUT輸出(構(gòu)造體內(nèi)部不能再使用)BUFFER輸出(構(gòu)造體內(nèi)部可再使用)INOUT雙向LINKAGE不指定方向,無(wú)論哪一個(gè)方向都可連接

牛牛文庫(kù)文檔分享第66頁(yè)/共107頁(yè)第12章12.3數(shù)據(jù)類型BIT位類型,取值0、1,由STANDARD程序包定義;BIT_VECTOR位向量類型,是BIT的組合,該端口的取值可能是一組二進(jìn)制位的值;STD_LOGIC 工業(yè)標(biāo)準(zhǔn)的邏輯類型,取值0、1、X、Z,由STD_LOGIC_1164程序包定義;INTEGER整數(shù)類型,可用作循環(huán)的指針或常數(shù),通常不用作I/O信號(hào);STD_LOGIC_VECTOR工業(yè)標(biāo)準(zhǔn)的邏輯向量類型,是STD_LOGIC的組;

BOOLEAN布爾類型,取值FALSE,TRUE。

牛牛文庫(kù)文檔分享第67頁(yè)/共107頁(yè)第12章12.3結(jié)構(gòu)體結(jié)構(gòu)體的一般形式為:Architecture結(jié)構(gòu)體名Of實(shí)體名Is[說(shuō)明]Begin[功能描述語(yǔ)句]End結(jié)構(gòu)體名;Architectureor2xOfor2IsBegin y<=aORb;Endor2x;結(jié)構(gòu)體名實(shí)體名

牛牛文庫(kù)文檔分享第68頁(yè)/共107頁(yè)第12章12.3結(jié)構(gòu)體---Block進(jìn)程(Process)語(yǔ)句結(jié)構(gòu)Block語(yǔ)句結(jié)構(gòu)子程序(Subprograms)語(yǔ)句結(jié)構(gòu)ARCHITECTUREaOFdemulti_4vISBeginB BlockBeginCaseSIs When“00”=> Y0<=D;

When“01”=> Y1<=D;

When“10”=> Y2<=D; WhenOthers=> Y3<=D;

EndBlock

B;Enda;Block語(yǔ)句的表達(dá)格式如下: 塊結(jié)構(gòu)名:

Block Begin

并行語(yǔ)句

EndBlock塊結(jié)構(gòu)名;三種子結(jié)構(gòu)

牛牛文庫(kù)文檔分享第69頁(yè)/共107頁(yè)第12章12.3結(jié)構(gòu)體---Process

Architecturedec4be_archofdec4beisBegin

Process(in_bit)Begin Casein_bitis When'0'=>BE0<='0';BE1<='1'; When'1'=>BE0<='1';BE1<='0'; Whenothers=>BE0<='X'; BE1<='X'; Endcase;

Endprocess;Enddec4be_arch;Process語(yǔ)句的表達(dá)格式如下:[進(jìn)程名]:Process(信號(hào))Begin

順序描述語(yǔ)句EndProcess;

牛牛文庫(kù)文檔分享第70頁(yè)/共107頁(yè)第12章12.3結(jié)構(gòu)體---Subprograms

Proceduremypro(sig1,sig2)IS┇Endmypro;調(diào)用語(yǔ)句:

mypro(sig1,sig2);在VHDL中,子程序有兩種類型:過(guò)程(Procedure)函數(shù)(Function)1)過(guò)程語(yǔ)句格式如下:

Procedure過(guò)程名(參數(shù)表)Is[定義語(yǔ)句]Begin [順序處理語(yǔ)句]End過(guò)程名;

牛牛文庫(kù)文檔分享第71頁(yè)/共107頁(yè)第12章12.3結(jié)構(gòu)體---Subprograms

PackagebpacisFunctionmax(a:Std_logic_vector; b:Std_logic_vector) ReturnStd_logic_vector;Endbpac;

PackagebodybpacisFunctionmax(a:Std_logic_vector; b:Std_logic_vector) ReturnStd_logic_vectorisVariabletemp:Std_logic_vector;BeginIf(a<b)Thentemp:=a;Else temp:=b;EndIf; Returntemp;End;Endbpac;Function函數(shù)名(參數(shù)表)Return數(shù)據(jù)類型名Is[定義語(yǔ)句]Begin [順序處理語(yǔ)句]Return[返回變量名]End[函數(shù)名];通常各種功能的FUNCTION語(yǔ)句的程序都被集中在包集合(Package)中。

牛牛文庫(kù)文檔分享第72頁(yè)/共107頁(yè)第12章12.3包集合

PackageLogicis:

TypeThree_level_logicis(‘0’,‘1’,‘Z’);

ConstantU:Three_level_logic:=‘0’;

Functionlnvert(Input:Three_level_logic) ReturnThree_level_logic;

EndLogic;

PackagebodyLogicIsFunctionlnvert(Input:Three_level_logic) ReturnThree_level_logicIs;

BeginCaselnputIs When‘0’=>Return‘1’;

When‘1’=>Return‘0’;

When‘Z’=>Return‘Z’;

EndCase;Endlnvert;EndLogic;

包集合標(biāo)題的形式為:Package包集合名is[說(shuō)明語(yǔ)句];

End包集合名;包集合體的形式為:PackageBody包集合名is[說(shuō)明語(yǔ)句];

End包集合名;包集合標(biāo)題包集合體

牛牛文庫(kù)文檔分享第73頁(yè)/共107頁(yè)第12章12.3庫(kù)

例如:

LibraryIEEE;

UseIEEE.STD_LOGIC_1164.ALL;庫(kù)的說(shuō)明總是放在設(shè)計(jì)單元的最前面。格式為:

Library庫(kù)名;庫(kù)大致可以歸納為5種:

IEEE庫(kù)、

STD庫(kù)、面向ASIC的庫(kù)用戶定義的庫(kù)

WORK庫(kù)。

牛牛文庫(kù)文檔分享第74頁(yè)/共107頁(yè)第12章12.3配置

ArchitectureoneOFNANDISBeginC<=NOT(aANDb);

EndArchitectureone;ArchitecturetwoOfNANDIsBeginC<=‘1’When(a=‘0’)AND(b=‘0’)ElseC<=‘1’When(a=‘0’)AND(b=‘1’)ElseC<=‘1’When(a=‘1’)AND(b=‘0’)ElseC<=‘0’When(a=‘1’)AND(b=‘1’)ElseC<=‘0’;

EndArchitecturetwo;配置語(yǔ)句的一般格式如下:Configration配置名Of實(shí)體名Is[語(yǔ)句說(shuō)明]End配置名;ConfigurationsecondOfNANDIsFortwoEndFor;Endsecond;ConfigurationfirstOfNANDIsForoneEndFor;Endfirst;

牛牛文庫(kù)文檔分享第75頁(yè)/共107頁(yè)第12章12.3

VHDL語(yǔ)言的數(shù)據(jù)類型及運(yùn)算操作符

(1)常數(shù)常數(shù)的說(shuō)明的一般格式如下:

Constant:常數(shù)名:數(shù)據(jù)類型:=表達(dá)式;例如:

Constant:VCC:REAL:=3.3;(2)變量變量的說(shuō)明語(yǔ)句格式如下:Variable:變量名:數(shù)據(jù)類型 約束條件:=表達(dá)式;例如:

Variable:z:IntegerRange0To255:=8;(3)信號(hào)信號(hào)說(shuō)明語(yǔ)句格式如下:Singal:信號(hào)名:數(shù)據(jù)類型 約束條件:=表達(dá)式;例如:

Singal:CLK:BIT:=‘0’;VHDL中有三類對(duì)象:常數(shù)(Constant)變量(Variable)信號(hào)(Signal)

牛牛文庫(kù)文檔分享第76頁(yè)/共107頁(yè)第12章12.3VHDL中的數(shù)據(jù)類型

數(shù)據(jù)類型含義整數(shù)整數(shù)32位,-2147483647~2147483647實(shí)數(shù)浮點(diǎn)數(shù),-1.0E+38~+1.0E+38位邏輯‘0’或‘1’位矢量位矢量布爾量邏輯“假”或邏輯“真”字符ASCII字符時(shí)間時(shí)間單位fs,ps,ns,ms,sec,min,hr錯(cuò)誤等級(jí)NOTE,WARNING,ERROR,FAILURE自然數(shù),正整數(shù)整數(shù)的子集字符串字符矢量

牛牛文庫(kù)文檔分享第77頁(yè)/共107頁(yè)第12章12.3VHDL語(yǔ)言的運(yùn)算操作符

邏輯(Logical)運(yùn)算、關(guān)系(Relational)運(yùn)算算術(shù)(Arithmetic)運(yùn)算并置(Concatenation)運(yùn)算

牛牛文庫(kù)文檔分享第78頁(yè)/共107頁(yè)第12章12.3VHDL語(yǔ)言的運(yùn)算操作符

(1)邏輯運(yùn)算符在VHDL語(yǔ)言中邏輯運(yùn)算符共有6種:NOT — 取反;AND — 與;OR — 或;NAND — 與非;NOR — 或非;XOR — 異或;

牛牛文庫(kù)文檔分享第79頁(yè)/共107頁(yè)第12章12.3VHDL語(yǔ)言的運(yùn)算操作符

(2)算術(shù)運(yùn)算符VHDL有10種算術(shù)運(yùn)算符,它們分別是:+ — 加;— — 減;* — 乘;/ — 除;MOD — 求模;REM — 取余;+ — 正;(一元運(yùn)算)- — 負(fù);(一元運(yùn)算)** — 指數(shù);ABS — 取絕對(duì)值。

牛牛文庫(kù)文檔分享第80頁(yè)/共107頁(yè)第12章12.3VHDL語(yǔ)言的運(yùn)算操作符

(3)關(guān)系運(yùn)算符VHDL語(yǔ)言中有6種關(guān)系運(yùn)算符,它們分別是:= — 等于;/= — 不等于;< — 小于;<= — 小于等于;> — 大于;>= — 大于等于。

牛牛文庫(kù)文檔分享第81頁(yè)/共107頁(yè)第12章12.3VHDL語(yǔ)言的運(yùn)算操作符

(4)并置運(yùn)算符并置運(yùn)算符“&”用于位的連接。例:將a(0)~a(3)4位連接起來(lái)構(gòu)成位矢量a,則表示為:

a<=a(0)&a(1)&a(2)&a(3);將b(0)~b(3)4位連接起來(lái)構(gòu)成位矢量b,則表示為:

b<=b(0)&b(1)&b(2)&b(3);將a和b連接起來(lái)構(gòu)成8位位矢量y,表示為:

y<=a&b;

牛牛文庫(kù)文檔分享第82頁(yè)/共107頁(yè)第12章12.3VHDL順序語(yǔ)句

VHDL中有如下幾種順序語(yǔ)句:變量賦值語(yǔ)句流程控制語(yǔ)句等待(WAIT)語(yǔ)句信號(hào)代入語(yǔ)句斷言(ASSERT)語(yǔ)句返回語(yǔ)句空操作語(yǔ)句

牛牛文庫(kù)文檔分享第83頁(yè)/共107頁(yè)第12章12.3變量賦值語(yǔ)句變量賦值語(yǔ)句的書寫格式為: 目的變量:=表達(dá)式;其中:目的變量和表達(dá)式所代表的新值的類型必須相同。目的變量的類型、范圍及初值在事先應(yīng)已給出。表達(dá)式可以是變量、信號(hào)或字符。例如: a:=2;變量值只在進(jìn)程或子程序中使用,它無(wú)法傳遞到進(jìn)程之外。它類似于一般高級(jí)語(yǔ)言的局部變量。注意

牛牛文庫(kù)文檔分享第84頁(yè)/共107頁(yè)第12章12.3流程控制語(yǔ)句

流程控制語(yǔ)句共有五種:IF語(yǔ)句CASE語(yǔ)句LOOP語(yǔ)句NEXT語(yǔ)句EXIT語(yǔ)句

牛牛文庫(kù)文檔分享第85頁(yè)/共107頁(yè)第12章12.3流程控制語(yǔ)句----IF語(yǔ)句

IF條件句Then--第一種IF語(yǔ)句,IF語(yǔ)句的單選擇控制順序語(yǔ)句

EndIF;IF條件句Then--第二種IF語(yǔ)句,IF語(yǔ)句的二選擇控制順序語(yǔ)句

ELSE

順序語(yǔ)句

EndIF;IF條件句Then--第三種IF語(yǔ)句,IF語(yǔ)句的多選擇控制順序語(yǔ)句

ELSIF條件句Then

順序語(yǔ)句

…ELSE

順序語(yǔ)句

EndIF;

牛牛文庫(kù)文檔分享第86頁(yè)/共107頁(yè)第12章12.3流程控制語(yǔ)句

----CASE語(yǔ)句

CASE語(yǔ)句的結(jié)構(gòu)如下:

CASE表達(dá)式IS WHEN選擇值=>順序語(yǔ)句;

WHEN選擇值=>順序語(yǔ)句;

… EndCASE;條件句中的選擇值必須在表達(dá)式的取值范圍內(nèi)。除非所有條件句中的選擇值能覆蓋CASE語(yǔ)句中表達(dá)式的取值,否則最末一個(gè)條件句中的選擇必須用“OHTERS”表示。CASE語(yǔ)句中每一條件句的選擇值只能出現(xiàn)一次,不能有相同選擇值的條件語(yǔ)句出現(xiàn)。CASE語(yǔ)句執(zhí)行中必須選中,且只能選中所列條件語(yǔ)句中的一條。

牛牛文庫(kù)文檔分享第87頁(yè)/共107頁(yè)第12章12.3流程控制語(yǔ)句

----LOOP語(yǔ)句1)FOR循環(huán)變量這樣的LOOP語(yǔ)句格式如下:[標(biāo)號(hào)]:FOR循環(huán)變量IN離散范圍LOOP順序處理語(yǔ)句;EndLOOP[標(biāo)號(hào)];例如:ASUM:FORiIN1TO128LOOP sum=i+sum;---sum初值為0 EndLOOPASUM;

牛牛文庫(kù)文檔分享第88頁(yè)/共107頁(yè)第12章12.3流程控制語(yǔ)句

----LOOP語(yǔ)句2)WHILE條件這樣的LOOP語(yǔ)句格式如下:[標(biāo)號(hào)]:WHILE條件LOOP順序處理語(yǔ)句;EndLOOP[標(biāo)號(hào)];在該LOOP語(yǔ)句中,如果條件為“真”,則進(jìn)行循環(huán);如果條件為“假”,則結(jié)束循環(huán)。

例如: x:=1;ASUM:WHILE(x<129)LOOPsum=x+sum;---sum初值為0 x:=x+1;

EndLOOPASUM;

牛牛文庫(kù)文檔分享第89頁(yè)/共107頁(yè)第12章12.3流程控制語(yǔ)句

----NEXT語(yǔ)句

在LOOP語(yǔ)句中,NEXT語(yǔ)句主要用于跳出本次循環(huán)。其書寫格式為:NEXT[標(biāo)號(hào)][WHEN條件]

例如:…LA:FORvalueIN1TO15LOOPS1:A(value):=‘1’;

NEXTWHEN(b=c);

S2:A(value+15):=‘0’;EndLOOPLA;說(shuō)明:NEXT語(yǔ)句執(zhí)行時(shí)將停止本次迭代,而轉(zhuǎn)入下一次新的迭代。NEXT后跟的“標(biāo)號(hào)”和”WHEN條件”均為可選項(xiàng),二者均無(wú)時(shí),只要執(zhí)行到該語(yǔ)句就立即無(wú)條件跳出本次循環(huán),從LOOP語(yǔ)句的起始位置進(jìn)入下一次循環(huán),即開始下一次迭代。

牛牛文庫(kù)文檔分享第90頁(yè)/共107頁(yè)第12章12.3流程控制語(yǔ)句

----EXIT語(yǔ)句在LOOP語(yǔ)句中,NEXT語(yǔ)句主要用于跳出本次循環(huán)。其書寫格式為:NEXT[標(biāo)號(hào)][WHEN條件]EXIT語(yǔ)句的格式也有三種:EXIT; --第一種當(dāng)程序執(zhí)行到該EXIT語(yǔ)句時(shí)就無(wú)條件地從當(dāng)前所屬的LOOP語(yǔ)句中跳出,結(jié)束循環(huán)狀態(tài),繼續(xù)執(zhí)行LOOP語(yǔ)句后繼的語(yǔ)句。EXITLOOP標(biāo)號(hào); --第二種執(zhí)行此EXIT語(yǔ)句時(shí),程序?qū)⑻了f(shuō)明的標(biāo)號(hào)。EXITLOOP標(biāo)號(hào)WHEN條件表達(dá)式; --第三種當(dāng)執(zhí)行到此EXIT語(yǔ)句時(shí),只要在所說(shuō)明的條件為TRUE時(shí),程序?qū)⑻了f(shuō)明的標(biāo)號(hào)。若無(wú)標(biāo)號(hào)說(shuō)明,下一條要執(zhí)行的語(yǔ)句是循環(huán)外的下一條語(yǔ)句。

牛牛文庫(kù)文檔分享第91頁(yè)/共107頁(yè)第12章12.3等待(WAIT)語(yǔ)句

WAIT等待語(yǔ)句有以下四種不同的語(yǔ)句格式,設(shè)置不同的結(jié)束掛起條件:WAIT --無(wú)限等待WAITON信號(hào)表 --敏感信號(hào)量變化WAITUNTIL條件表達(dá)式 --條件滿足WAITFOR時(shí)間表達(dá)式 --時(shí)間到WAITUNTIL rising_edge(clock);WAITUNTIL clock’EVENTANDclock=‘1’;WAITONa,b;WAITFOR10ms;WAITFORa+b;

牛牛文庫(kù)文檔分享第92頁(yè)/共107頁(yè)第12章12.3信號(hào)代入語(yǔ)句

信號(hào)代入語(yǔ)句的書寫格式為:目的變量:=表達(dá)式;

該語(yǔ)句表明,目的變量的值將由表達(dá)式所表達(dá)的新值替代,但是兩者的類型必須相同。例如:a:=2;b:=c+d;

牛牛文庫(kù)文檔分享第93頁(yè)/共107頁(yè)第12章12.3斷言(ASSERT)語(yǔ)句

斷言語(yǔ)句的書寫格式為:ASSERT條件[REPORT輸出信息][SEVERITY級(jí)別];當(dāng)執(zhí)行ASSERT語(yǔ)句時(shí),就會(huì)對(duì)條件進(jìn)行判別。如果條件為TRUE,則向下執(zhí)行另一個(gè)語(yǔ)句。如果條件為FALSE,則輸出錯(cuò)誤信息和錯(cuò)誤嚴(yán)重程度的級(jí)別。例如:ASSERT(waitA=‘1’)REPORT“waitAtimedoutat’1’”SEVERITYERROR;該斷言語(yǔ)句的條件是信號(hào)量waitA=‘1’。如果執(zhí)行到該語(yǔ)句時(shí),信號(hào)量waitA=‘0’,說(shuō)明條件不滿足,就會(huì)輸出REPORT后跟的文字串。SEVERITYERROR語(yǔ)句告訴操作人員,其出錯(cuò)級(jí)別為ERROR。ASSERT語(yǔ)句方便了程序的仿真和調(diào)試。

牛牛文庫(kù)文檔分享第94頁(yè)/共107頁(yè)第12章12.3返回語(yǔ)句空操作語(yǔ)句

返回語(yǔ)句有兩種語(yǔ)句格式:Return; --第一種語(yǔ)句格式Return表達(dá)式; --第二種語(yǔ)句格式第一種語(yǔ)句格式只能用于過(guò)程,它只是結(jié)束過(guò)程,并不返回任何值;第二種語(yǔ)句格式只能用于函數(shù),并且必須返回一個(gè)值。返回語(yǔ)句只能用于子程序體中??詹僮髡Z(yǔ)句的語(yǔ)句格式如下:

NULL空操作語(yǔ)句不完成任何操作,它唯一的功能就是使邏輯運(yùn)行流程跨入下一步語(yǔ)句的執(zhí)行。

牛牛文庫(kù)文檔分享第95頁(yè)/共107頁(yè)第12章12.3VHDL并行語(yǔ)句

在VHDL語(yǔ)言中能進(jìn)行并行處理的語(yǔ)句有:進(jìn)程(Process)語(yǔ)句,并行信號(hào)賦值(ConcurrentSignalAssignment)語(yǔ)句條件信號(hào)賦值(ConditionalSignalAssignment)語(yǔ)句選擇信號(hào)賦值(SelectiveSignalAssignment)語(yǔ)句并行過(guò)程調(diào)用(ConcurrentProcedureCall)語(yǔ)句塊(Block)語(yǔ)句

牛牛文庫(kù)文檔分享第96頁(yè)/共107頁(yè)第12章12.3并行信號(hào)賦值語(yǔ)句

并行信號(hào)賦值語(yǔ)句的語(yǔ)句格式如下:賦值目標(biāo)<= 表達(dá)式;例如:ArchitecturebehavOFaISBegin Output<=f(i);Endbehav;說(shuō)明賦值語(yǔ)句在進(jìn)程內(nèi)部使用時(shí),以順序語(yǔ)句的形式出現(xiàn);在結(jié)構(gòu)體的進(jìn)程之外使用時(shí),以并行語(yǔ)句的形式出現(xiàn)。

牛牛文庫(kù)文檔分享第97頁(yè)/共107頁(yè)第12章12.3條件信號(hào)賦值語(yǔ)句

其書寫格式為:目的信號(hào)量<= 表達(dá)式1WHEN條件1ELSE表達(dá)式2WHEN條件2ELSE表達(dá)式3WHEN條件3ELSE… ELSE表達(dá)式n;ArchitecturertlOFmux4IS Signalsel:STD_LOGIC_VECTOR(1DOWNTO0);BeginSel<=b&a;Q<=i0Whensel=”00”ELSE i1Whensel=”01”ELSE i2Whensel=”10”ELSE i3Whensel=”11”ELSE ’X’;Endrtl;

牛牛文庫(kù)文檔分享第98頁(yè)/共107頁(yè)第12章12.3并行過(guò)程調(diào)用語(yǔ)句

并行過(guò)程調(diào)用語(yǔ)句的語(yǔ)句調(diào)用格式與前面講過(guò)的順序過(guò)程調(diào)用語(yǔ)句是相同的。即過(guò)程名(關(guān)聯(lián)參量名);下面是一個(gè)在結(jié)構(gòu)體中采用并行過(guò)程調(diào)用語(yǔ)句的實(shí)例:Architecture…BeginVector_to_int(z,x_flag,q);┇End…;

牛牛文庫(kù)文檔分享第99頁(yè)/共107頁(yè)第12章12.3命名規(guī)則和注解的標(biāo)記

在VHDL語(yǔ)言中為信號(hào)、實(shí)體、結(jié)構(gòu)體以及變量等命名時(shí)應(yīng)遵守如下規(guī)則:(1)名字的最前面應(yīng)該是英文字母;(2)能使用的字符只有英文字母、數(shù)字和‘—’;(3)不能連續(xù)使用‘—’符號(hào),在名字的最后也不能使用‘—’符號(hào)。下面是命名語(yǔ)句的例子:SIGNALa_bus: STD_LOGIC_VECTOR(7DOWNTO0);SIGNAL1_bus: --數(shù)字開頭的名字是錯(cuò)誤的SIGNALa_@bus: --@不能作為名稱中的字符,是錯(cuò)誤的SIGNALa__bus: --不能連續(xù)使用’—‘符號(hào),是錯(cuò)誤的SIGNALa_bus_: --在名字的最后也不能使用’—‘符號(hào),是錯(cuò)誤的

牛牛文庫(kù)文檔分享第100頁(yè)/共107頁(yè)第12章12.3組合邏輯電路設(shè)計(jì)------全加器

LibraryIEEE;UseIEEE.STD_LOGIC_1164.ALL;UseIEEE.STD_LOGIC_unsigned.ALL;Entityfull_adderISPort(a,b,ci:INSTD_LOGIC;Sum,co:OUTSTD_LOGIC);Endfull_adder;ARCHITECTUREfadderOFfull_adderISsignaltemp:std_logic_vector(1downto0);Begintemp<=('0'&a)+b+ci;

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論