




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
硬件課程設計
設計目標:1。學習現(xiàn)代集成電路設計方法2。熟悉在系統(tǒng)可編程邏輯器件上進行編程,及相應軟件的應用。3。學習使用硬件描述語言VHDL進行集成電路設計。2021/5/91設計要求:1。熟悉VHDL編程語言方法,掌握VHDL語言的基本結(jié)構(gòu)和語句,能編寫規(guī)范的系統(tǒng)描述;基本掌握邏輯綜合的方法;編寫具有一定要求的邏輯電路源程序,并進行調(diào)試。2。熟悉在系統(tǒng)邏輯設計軟件環(huán)境下,完成源程序轉(zhuǎn)換,下載和在可編程器件上進行調(diào)試。學會使用ispDesignExpert軟件工具進行系統(tǒng)設計。3。完成設計說明文件2021/5/92考核方式:(1)上課,上機。(2)驗機,通過測試,實現(xiàn)要求功能。(3)硬件課程設計報告包括:VHDL
語言源程序、設計說明、邏輯圖、真值表。2021/5/93
參考文獻:1。 李輝編著,ISP系統(tǒng)設計技術(shù)入門與應用,電子工業(yè)出版社,2002
2。喬長閣等,VHDL簡明教程, 清華大學出版社,1997
3。北京理工大學ASIC研究所,VHDL語言100例詳解, 清華大學出版社,1999相關(guān)網(wǎng)址連接//
VHDL在線參考/vhdlref/index.html2021/5/94第1章在系統(tǒng)可編程集成電路基礎
1。1概述
1。2在系統(tǒng)可編程邏輯器件的結(jié)構(gòu)
1。2。1ispLSI1016的結(jié)構(gòu)
1。2。1。1 芯片結(jié)構(gòu)
1。2。1。2功耗與延遲時間
1。2。2ispLSI1016編程接口和編程
1。編程接口
2。編程下載操作2021/5/95第1章
在系統(tǒng)可編程集成電路基礎2021/5/961。1 概述主要術(shù)語與概念1 專用集成電路ASICsApplication-SpecificIntegratedCircuits2 非專用集成電路有PLDProgrammableLogicDeviceEPLDErasableProgrammableLogicDevice2021/5/97一個門陣等效門就是一個兩輸入端與非門的低密度的PLD(<1000個)有:1 PALProgrammableArrayLogic2 GALGenericArrayLogic2021/5/98高密度的PLD(>1000個)有:1 CPLDComplexProgrammableLogicDevice2 FPGAFieldProgrammableGateArray兩者都具有更多的I/O,Productterm(乘積項)和Macrocell(宏單元)通過內(nèi)部可編程連線PI(ProgrammableInterconnect)將內(nèi)部邏輯單元(LogicCell)連接起來,以構(gòu)成芯片。2021/5/99FPGA(FieldProgrammableGateArray)的基本結(jié)構(gòu)由以下幾個部分組成1 可編程邏輯塊CLB(ConfigurableLogicBlocks), 按矩陣排列2 芯片四周的多個IOB(Input/OutputBlocks)3 由可編程內(nèi)部連線PI(ProgrammableInterconnect); 將行與列的CLB以及IOB之間實現(xiàn)互連。由這3個主要部分就構(gòu)成了可編程邏輯單元陣列LCA(LogicCellArray)2021/5/910第1章在系統(tǒng)可編程集成電路基礎
1。1概述
1。2在系統(tǒng)可編程邏輯器件的結(jié)構(gòu)
1。2。1ispLSI1016的結(jié)構(gòu)
1。2。1。1 芯片結(jié)構(gòu)
1。2。1。2功耗與延遲時間
1。2。2ispLSI1016編程接口和編程
1。編程接口
2。編程下載操作2021/5/9111。2在系統(tǒng)可編程邏輯器件的結(jié)構(gòu)一。ISP含義ISP 在系統(tǒng)可編程(In-SystemProgrammable)ispLSI 在系統(tǒng)可編程大規(guī)模集成電路(In-SystemProgrammableLargeScaleIntegration)ISP指用戶為修改或重構(gòu)數(shù)字邏輯系統(tǒng),在已設計和制作的系統(tǒng)中,通過器件的編程控制信號線直接在線編程、修改、調(diào)試、驗證。使已經(jīng)定型的產(chǎn)品性能可以不斷地改進。2021/5/912二。Isp系列在系統(tǒng)可編程邏輯芯片特點:1。通用性:可以實現(xiàn)幾乎所有邏輯電路功能。如:編碼器、譯碼器、寄存器、計數(shù)器、串并轉(zhuǎn)換、波特率發(fā)生器、網(wǎng)絡器件;用于:數(shù)據(jù)采集、圖像處理、多媒體。2021/5/9132??稍谙到y(tǒng)編程,靈活性強3。高集成度:ispLSI1000系列:等效PLD門密度2000-8000ispLSI2000系列:等效PLD門密度1000-8000ispLSI3000系列:等效PLD門密度7000-20000ispLSI5000系列:等效PLD門密度12000-24000ispLSI8000系列:等效PLD門密度25000-450004。低功耗:供電電壓:5V、3.3V、2.5V、1.8V2021/5/914三。在系統(tǒng)可編程邏輯芯片型號含義:見P6圖1-12021/5/915第1章在系統(tǒng)可編程集成電路基礎
1。1概述
1。2在系統(tǒng)可編程邏輯器件的結(jié)構(gòu)
1。2。1ispLSI1016的結(jié)構(gòu)
1。2。1。1 芯片結(jié)構(gòu)
1。2。1。2功耗與延遲時間
1。2。2ispLSI1016編程接口和編程
1。編程接口
2。編程下載操作2021/5/9161。2。1 ispLSI1016的結(jié)構(gòu)ispLSI1016采用了電可擦除(ElectricalErasable)CMOS(E2CMOS)技術(shù),由2000個PLD門組成,用PLCC塑料引線芯片載體封裝(PlasticLeadChipCarrierPackage)一。外部特性引腳圖:圖1—2,引腳44個5V供電,內(nèi)部有:96個邏輯寄存器。2000個PLD門3個時鐘輸入端: Y0-11,Y1-35,Y2-334個指定數(shù)據(jù)輸入腳: IN3-IN0(2,36,24,14腳)2021/5/9171 32個I/O2 3個專用輸入(DedicatedInput)IN0,IN1,IN23 5個編程用引腳:(1)編程允許 ISPEN-13,(2)串行數(shù)據(jù)輸入和指定輸入 SDI/IN0 -14,(3)方式控制和輸入 MODE/IN2-36,(4)串行數(shù)據(jù)和指定輸出 SDO/IN1 -24,(5)串行時鐘 SCLK/Y2 -33.2021/5/918這5個編程用引腳是計算機與ispLSI之間通信的接口信號。計算機將已經(jīng)設計好的邏輯方程或電路原理圖文件,按照一定的協(xié)議編譯通過后,轉(zhuǎn)換為JEDEC(Join-ElectronicDeviceEngineeringCouncil電子器件工程聯(lián)合協(xié)會)(熔絲圖文件)標準文件。通過這5個編程引腳把擴展名為.JED(熔絲圖文件)的文件下載到(DownLoad)ispLSI器件中。2021/5/9194 指定時鐘輸入引腳 Y05 時鐘輸入和復位輸入引腳 Y1/RESET2021/5/920第1章在系統(tǒng)可編程集成電路基礎
1。1概述
1。2在系統(tǒng)可編程邏輯器件的結(jié)構(gòu)
1。2。1ispLSI1016的結(jié)構(gòu)
1。2。1。1 芯片結(jié)構(gòu)
1。2。1。2功耗與延遲時間
1。2。2ispLSI1016編程接口和編程
1。編程接口
2。編程下載操作2021/5/9211。2。1。1 芯片結(jié)構(gòu)ispLSI1016邏輯器件從結(jié)構(gòu)上看:是由以下5個大部分組成:16個通用邏輯塊 GLB(GenericLogicBlock),輸出布線區(qū) ORP(OutputRoutingPool),全局布線區(qū) GRP(GlobalRoutingPool),輸入\輸出單元 (I\OCell)時鐘分配網(wǎng)絡 CDN(ClockDistributionNetwork)ispLSI1016邏輯器件共有兩個組合模塊(Megablock)。每個組合模塊由5個部分組成:8個GLB (GenericLogicBlock),1個ORP (OutputRoutingPool),16個輸入\輸出單元 (I\OCell)2個專用輸入 (DedicatedInput)1個公共乘積項輸出使能2021/5/9221。通用邏輯塊GLB(GenericLogicBlock)每個GLB含有18個輸入信號,4個輸出信號GLB主要由4個部分組成:1)與陣列2)乘積共享陣列PTSA
(ProductTermSharingArray)3)輸出邏輯宏單元(OutputLogicMacroCell)4)邏輯控制單元2021/5/9231)與陣列(20個與項)
16個輸入 來源于全局布線區(qū)GRP(Global RoutingPool),即可以來自 于外引腳也可以來自于反饋信號。
2個輸入 來源于專用的輸入(DedicatedInput)引腳。2)或陣列(乘積共享區(qū))4個或門,有4種連接模式:
(1)標準模式: 圖1—5,或門起作用,可靈活連接到輸出。
(2)直通模式:
GLB乘積項的直通模式 圖1—7,將乘積項的輸出直接連接到GLB,速度快。 (3)異或邏輯模式: 圖1—8,利用異或門和D觸發(fā)器可以構(gòu)成T,JK觸發(fā)器;組成計數(shù)器,累加器,比較器等。 (4)混合模式:(2)和(3)兩種模式的組合: 圖1—9,時鐘分配網(wǎng)絡控制可來自:CLK0,CLK1,CLK2,或GLB中的任意一個乘積項。2021/5/9243)輸出邏輯宏單元OLMC
(OutputLogicMacroCell)可使或門的輸出經(jīng)過各種連線模式,最終通過多路選擇器送到輸出端。4)邏輯控制單元。通用邏輯塊GLB中的觸發(fā)時鐘由CDN提供;通用邏輯塊GLB中的觸發(fā)復位信號RESET來源于RESET腳和一個乘積項產(chǎn)生。2021/5/9252。輸出布線區(qū)(ORP)見圖1—10功能:用于輸出控制。任何一個GLB的輸出端都能夠通過輸出布線區(qū)(ORP)與I/O相連,將各GLB的輸出靈活的連接到輸出管腳上。即可實現(xiàn)不改變芯片引腳的外部連線,通過修改輸出布線區(qū)的布線邏輯,使該引腳的輸出信號符合設計要求。注意:連接有限制;如A0的Q0只能接I/O0,4,8,12。(即寄存器內(nèi)的位置順序不變)2021/5/9263。全局布線區(qū)(GRP)見圖1—11功能:將GLB的輸出或I/O管腳的輸入信號靈活的連接到GLB的各輸入端。2021/5/9274。輸入輸出單元(I/OCELL)結(jié)構(gòu):見圖1—12將I/OPin定義為輸出時:I/O單元的輸入信號來源于ORP;將I/OPin定義為輸入時:I/O單元將引腳輸入信號送到GRP。幾種輸入輸出結(jié)構(gòu):見圖1—132021/5/9285。時鐘分配網(wǎng)絡:見圖1—14功能:接受3個時鐘輸入Y2,Y1,Y0產(chǎn)生5個時鐘輸出CLK0,1,2,IOCLK0,12021/5/929第1章在系統(tǒng)可編程集成電路基礎
1。1概述
1。2在系統(tǒng)可編程邏輯器件的結(jié)構(gòu)
1。2。1ispLSI1016的結(jié)構(gòu)
1。2。1。1 芯片結(jié)構(gòu)
1。2。1。2功耗與延遲時間
1。2。2ispLSI1016編程接口和編程
1。編程接口
2。編程下載操作2021/5/9301。2。1。2功耗與延遲時間1。功耗:與工作速度與使用的乘積項有關(guān)。見圖1—162。延遲時間與傳輸路徑及負載有關(guān)。見圖1—182021/5/931第1章在系統(tǒng)可編程集成電路基礎
1。1概述
1。2在系統(tǒng)可編程邏輯器件的結(jié)構(gòu)
1。2。1ispLSI1016的結(jié)構(gòu)
1。2。1。1 芯片結(jié)構(gòu)
1。2。1。2功耗與延遲時間
1。2。2ispLSI1016編程接口和編程
1。編程接口
2。編程下載操作2021/5/9321。2。2ispLSI1016編程接口和編程1。編程接口編程下載:指源程序經(jīng)編譯形成的熔絲圖文件.JEDEC。PC機通過25芯并行通信電纜和編程器接口電路相連,傳送到ispLSI芯片中的E2CMOS,以便保存信息。編程緩沖接口電路見圖1—192021/5/933主機一側(cè):25針并行接口,使用其中8根連線經(jīng)扁平電纜接編程接口電路ispLSI芯片一側(cè)接6個管腳多個芯片可共用一個接口,形成串行連接。見圖1—202021/5/934ISP菊花鏈下載軟件ISP菊花鏈是基于Windows環(huán)境的可編程工具,在一個鏈路上可編程達100個ISP器件。軟件包括混合的5V、3.3V的ISP和ispJATG編程能力。使用者可以對芯片進行單路或多路編程,對鏈上所有器件編程的時間僅為其中最長的器件的編程時間。內(nèi)部的ispATE編程工具是完全集成化的且允許用ATE設備快速編程。2021/5/935編程控制信號有:(1)ispEN 在系統(tǒng)可編程容許(2)SCLK(SerialClock),作為內(nèi)部移位寄存器的時鐘(3)SDI(SerialDataInput)(4)SDO(SerialDataOutput)(5)Mode 方式控制信號2021/5/936第1章在系統(tǒng)可編程集成電路基礎
1。1概述
1。2在系統(tǒng)可編程邏輯器件的結(jié)構(gòu)
1。2。1ispLSI1016的結(jié)構(gòu)
1。2。1。1 芯片結(jié)構(gòu)
1。2。1。2功耗與延遲時間
1。2。2ispLSI1016編程接口和編程
1。編程接口
2。編程下載操作2021/5/9372。編程下載操作ispLSI芯片有兩種工作狀態(tài):ISPEN=1:非編輯狀態(tài)(NormalState
)使ispLSI芯片處于非編輯狀態(tài),其它4個編程信號可作為輸入信號使用。ISPEN=0:編輯狀態(tài)(EditState)編程操作受到片內(nèi)的狀態(tài)機(StateMachine)控制,該狀態(tài)機有3個狀態(tài):空閑狀態(tài),移位狀態(tài),執(zhí)行狀態(tài)。根據(jù)控制信號Mode和SDI的狀態(tài),狀態(tài)機決定:是停留在現(xiàn)狀態(tài);還是轉(zhuǎn)移到下一個狀態(tài)。2021/5/938編程狀態(tài)下共3種狀態(tài):見圖1—211。空閑狀態(tài)(IdleState):MODE=1SDI=0:識別可編程芯片的型號,將可編程芯片的識別碼裝入移位寄存器。MODE=0在時鐘信號的作用下,從SDO送出識別碼數(shù)據(jù)。MODE=1SDI=1:轉(zhuǎn)到命令移位狀態(tài)。2021/5/9392。移位狀態(tài)(ShiftState):串行接受指令MODE=0,且在串行時鐘信號的配合下將操作命令送到狀態(tài)機;操作命令送到狀態(tài)機后;①當MODE=1SDI=1:轉(zhuǎn)到命令執(zhí)行狀態(tài)。②MODE=1SDI=0:狀態(tài)機轉(zhuǎn)到空閑狀態(tài)。3。執(zhí)行狀態(tài)(ExecuteState):MODE=0,且在串行時鐘信號的配合下狀態(tài)機開始執(zhí)行在移位狀態(tài)裝入的操作命令。MODE=1SDI=1:轉(zhuǎn)到移位狀態(tài),接受新的命令。MODE=1SDI=0:狀態(tài)機轉(zhuǎn)到空閑狀態(tài)。2021/5/9404 操作命令編程命令由5位二進制組成,可表示17種不同的操作:全擦除,部分擦除,移位,校驗,編程,編程加密,寫入等2021/5/941第四節(jié)ISP開發(fā)軟件SYNARIO的使用一。新建項目:P23–2二。選擇器件:P23–3三。建立源文件:P23–4四。編輯修改源文件:雙擊或打開2021/5/942五。編譯源文件:P25—7六。連接,驗證,生成JED文件:P25—8七。下載JED文件到芯片中:P25—9八。調(diào)試:連接輸入信號:實驗臺開關(guān)。連接輸出信號:實驗臺喇叭,LED燈。2021/5/943第2章硬件描述語言VHDL基礎2。1概述2.2VHDL語言的語法規(guī)則
2.2.1標識符
2.2.2數(shù)據(jù)對象
2.2.3數(shù)據(jù)類型
2.2.4VHDL運算符2021/5/9442。1概述傳統(tǒng)數(shù)字電路設計方法不適合設計大規(guī)模的系統(tǒng)。工程師不容易理解原理圖設計的功能。眾多軟件公司開發(fā)研制了具有自己特色的電路硬件描述語言HDL(HardwareDescriptionLanguage),存在著很大的差異,工程師一旦選用某種硬件描述語言作為輸入工具,就被束縛在這個硬件設計環(huán)境之中。因此,硬件設計需要一種強大的、標準化的硬件描述語言,作為可相互交流的設計環(huán)境。2021/5/945美國國防部在80年代初提出了VHSIC(VeryHighSpeedIntegratedCircuit)計劃,其目標之一是為下一代集成電路的生產(chǎn),實現(xiàn)階段性的工藝極限以及完成10萬門級以上的設計,建立一項新的描述方法。1981年提出了一種新的HDL,稱之為VHSICHardwareDescriptionLanguage,簡稱為VHDL。這種語言的成就有兩個方面:描述復雜的數(shù)字電路系統(tǒng);成為國際的硬件描述語言標準。2021/5/946主要術(shù)語與概念VHDL是VHSIC(VeryHighSpeedIntegratedCircuit)HardwareDescriptionLanguage的縮寫。VHDL語言可描述一個數(shù)字電路的輸入、輸出以及相互間的行為與功能,而其硬件關(guān)聯(lián)性的語法與形式雖類似于一般程序語言,但是涵蓋許多與硬件關(guān)聯(lián)的語法構(gòu)造,它特有的層次性設計語法結(jié)構(gòu)適合大型設計項目的團隊合作,是目前最通用的硬件描述語言。2021/5/947硬件描述語言(HDL):即可以描述硬件電路的功能、信號連接關(guān)系及定時關(guān)系的一種語言。目前,VHDL和Verilog已先后成為IEEE標準硬件描述語言。硬件描述語言(HDL)的特點:可以借鑒高級編程語言的功能特性對硬件電路的行為和結(jié)構(gòu)進行高度抽象化和規(guī)范化的描述;同時,還可以對硬件電路的設計進行不同層次、不同領(lǐng)域的模擬驗證和綜合優(yōu)化等處理,從而使硬件電路的設計達到高度自動化。2021/5/948VHDL的優(yōu)點1.用于設計復雜的、多層次的設計,支持設計庫和設計的重復使用;2.與硬件獨立,一個設計可用于不同的硬件結(jié)構(gòu),而且設計時不必了解過多的硬件細節(jié);3.有豐富的軟件支持VHDL的綜合和仿真,從而能在設計階段就能發(fā)現(xiàn)設計中的Bug,縮短設計時間,降低成本;4.VHDL有良好的可讀性,容易理解。2021/5/949VHDL的應用VHDL是由美國國防部(DOD)制定,以作為各合同商之間提交復雜電路設計文檔的一種標準方案.現(xiàn)在VHDL被廣泛用于:電路設計的文檔記錄設計描述的邏輯綜合電路仿真1995年我國技術(shù)監(jiān)督局制定的《CAD通用技術(shù)規(guī)范》推薦VHDL作為我國電子設計自動化硬件描述語言的國家標準。至此,VHDL在我國迅速普及,現(xiàn)在已成為從事硬件電路設計開發(fā)人員所必須掌握
的一門技術(shù)。2021/5/950學習VHDL的幾點重要提示1.了解VHDL的可綜合性問題:
VHDL有兩種用途:系統(tǒng)仿真和硬件實現(xiàn)。如果程序只用于仿真,那么幾乎所有的語法和編程方法都可以使用。 但如果我們的程序是用于硬件實現(xiàn)(例如:用于FPGA設計),那么我們就必須保證程序“可綜合”(程序的功能可以用硬件電路實現(xiàn))。
不可綜合的VHDL語句在軟件綜合時將被忽略或者報錯。 應當牢記:“所有的VHDL描述都可以用于仿真,但不是所有的VHDL描述都能用硬件實現(xiàn)。”2021/5/9512.用硬件電路設計思想來編寫VHDL:
學好VHDL的關(guān)鍵是充分理解VHDL語句和硬件電路的關(guān)系。編寫VHDL,就是在描述一個電路,我們寫完一段程序以后,應當對生成的電路有一些大體上的了解,而不能用純軟件的設計思路來編寫硬件描述語言。
要做到這一點,需要多實踐,多思考,多總結(jié)。2021/5/9523.語法掌握貴在精,不在多。
30%的基本VHDL語句就可以完成95%以上的電路設計,很多生僻的語句并不能被所有的綜合軟件所支持,在程序移植或者更換軟件平臺時,容易產(chǎn)生兼容性問題,也不利于其他人閱讀和修改。建議多用心鉆研常用語句,理解這些語句的硬件含義,這比多掌握幾個新語法要有用的多。2021/5/953VHDL與原理圖輸入法的關(guān)系
VHDL和傳統(tǒng)的原理圖輸入方法的關(guān)系就好比是高級語言和匯編語言的關(guān)系。
VHDL的可移植性好,使用方便,但效率不如原理圖;原理圖輸入的可控性好,效率高,比較直觀,但設計大規(guī)模CPLD/FPGA時顯得很煩瑣,移植性差。在真正的PLD/FPGA設計中,建議采用原理圖和VHDL結(jié)合的方法來設計,適合用原理圖的地方就用原理圖,適合用VHDL的地方就用VHDL,并沒有強制的規(guī)定。在最短的時間內(nèi),用自己最熟悉的工具設計出高效,穩(wěn)定,符合設計要求的電路才是最終目的。2021/5/954VHDL開發(fā)流程用VHDL語言開發(fā)PLD/FPGA的完整流程為:1.文本編輯:用任何文本編輯器都可以進行,也可以用專用的VHDL編輯環(huán)境。通常VHDL文件保存為.vhd文件。2.功能仿真:將文件調(diào)入VHDL仿真軟件進行功能仿真,檢查邏輯功能是否正確(也叫前仿真,對簡單的設計可以跳過這一步,只在布線完成以后,進行時序仿真)2021/5/9553.邏輯綜合: 將源文件調(diào)入邏輯綜合軟件進行綜合,即把語言綜合成最簡的布爾表達式和信號的連接關(guān)系。邏輯綜合軟件會生成.edf(edif)的EDA工業(yè)標準文件。4.布局布線:將.edf文件調(diào)入PLD廠家提供的軟件中進行布線,即把設計好的邏輯安放到PLD/FPGA內(nèi)。5.時序仿真:需要利用在布局布線中獲得的精確參數(shù),用仿真軟件驗證電路的時序。(也叫后仿真)2021/5/9566.編程下載:確認仿真無誤后,將文件下載到芯片中通常以上過程都可以在PLD/FPGA廠家提供的開發(fā)工具(如MAXPLUSII,F(xiàn)oundation,ISP)中完成,但許多集成的PLD開發(fā)軟件只支持VHDL的子集,可能造成少數(shù)語法不能編譯,如果采用專用VHDL工具分開執(zhí)行,效果會更好,否則這么多出售專用VHDL開發(fā)工具的公司就沒有存在的理由了。2021/5/957VHDL與計算機語言的區(qū)別1. 運行的基礎不同: 計算機語言是在CPU+RAM構(gòu)建的平臺上運行;
VHDL設計的結(jié)果是由具體的邏輯、觸發(fā)器組成的數(shù)字電路。2. 執(zhí)行方式不同: 計算機語言基本上以串行的方式執(zhí)行;
VHDL在總體上是以并行方式工作;3. 驗證方式不同 計算機語言主要關(guān)注于變量值的變化;
VHDL要實現(xiàn)嚴格的時序邏輯關(guān)系;2021/5/958數(shù)字系統(tǒng)自動設計流程圖概念設計系統(tǒng)設計和描述系統(tǒng)劃分子系統(tǒng)功能描述綜合邏輯描述版圖綜合版圖描述芯片制造測試封裝功能驗證系統(tǒng)驗證功能驗證功能驗證設計者2021/5/9592.2VHDL語言的語法規(guī)則
2.2.1標識符
2.2.2數(shù)據(jù)對象
2.2.3數(shù)據(jù)類型
2.2.4VHDL運算符2021/5/960標識符規(guī)則:標識符規(guī)則是在書寫VHDL程序時的一般文字規(guī)則?;緲俗R符由字母、數(shù)字以及下劃線字符組成,且具有以下特征要求:●第一個字符必須是字母;●最后一個字符不能是下劃線;●不允許連續(xù)兩個下劃線;●在標識符中大、小寫字母是等效的?!馰HDL中的注釋文字一律為2個連續(xù)的連接線“--”,可以出現(xiàn)在任一語句后面,也可以出現(xiàn)在獨立行;●VHDL的保留字(關(guān)鍵字)不能用于標識符;2.2.1標識符(Identifiers)2021/5/961如下標識符是非法的:
_tx_clk8B10Blarge#numberlink__barselectrx_clk_例如:如下標識符是合法的:
tx_clk Three_state_Enable sel7D HIT_1124--標識符必須起始于字母--只能是字母、數(shù)字、下劃線--不能有連續(xù)兩個下劃線--關(guān)鍵字(保留字)不能用于標識符--最后字符不能是下劃線2021/5/9622.2VHDL語言的語法規(guī)則
2.2.1標識符
2.2.2數(shù)據(jù)對象
1常量(CONSTANT)
2
信號(SIGNAL)
3
變量(VARIABLE)
2.2.3數(shù)據(jù)類型
2.2.4VHDL運算符2021/5/9632.2.2數(shù)據(jù)對象(DataObjects)
在VHDL中,數(shù)據(jù)對象是可以賦予一個值的客體。常用的數(shù)據(jù)對象為常量、變量和信號,在使用前必須給予說明。1
常量(CONSTANT)常量是指在設計描述中不會變化的值。在VHDL描述中,一般用常量名代替數(shù)值,便于修改程序。在綜合后,連接到電源和地??稍贚ibrary、Entity、Architecture、Process中進行定義,其有效范圍也相應限定。常量說明語句的一般格式為:
CONSTANT
常量名{,常量名}:數(shù)據(jù)類型:=取值;例如:CONSTANTwidth:integer:=8;
常量所賦值和定義的數(shù)據(jù)類型應一致。常量一旦賦值就不能再改變。2021/5/9642.2VHDL語言的語法規(guī)則
2.2.1標識符
2.2.2數(shù)據(jù)對象
1常量(CONSTANT)
2信號(SIGNAL)
3
變量(VARIABLE)
2.2.3數(shù)據(jù)類型
2.2.4VHDL運算符2021/5/9652
信號(SIGNAL)信號是電子電路內(nèi)部硬件實體相互連接的抽象表示。信號能夠代表連線,也可是內(nèi)連元件;信號沒有方向性,也可當作輸入。端口(Port)也是信號??山o它賦值, 用:=表示直接賦值 用<=表示信號賦值信號說明語句的格式為:
SIGNAL
信號名{,信號名}:數(shù)據(jù)類型[:=初始值];信號包括I/O引腳信號以及IC內(nèi)部緩沖信號,有硬件電路與之對應,故信號之間的傳遞有實際的附加延時。信號通常在Entity中和Architecture中定義;信號不能在進程中說明(但可以在進程中使用)。2021/5/966
硬件中的信號總是同時工作的,即信號同時在各個模塊中流動,這就是硬件電路的并發(fā)性
。VHDL體現(xiàn)了實際電路中信號“同時”流動的這種基本特性。信號賦值語句格式為:目標信號名
<=表達式;
賦值語句中的表達式必須與目標信號具有相同的數(shù)據(jù)類型。2021/5/9672.2VHDL語言的語法規(guī)則
2.2.1標識符
2.2.2數(shù)據(jù)對象
1常量(CONSTANT)
2
信號(SIGNAL)
3變量(VARIABLE)
2.2.3數(shù)據(jù)類型
2.2.4VHDL運算符2021/5/9683
變量(VARIABLE)變量是暫存數(shù)據(jù)的量。變量說明語句的格式是:
VARIABLE變量名{,變量名}:數(shù)據(jù)類型[:=初始值];例如:VARIABLEcount:INTEGERRANGE0TO99:=0
變量是一個局部量,它只用于進程和子程序。變量必須在進程或子程序(Process和Function中定義)的說明區(qū)域中加以說明,只能在并只在其內(nèi)部有效。變量賦值是直接的、非預設的,它在某一時刻僅包含一個值。變量的賦值立即生效,不存在延時行為。臨時數(shù)據(jù),沒有物理意義;要使其全局有效,先轉(zhuǎn)換為Signal。
賦值語句中的表達式必須與目標變量具有相同的數(shù)據(jù)類型。變量賦值語句格式為:目標變量名
:=表達式;2021/5/969信號和變量的主要區(qū)別:1.
變量是一個局部量,只能用于進程或子程序中;
信號是一個全局量,它可以用來進行進程之間的通信。2.變量賦值立即生效,不存在延時行為;
信號賦值具有非立即性,信號之間的傳遞具有延時性。4.信號賦值可以出現(xiàn)在進程中,也可以直接出現(xiàn)在結(jié)構(gòu)體中,但它們的運行含義不同:前者屬順序信號賦值,此時的賦值操作要視進程是否已被啟動;后者屬并行信號賦值,其賦值操作是各自獨立并行發(fā)生的。3.變量用作進程中暫存數(shù)據(jù)的單元;
信號用作電路中的信號連線。2021/5/9705.在進程中變量和信號的賦值形式與操作過程不同:在變量的賦值語句中,該語句一旦被執(zhí)行,其值立即被賦予變量。在執(zhí)行下一條語句時,該變量的值即為上一句新賦的值。在信號的賦值語句中,該語句即使被執(zhí)行,其值不會使信號立即發(fā)生代入,在下一條語句執(zhí)行時,仍使用原來的信號值。直到進程結(jié)束之后,所有信號賦值的實際代入才順序進行處理。因此,實際代入過程和賦值語句的執(zhí)行是分開進行的。如例1所示。2021/5/971例1信號和變量值代入的區(qū)別舉例
PROCESS(a,b,c,d)
BEGIN d<=a;
x<=b+d;
d<=c;
y<=b+d;
ENDPROCESS;結(jié)果:
x<=b+c;
y<=b+c;
PROCESS(a,b,c)
VARIABLEd:std_logic_vector(3downto0);
BEGIN d:=a;
x<=b+d;
d:=c;
y<=b+d;
ENDPROCESS;結(jié)果:
x<=b+a;
y<=b+c;當進程運行時,信號賦值將自上而下順序執(zhí)行,但第一項賦值操作并不會發(fā)生,這是因為信號賦值是在進程結(jié)束時才起作用。因為在進程結(jié)束更新時,d的最后一個賦值為c,因此執(zhí)行結(jié)果為該式。2021/5/9722.2VHDL語言的語法規(guī)則
2.2.1標識符
2.2.2數(shù)據(jù)對象
2.2.3數(shù)據(jù)類型
2.2.4VHDL運算符2021/5/9732.2.3數(shù)據(jù)類型VHDL是一種類型型很強的語言。不同類型之間的轉(zhuǎn)換必須用類型轉(zhuǎn)換函數(shù).對象的數(shù)據(jù)類型定義了該對象可以具有的值和對該對象可以進行運算的限制。在VHDL中,這種限制是被強制執(zhí)行的。VHDL提供了多種標準的數(shù)據(jù)類型。在VHDL描述中,每個信號、常量、變量都要指定它的數(shù)據(jù)類型,以確定它能保持那一類數(shù)據(jù)。
VHDL對數(shù)據(jù)類型的定義相當嚴格,在進行賦值或數(shù)據(jù)類型變換過程中都要進行類型檢查。VHDL不允許不同類型的數(shù)值相互賦值或使用類型不允許的運算符進行運算。這種特性可以幫助設計者在設計前期發(fā)現(xiàn)錯誤。定義數(shù)據(jù)類型IEEE預定義的標準邏輯數(shù)據(jù)類型用戶自定義的數(shù)據(jù)類型數(shù)據(jù)類型的轉(zhuǎn)換5.屬性(Attributes)2021/5/9742.2VHDL語言的語法規(guī)則
2.2.1標識符
2.2.2數(shù)據(jù)對象
2.2.3數(shù)據(jù)類型
1.定義數(shù)據(jù)類型
2IEEE預定義的標準邏輯數(shù)據(jù)類型
3.用戶自定義的數(shù)據(jù)類型
4。數(shù)據(jù)類型的轉(zhuǎn)換
5屬性(Attributes)
2.2.4VHDL運算符2021/5/9751.定義數(shù)據(jù)類型
VHDL提供的10種標準數(shù)據(jù)類型。(2)Real(實數(shù))。取值范圍為-1.0E+38~+1.0E+38。和整數(shù)一樣,實數(shù)能被約束。由于實數(shù)運算需要大量的資源,因此綜合工具常常并不支持實數(shù)類型。(3)Bit(位)。
只有兩種取值,即0和1,可用于描述信號的取值。(4)Bit_Vector(位矢量)。是用雙引號括起來的一組數(shù)據(jù),每位只有兩種取值:0和1。在其前可加數(shù)制標記,如X(16進制)、B(2進制、默認)、O(8進制)等。位矢量常用于表示總線的狀態(tài)。(1)Integer(整數(shù))。
取值范圍為-(231-1)~(231-1)。一個整數(shù)類型和要被綜合進邏輯的信號或變量在其范圍上應有約束。例如:
variablea:integerrange–255to255;整數(shù)可通過語句內(nèi)帶符號矢量來表達給綜合工具。2021/5/976(5)Boolean(布爾量)。又稱邏輯量。有“真”、“假”兩種狀態(tài)分別用TRUE和FALSE標記。用于關(guān)系運算和邏輯運算(6)Character(字符)。是用單引號括起來的一個字母、數(shù)字、空格或一些特殊字符(如$、@、%等)。字符區(qū)分大、小寫字母。(7)String(字符串)。是用雙引號括起來的一個字符序列。字符串區(qū)分大、小寫字母。常用于程序的提示和結(jié)果說明等。(8)Time(時間)。時間取值范圍從-(231-1)~(231-1)。時間由整數(shù)值、一個以上空格以及時間單位組成。常用的時間單位有:fs、ns、μs、ms、s、min、hr等。時間常用于指定時間延時和標記仿真時刻。2021/5/977上述10種數(shù)據(jù)類型是VHDL中標準的數(shù)據(jù)類型,在編程時可以直接引用。如果用戶需使用其它的數(shù)據(jù)類型,則必須進行自定義。(9)Natural(自然數(shù))和Positive(正整數(shù))。是整數(shù)類型的子類型。自然數(shù)取值范圍為0~(231-1);正整數(shù)是大于0的整數(shù)。(10)SeverityLevel(錯誤等級)。錯誤等級分為:NOTE(注意)、WARNING(警告)、ERROR(出錯)、FAILURE(失敗)四級,用于提示系統(tǒng)的錯誤等級。2021/5/978數(shù)據(jù)類型含義整數(shù)整數(shù)32位,取值范圍:-(231-1)~(231-1)實數(shù)浮點數(shù),取值范圍:-1.0e+38~1.0e+38位邏輯’0’或’1’位矢量位矢量,用雙引號括起來的一組數(shù)據(jù)布爾量邏輯“真”或“假”,用TRUE和FALSE標記字符ASCII字符字符串字符矢量時間時間單位fs,ps,ns,μs,ms,sec,min,hr自然數(shù)、正整數(shù)整數(shù)的子集:自然數(shù)取值范圍為0~(231-1);正整數(shù)是大于0的整數(shù)錯誤等級Note,warning,error,failure標準數(shù)據(jù)類型2021/5/9792.2VHDL語言的語法規(guī)則
2.2.1標識符
2.2.2數(shù)據(jù)對象
2.2.3數(shù)據(jù)類型
1.定義數(shù)據(jù)類型
2IEEE預定義的標準邏輯數(shù)據(jù)類型
3.用戶自定義的數(shù)據(jù)類型
4。數(shù)據(jù)類型的轉(zhuǎn)換
5屬性(Attributes)
2.2.4VHDL運算符2021/5/9802IEEE預定義的標準邏輯數(shù)據(jù)類型IEEE庫STD_LOGIC_1164程序包中定義的STD_LOGIC類型和STD_LOGIC_VECTOR類型。STD_LOGIC類型的數(shù)據(jù)可以具有九種取值,其含義如下:
’U’:初始值
’X’:不定態(tài)
’0’:強制0
’1’:強制1 ’Z’:高阻態(tài)
’W’:弱信號不定態(tài)
’L’:弱信號0
’H’:弱信號1
’_’:不可能情況(可忽略值)
其中,“X”方便了系統(tǒng)仿真,“Z”方便了雙向總線的描述。該類型能比較全面地包括數(shù)字電路中信號會出現(xiàn)的幾種狀態(tài),因此一般情況把這種類型代替bit.2021/5/9812.2VHDL語言的語法規(guī)則
2.2.1標識符
2.2.2數(shù)據(jù)對象
2.2.3數(shù)據(jù)類型
1.定義數(shù)據(jù)類型
2IEEE預定義的標準邏輯數(shù)據(jù)類型
3.用戶自定義的數(shù)據(jù)類型
4。數(shù)據(jù)類型的轉(zhuǎn)換
5屬性(Attributes)
2.2.4VHDL運算符2021/5/9823.用戶自定義的數(shù)據(jù)類型
VHDL允許用戶自己定義數(shù)據(jù)類型。常用的用戶自定義數(shù)據(jù)類型主要有:
(1)枚舉(Enumerated)(Enumeration)類型。
通過列舉某類變量所有可能的取值來加以定義。對這些取值,一般使用自然語言中有相應含義的單詞或字符序列來代表,以便于閱讀和理解。自定義數(shù)據(jù)類型說明語句的一般格式是:
TYPE
數(shù)據(jù)類型名{,數(shù)據(jù)類型名}IS[數(shù)據(jù)類型定義];枚舉類型定義的格式為:
TYPE
數(shù)據(jù)類型名IS
(元素1,元素2,…);該數(shù)據(jù)類型括號中的值自左向右按升序排列,中間用逗號分隔。在VHDL中,對其中每一個元素都賦予一個位置編號,最左邊的元素開始記為“0”,向右依次遞增“1”。這為“屬性”提供了一個訪問位置編號的機制。2021/5/983例如,在程序包STD_LOGIC_1164中對STD_LOGIC的定義為TYPESTD_LOGICIS('U','X','0','1','Z','W','L','H','_');
(2)數(shù)組(ARRAY)類型。
又稱為向量,是多個相同類型的數(shù)據(jù)集合。它可以是二維和多維的。一般用于定義數(shù)據(jù)總線、地址總線等。數(shù)組類型定義的格式為:
TYPE
數(shù)據(jù)類型名ISARRAY
(范圍)OF
元素類型名;
范圍一項規(guī)定數(shù)組下標的類型和范圍。默認的下標類型是整型,但也可以使用其它數(shù)據(jù)類型,這就需要在范圍中標明下標的類型。例如:TYPEcount1ISARRAY(STD_LOGIC'_'DOWNTO'U')
OFINTEGER;多維數(shù)組需要用兩個以上的范圍來描述,而且多維數(shù)組不能生成邏輯電路,因此只能用于生成仿真圖形及硬件的抽象模型。2021/5/984(3)紀錄(RECORD)類型。
是多個不同類型的數(shù)據(jù)集合。具有模型抽象能力,用于描述一個功能模塊。紀錄類型定義的格式為:
TYPE
數(shù)據(jù)類型名ISRECORD
元素名:數(shù)據(jù)類型名; 元素名:數(shù)據(jù)類型名;
……
ENDRECORD;
紀錄適用于描述總線、仿真等。對于記錄類型的對象進行單元素賦值時,可在記錄類型對象名后加點“.”,然后再加賦值元素的元素名。2021/5/985(4)時間(TIME)類型(物理類型)。表示時間的數(shù)據(jù)類型,在仿真時是必不可少的。時間類型定義的一般格式為:
TYPE
數(shù)據(jù)類型名IS
范圍;
UNITS
基本單位; 單位;
ENDUNITS;2021/5/986例如:TYPEtimeIS
range–1e18TO1e18;
UNITSfs;
ps=1000fs;
ns=1000ps;
μs=1000ns;
ms=1000μs;
set=1000ms;
min=60set;
hr=60min;
ENDUNITS;
這里的基本單位是“fs”。時間是物理類型的數(shù)據(jù),當然對容量、阻抗值也可以做定義。2021/5/987(5)子類型(SYBTYPE)。子類型是一個具有限制條件的類型,通常用來定義具有一定限制條件的基本類型的數(shù)據(jù)對象。子類型定義的一般格式為:
SYBTYPE
子類型名IS
數(shù)據(jù)類型名[約束范圍];例如:如下Byte被定義作為一個子類型,而后數(shù)據(jù)對象被定義為從屬于該子類型。
SYBTYPEByteISBit_Vector(7downto0);
SIGNALByte1,Byte2:Byte;
SIGNALData1,Data2:Byte;
SIGNALAddr1,Addr2:Byte;2021/5/9882.2VHDL語言的語法規(guī)則
2.2.1標識符
2.2.2數(shù)據(jù)對象
2.2.3數(shù)據(jù)類型
1.定義數(shù)據(jù)類型
2IEEE預定義的標準邏輯數(shù)據(jù)類型
3.用戶自定義的數(shù)據(jù)類型
4。數(shù)據(jù)類型的轉(zhuǎn)換
5屬性(Attributes)
2.2.4VHDL運算符2021/5/9894。數(shù)據(jù)類型的轉(zhuǎn)換在VHDL程序中,不同類型的對象不能代入,因此要進行類型轉(zhuǎn)換。類型轉(zhuǎn)換的方法有:(1)類型標記法。用類型名稱來實現(xiàn)關(guān)系密切的標量類型之間的轉(zhuǎn)換。例如: VARIABLEx:INTEGER;
VARIABLEy:REAL;
使用類型標記(即類型名)實現(xiàn)類型轉(zhuǎn)換時,可采用賦值語句:
x:=INTEGER(y);
y:=REAL(x)。2021/5/990(2)類型函數(shù)法。
VHDL程序包中提供了多種轉(zhuǎn)換函數(shù),使得某些類型的數(shù)據(jù)之間可以相互轉(zhuǎn)換,以實現(xiàn)正確的賦值操作。常用的類型轉(zhuǎn)換函數(shù)有:★CONV_INTEGER():將STD_LOGIC_VECTOR類型轉(zhuǎn)換成
INTEGER類型。★CONV_STD_LOGIC_VECTOR():將INTEGER類型、UNSIGNED
類型或SIGNED類型轉(zhuǎn)換成STD_LOGIC_VECTOR類型?!颰O_BIT():將STD_LOGIC類型轉(zhuǎn)換成BIT類型。★TO_BIT_VECTOR():將STD_LOGIC_VECTOR類型轉(zhuǎn)換
BIT_VECTOR類型?!颰O_STD_LOGIC():將BIT類型轉(zhuǎn)換成STD_LOGIC類型。★TO_STD_LOGIC_VECTOR():
將BIT_VECTOR類型轉(zhuǎn)換成
STD_LOGIC_VECTOR類型。注意:引用時必須首先打開庫和相應的程序包。該函數(shù)由STD_LOGIC_UNSIGNED程序包定義該函數(shù)由STD_LOGIC_ARITH程序包定義以下函數(shù)由STD_LOGIC_1164程序包定義2021/5/9912.2VHDL語言的語法規(guī)則
2.2.1標識符
2.2.2數(shù)據(jù)對象
2.2.3數(shù)據(jù)類型
1.定義數(shù)據(jù)類型
2IEEE預定義的標準邏輯數(shù)據(jù)類型
3.用戶自定義的數(shù)據(jù)類型
4。數(shù)據(jù)類型的轉(zhuǎn)換
5屬性(Attributes)
2.2.4VHDL運算符2021/5/9925屬性(Attributes)VHDL沒有一般程序設計語言中那些運算類標準函數(shù),取而代之的是多種能反映和影響硬件行為的屬性。VHDL的屬性可分為數(shù)值類、函數(shù)類、信號類、類型類和范圍類等屬性。提供Entity、Architecture、Type和Signals的信息。有許多預定義的值、信號和范圍的屬性屬性的一般格式為:
Object′Attributes為獲取硬件設計中的一些有關(guān)信息(各類項目特性)而定義的內(nèi)部函數(shù)某一項目的屬性或特征通??梢杂靡粋€值或一個表達式來表示;它可以通過VHDL的屬性描述語句加以訪問。2021/5/9931.數(shù)值類屬性
數(shù)值類屬性用于返回數(shù)組、塊、或一般數(shù)據(jù)的有關(guān)值,如邊界、數(shù)組長度等?!?/p>
對一般數(shù)據(jù)屬性,返回函數(shù)的邊界值。其格式為
Object′LEFT;
Object′RIGHT;
Object′HIGH;
Object′LOW;●
對于數(shù)組的數(shù)值屬性,返回數(shù)組的長度值。其格式為
Object′LENGTH;●
對于塊結(jié)構(gòu)體的數(shù)值屬性,返回塊的信息。其格式為
Object′BEHAVIOR;
Object′STRUCTURE;2021/5/994例如:TYPEnumISARRAYRANGE7DOWNTO0;
VARIABLEi1,i2,i3,i4,M:INTEGER;
BEGIN i1:=num′LEFT; --i1取得num的左邊界值7 i2:=num′RIGHT;--i2取得num的右邊界值0 i3:=num′HIGH; --i3取得num的上限值7 i4:=num′LOW; --i4取得num的下限值0M:=num′LENGTH;2021/5/9952.函數(shù)類屬性函數(shù)類屬性是以函數(shù)形式為設計人員提供數(shù)據(jù)類型、數(shù)組、信號的相關(guān)信息的?!?/p>
數(shù)據(jù)類型的屬性函數(shù)。利用數(shù)組屬性可以獲得數(shù)組的區(qū)間,該屬性的格式為
Object′SUCC(X); --獲取X的下一個值
Object′PRED(X); --獲取X的前一個值
Object′LEFTOF(X); --獲取X的左邊值
Object′RIGHTOF(X);--獲取X的右邊值其中,“Object”為數(shù)據(jù)類型名,X為其中的一個元素。例如:TYPEtimeIS(year,month,day,hour,min,sec);則time′SUCC(hour);--獲取元素hour的下一個值mintime′LEFTOF(day);--獲取元素day的左邊值month2021/5/996●
數(shù)組的屬性函數(shù)。其格式為
Object′LEFT(n);--獲取索引號為n的區(qū)間左端邊界值
Object′RIGHT(n);--獲取索引號為n的區(qū)間右端邊界值
Object′HIGH(n);--獲取索引號為n的區(qū)間高端邊界值
Object′LOW(n);--獲取索引號為n的區(qū)間低端邊界值其中,“Object”為數(shù)組名;n為多維數(shù)組中所定義的多維區(qū)間的序號。默認值n=1,表示對一維空間進行操作。2021/5/997●信號的屬性函數(shù)。利用信號屬性可得到信號的行為和功能信息,其格式為
Object′EVENT;--反映信號的值是否變化,是,則返回為“真”
Object′ACTIVE;--反映信號是否活躍,是,則返回為“真”
Object′LAST_EVENT;--反映從最近一次事件到現(xiàn)在經(jīng)過 的時間,返回一個時間值
Object′LAST_VALUE;--反映信號變化前的取值,并將 該歷史值返回
Object′LAST_ACTIVE;--反映從最近一次活躍到現(xiàn)在經(jīng)過 的時間,返回一個時間值需要注意的是:信號的事件(Event)和活躍(Active)是兩個不同的概念,必須嚴格區(qū)分。信號的活躍定義為信號值的任何變化。信號值由1變?yōu)?是一個活躍,而從1變?yōu)?也是一個活躍,唯一的準則是發(fā)生了事情,這種情況被稱為一個事項處理(Transaction)。然而,信號的事件則要求信號值發(fā)生變化。信號值從1變?yōu)?是一個事件,但從1變?yōu)?雖是一個活躍卻不是一個事件。所有的事件都是活躍,但并非所有的活躍都是事件。2021/5/998例如:利用函數(shù)信號屬性檢查信號的建立時間。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYdff1IS
PORT(d,clk:INSTD_LOGIC; q:OUTSTD_LOGIC);ENDdff1;ARCHITECTUREsetup_time_checkOFdff1ISBEGIN
PROCESS(clk)
BEGIN
IF(clk='1′)AND(clk′EVENT)THEN q<=d;
ASSERT(d′LAST_EVENT>5ns)--條件為真,向下執(zhí)行
REPORT“SETUPVIOLATION”--條件為假,報告錯誤信息: 建立時間不符合要求
SEVERITYERROR;--出錯等級:ERROR
ENDIF;ENDPROCESS;ENDsetup_time_check;2021/5/9993.信號類屬性信號類屬性的作用對象是信號,其返回值也是一個信號。共有四種信號類屬性,分別是:●DELAYED(time),即延時。該屬性使受它作用的信號延時time所規(guī)定的值。如:a′DELAYED(5ns)即信號a延時5ns?!馭TABLE(time)。用于監(jiān)測信號在規(guī)定時間內(nèi)的穩(wěn)定性。若受它作用的信號在time所規(guī)定的時間內(nèi)沒有發(fā)生事件,則該屬性的結(jié)果為“TRUE”?!馫UIET(time)。用于監(jiān)測信號在規(guī)定時間內(nèi)的是否“安靜”。若受它作用的信號在time所規(guī)定的時間內(nèi)沒有發(fā)生事情或事件(Active
或Event
),則該屬性的結(jié)果為“TRUE”。●TRANSACTION。用于檢測信號的Active
或Event
。當Active
或Event
發(fā)生時,該屬性的值也將發(fā)生改變。2021/5/91004.類型類屬性該屬性可獲得數(shù)據(jù)類型中的一個值。格式為:
Object′BASE其中,Object為數(shù)據(jù)類型名。例如:TYPEtimeIS(sec,min,hour,day,month,year);……a:=time′BASE′RIGHT;--a=yeara:=time′BASE′LEFT;--a=sec……2021/5/91015.范圍類屬性該屬性的返回值是一個數(shù)據(jù)區(qū)間。其這兩個屬性功能相同,但得到的區(qū)間范圍是顛倒的。范圍類屬性的格式為:
Object′RANGE(n);Object′REVERSE
RANGE(n);2021/5/91022.2VHDL語言的語法規(guī)則
2.2.1標識符
2.2.2數(shù)據(jù)對象
2.2.3數(shù)據(jù)類型
2.2.4VHDL運算符2021/5/91032.2.4VHDL運算符VHDL為構(gòu)造計算數(shù)值的表達式提供了許多預定義算符。預定義算符共有四類運算符:(1)算術(shù)運算符:包括一元算術(shù)運算符和二元算術(shù)運算符。一元算術(shù)運算符包括:+(正號)、—(負號)、ABS(求絕對值)二元算術(shù)運算符包括:+、—、*、/、MOD(求模)、REM(求余)、**(指數(shù)運算)(2)關(guān)系運算符:它包括:=、/=、<、<=、>、>=(3)邏輯運算符:包括一元邏輯運算符和二元邏輯運算符。一元邏輯運算符包括:NOT
二元邏輯運算符包括:AND、OR、NAND、NOR、XOR(4)并置運算符:&(連接),用于將多個位連接成為位矢量。例如:DBUS<=D0&D1&D2&D3,即DBUS<=(D0,D1,D2,D3)。
2021/5/9104
上述四種運算符的優(yōu)先級順序為:NOT、ABS、**;REM、
MOD、/、*;—(負)、+(正);&、—(減)、+(加);>=、<=、>、<、/=、=;XOR、NOR、NAND、OR、AND。需要注意的是:在編寫VHDL程序時,必須保證操作數(shù)的數(shù)據(jù)類型與運算符所要求的數(shù)據(jù)類型一致。VHDL中的操作符:●“<=”賦值符:用于將數(shù)據(jù)傳給信號?!瘛埃?”賦值符:用于將數(shù)據(jù)傳給變量。該賦值符也用于為信號、變量、常量等指定初值。●“=>”符號:在WHEN語句中出現(xiàn),其含義是“THEN(則)”。2021/5/91052。2。2數(shù)據(jù)對象信號(Signal)
用于聲明內(nèi)部信號,而非外部信號。其在元件之間起互聯(lián)作用,可以賦值給外部信號。例如:ARCHITECTUREbehaviorofexampleis SIGNALcount: std_logic_vector(3downto0); SIGNALflag: integer; SIGNALmtag: integerrange0to15; SIGNALstag: integerrange100downto0;BEGIN-- mtagisa4-bitarray;MSBismtag(0);LSBismtag(3)-- stagisa7-bitarray;MSBisstag(6);LSBisstag(0)-- 總是在結(jié)構(gòu)體(ARCHITECTURE)中聲明 信號也可在狀態(tài)機中表示狀態(tài)變量,如:ARCHITECTUREbehaviorofexampleis TYPEstatesis(state0,state1,state2,state3);BEGIN SIG
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中生活導航
- 公司用餐協(xié)議合同范本
- 合同范本用打
- 嘉定區(qū)易燃品運輸合同范本
- 吊蘭購買合同范本
- 策劃活動新思維
- 土地入股合同范本版
- 鹵菜聯(lián)營店合同范本
- 回收豬糞合同范本
- 公司長期合作合同范本
- GB/T 700-2006碳素結(jié)構(gòu)鋼
- GB/T 25196-2018起重機設計工作周期的監(jiān)控
- 機器人傳感器課件
- 外國美術(shù)史第一講-原始美術(shù)及古代兩河流域美術(shù)課件
- 共有權(quán)人同意出租證明(房屋對外出租使用)
- 日本の節(jié)句日本的節(jié)日課件-高考日語文化常識專項
- 阿托伐他汀鈣片說明書20110420(立普妥)
- 回旋鉆鉆孔施工方案
- 四年級上冊第四單元讓生活多一些綠色道德與法治教學反思11變廢為寶有妙招
- JJG(交通)096-2009 水泥膠砂流動度測定儀檢定規(guī)程-(高清現(xiàn)行)
- 嗓音(發(fā)聲)障礙評定與治療
評論
0/150
提交評論