版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL語(yǔ)言語(yǔ)言華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL語(yǔ)言第一講、VHDL簡(jiǎn)介及其結(jié)構(gòu)第二講、VHDL中的對(duì)象、操作符、數(shù)據(jù)類型第三講、VHDL中的控制語(yǔ)句及模塊華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院第一講、VHDL簡(jiǎn)介及其結(jié)構(gòu) 通過(guò)本章的學(xué)習(xí)您可以了解以下幾點(diǎn)1、VHDL 的基本概念2、VHDL的基本結(jié)構(gòu)3、VHDL的設(shè)計(jì)初步華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 VHDL- VHSIC Hardware Decription Language
2、 其中VHSIC- Very High Speed Integrated Circuit電子設(shè)計(jì)自動(dòng)化的關(guān)鍵技術(shù)之一是要求用形式化方法來(lái)描述硬件系統(tǒng)。VHDL適應(yīng)了這種要求。什么是VHDL華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL和Verilog HDL Verilog HDL: 另一種硬件描述語(yǔ)言,由Verilog 公司開(kāi)發(fā),1995年成為IEEE標(biāo)準(zhǔn)。 優(yōu)點(diǎn):簡(jiǎn)單、易學(xué)易用 缺點(diǎn):功能不如VHDL強(qiáng)大,仿真工具少 VHDL : 1987年成為IEEE標(biāo)準(zhǔn) 優(yōu)點(diǎn):功能強(qiáng)大、通用性強(qiáng)。 缺點(diǎn):難學(xué)華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VH
3、DL的發(fā)展歷史 起源于八十年代,由美國(guó)國(guó)防部開(kāi)發(fā) 兩個(gè)標(biāo)準(zhǔn): 1、1987年的 IEEE 1076(VHDL87) 2、1993年進(jìn)行了修正(VHDL93)華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL在電子系統(tǒng)設(shè)計(jì)中的應(yīng)用電子系統(tǒng)的設(shè)計(jì)模塊電子系統(tǒng)的設(shè)計(jì)模塊華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL在電子系統(tǒng)設(shè)計(jì)中的應(yīng)用 電子系統(tǒng)設(shè)計(jì)的描述等級(jí)1、行為級(jí)2、RTL級(jí)(Register transfer level)3、邏輯門(mén)級(jí)4、版圖級(jí) 用VHDL可以描述以上四個(gè)等級(jí)華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHD
4、L在電子系統(tǒng)設(shè)計(jì)中的應(yīng)用系統(tǒng)設(shè)計(jì)的描述等級(jí)-制版級(jí)華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL在電子系統(tǒng)設(shè)計(jì)中的應(yīng)用系統(tǒng)設(shè)計(jì)的描述等級(jí)-邏輯門(mén)級(jí)華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL在電子系統(tǒng)設(shè)計(jì)中的應(yīng)用系統(tǒng)設(shè)計(jì)的描述等級(jí)-RTL級(jí)華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL在電子系統(tǒng)設(shè)計(jì)中的應(yīng)用系統(tǒng)設(shè)計(jì)的描述等級(jí)-行為級(jí)華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院如何使用VHDL描述硬件實(shí)體 Entity(實(shí)體)Architecture 1(構(gòu)造體)Architecture N pr
5、ocess(進(jìn)程結(jié)構(gòu)) block(塊結(jié)構(gòu)) subprograms(子程序) procedure(過(guò)程) function(函數(shù))華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_unsigned.all;entity count is port ( clock,reset: in STD_LOGIC; dataout: out STD_LOGIC_VECTOR (3 downto 0) );end count;architecture behaviorl o
6、f count is signal databuffer: STD_LOGIC_VECTOR (3 downto 0); begin dataout=databuffer; process(clock,reset) begin if (reset=1) then databuffer=0000; elsif (clockevent and clock=1) then if databuffer=1000 then databuffer=0000; else databuffer=databuffer+1; end if; end if; end process; end behavioral;
7、華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL結(jié)構(gòu)要點(diǎn)1、ENTITY(實(shí)體)格式: Entity 實(shí)體名 IS 類屬參數(shù)說(shuō)明 端口說(shuō)明 End Entity; 其中端口說(shuō)明格式為: PORT(端口名1,端口名N:方向:類型) 其中方向有: IN , OUT, INOUT, BUFFER, LINKAGE 華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL結(jié)構(gòu)要點(diǎn) 注意注意 簡(jiǎn)單地說(shuō)簡(jiǎn)單地說(shuō) In 不可以出現(xiàn)在= 或 : = 的左邊 out不可以出現(xiàn)在= 或 : = 的右邊 buffer可以出現(xiàn)在= 或 : = 的兩邊In 信號(hào)只能被引用,不能被
8、賦值out 信號(hào)只能被賦值,不能被引用buffer 信號(hào)可以被引用,也可以被賦值華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL結(jié)構(gòu)要點(diǎn) 例子 (HalfAdd) 其內(nèi)部結(jié)構(gòu)將由Architecture來(lái)描述華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL結(jié)構(gòu)要點(diǎn)2、Arcthitecture(構(gòu)造體) 格式: Arcthitecture 構(gòu)造體名 of 實(shí)體名 is 定義語(yǔ)句 內(nèi)部信號(hào)、常數(shù)、元件、數(shù)據(jù)類型、函數(shù)等的定義 begin 并行處理語(yǔ)句和block、process、function、procedure end 構(gòu)造體名; 華南理工大學(xué)
9、計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL結(jié)構(gòu)要點(diǎn) 例子(HalfAdd)華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL結(jié)構(gòu)要點(diǎn) 例子 (FullAdd) (學(xué)習(xí)如何調(diào)用現(xiàn)有模塊) 華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL結(jié)構(gòu)要點(diǎn) 實(shí)例(FullAdd)-entity 華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL結(jié)構(gòu)要點(diǎn) 實(shí)例(FullAdd)-architecture華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程
10、學(xué)院VHDL中的設(shè)計(jì)單元 除了entity(實(shí)體)和architecture(構(gòu)造體)外還有另外三個(gè)可以獨(dú)立進(jìn)行編譯的設(shè)計(jì)單元 Package(包集合)屬于庫(kù)結(jié)構(gòu)的一個(gè)層次,存放信號(hào)定義、常數(shù)定義、數(shù)據(jù)類型、元件語(yǔ)句、函數(shù)定義和過(guò)程定義。 Package Body 具有獨(dú)立對(duì)端口具有獨(dú)立對(duì)端口(port)的的package configuration(配置)描述層與層之間的連接關(guān)系以及實(shí)體與構(gòu)造體之間關(guān)系。華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL中的設(shè)計(jì)單元 VHDL中的設(shè)計(jì)單元(可以獨(dú)立編譯)華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院Li
11、brary 庫(kù)的概念 STD庫(kù) -VHDL的標(biāo)準(zhǔn)庫(kù) IEEE庫(kù) - VHDL的標(biāo)準(zhǔn)庫(kù)的擴(kuò)展 面向ASIC的庫(kù) -不同的工藝 不同公司自定義的庫(kù) 普通用戶自己的庫(kù)庫(kù):庫(kù): 數(shù)據(jù)的集合。內(nèi)含各類包定義、實(shí)體、構(gòu)造體等華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院Library 庫(kù)的概念 用戶自己的庫(kù) 當(dāng)您的VHDL文件被編譯后,編譯的結(jié)果儲(chǔ)存在特定的目錄下,這個(gè)目錄的邏輯名稱即Library,此目錄下的內(nèi)容亦即是這個(gè)Library的內(nèi)容。華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院Package 包的概念 Package(包)華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華
12、南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL中的結(jié)構(gòu)關(guān)系結(jié)構(gòu)關(guān)系華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL簡(jiǎn)介及其結(jié)構(gòu) 本講結(jié)束 下一講: VHDL中的對(duì)象、操作符、數(shù)據(jù)類型華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院第二講、VHDL對(duì)象、操作符、數(shù)據(jù)類型 通過(guò)本課的學(xué)習(xí)您可以了解以下幾點(diǎn)1、VHDL 的基本類型2、如何在VHDL中定義類型3、VHDL 的信號(hào)定義4、如何在VHDL中對(duì)信號(hào)賦值5、VHDL中的操作符華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL對(duì)象、操作符、數(shù)據(jù)類型 對(duì)象object 對(duì)客觀實(shí)體的抽象和概括
13、VHDL中的對(duì)象有:1、Constant(常量)在程序中不可以被賦值 2、Variable(變量)在程序中可以被賦值(用“: =”),賦值后立即變化為新值。 3、Signal(信號(hào))在程序中可以被賦值(用“=”) ,但不立即更新,當(dāng)進(jìn)程掛起后,才開(kāi)始更新。 華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL對(duì)象、操作符、數(shù)據(jù)類型 VHDL中的對(duì)象使用: variable x,y:integer;-定義了整數(shù)型的變量對(duì)象x,y constant Vcc:real;-定義了實(shí)數(shù)型的常量對(duì)象Vcc signal clk,reset:bit;-定義了位類型的信號(hào)對(duì)象clk,res
14、et華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL中的對(duì)象使用 注意1、variable只能定義在process和subprogram(包括function和procedure)中,不可定以在其外部。2、signal不能定義在process和subprogram(包括function和procedure)中,只可定以在其外部。華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL對(duì)象、操作符、數(shù)據(jù)類型 對(duì)象的屬性 類似于其它面向?qū)ο蟮木幊陶Z(yǔ)言如VB、VC、DELPHI 用法格式用法格式:對(duì)象對(duì)象 屬性屬性 例例 子:子:clkevent -表明信號(hào)c
15、lk的event屬性 常用的屬性: Signal 對(duì)象的常用屬性有: event : 返回boolean值,信號(hào)發(fā)生變化時(shí)返回true last_value:返回信號(hào)發(fā)生此次變化前的值 last_event:返回上一次信號(hào)發(fā)生變化到現(xiàn)在變化的間隔時(shí)間 華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL對(duì)象、操作符、數(shù)據(jù)類型 Signal 對(duì)象的常用屬性有:接上頁(yè)delayed(時(shí)延值): 使信號(hào)產(chǎn)生固定時(shí)間的延時(shí)并返回stable(時(shí)延值): 返回boolean, 信號(hào)在規(guī)定時(shí)間內(nèi)沒(méi)有變化返回truetransaction: 返回bit類型,信號(hào)每發(fā)生一次變化,返回值翻轉(zhuǎn)
16、一次例子:A=Bdelayed(10 ns); -B延時(shí)10ns后賦給A; if(BStable(10 ns)); -判斷B在10ns中是否發(fā)生變化華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL對(duì)象、操作符、數(shù)據(jù)類型信號(hào)的event和last_value屬性經(jīng)常用來(lái)確定信號(hào)的邊沿 屬性應(yīng)用例如:判斷clk的上升沿if ( (clkevent)and (clk=1) and(clklast_value=0)) then判斷clk的下降沿if ( (clkevent)and (clk=0) and(clklast_value=1)) then華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)
17、院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL 的基本類型1、bit(位): 0 和12、bit-Vector(位矢量): 例如:001103、Boolean “ ture”和“false”4、time 例如:1 us、100 ms,3 s5、character 例如:a、n、1、 06、string 例如:“sdfsd”、”my design”7、integer 32位例如:1、234、-21342348、real 范圍-1.0E38+1.0E38 例如:1.0、2.834、3.14、0.0華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL 的基本類型9、natural 自
18、然數(shù) 和 positive 正整數(shù)10、senverity level (常和assert語(yǔ)句配合使用) 包含有:note、warning、error、failure 以上十種類型是VHDL中的標(biāo)準(zhǔn)類型,在編程中可以直接使用。使用這十種以外的類型,需要自行定義或指明所引用的Library(庫(kù))和Package(包)集合華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL 的基本類型 例子一 華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL 的基本類型和賦值 例子二華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL 的基本類型和賦
19、值 例子三 例子中信號(hào)Z有兩個(gè)驅(qū)動(dòng)A和B;Z必須定義為一種新的數(shù)據(jù)類型,否則Z將無(wú)法決定取值,語(yǔ)句視為非法。華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL 的基本類型和賦值 例子四華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL 的基本類型和賦值 例子五要點(diǎn):賦值語(yǔ)句中的方向應(yīng)和聲明中的方向一樣華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL 的基本類型和賦值 連接操作符-使用&華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL 的基本類型和賦值 集合操作-使用()華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華
20、南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL 的基本類型和賦值 集合操作-采用序號(hào)華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL 的基本類型和賦值 集合操作-采用others華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院在VHDL中定義自己的類型 通用格式 TYPE 類型名 IS 數(shù)據(jù)類型定義 用戶可以定義的數(shù)據(jù)類型枚舉類型枚舉類型enumberated、整數(shù)型、整數(shù)型integer、實(shí)數(shù)型實(shí)數(shù)型real、數(shù)組類型、數(shù)組類型array、紀(jì)錄類型紀(jì)錄類型record、時(shí)間類型、時(shí)間類型time、文件類型文件類型file、存取類型、存取類型access華南理工
21、大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院在VHDL中定義自己的類型 枚舉類型enumberated 格式 type 數(shù)據(jù)類型名 is (元素,元素.); 例子 type week is (sun,mon,tue,thu,fri,sat); type std_logic is (1,0,x,z); 華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院在VHDL中定義自己的類型 整數(shù)類integer和實(shí)數(shù)類real 格式 type 數(shù)據(jù)類型名 is 數(shù)據(jù)類型定義 約束范圍; 例子 type week is integer range 1 to 7; type curre
22、nt is real range -1E4 to 1E4 華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院在VHDL中定義自己的類型 數(shù)組類型array 格式 type 數(shù)據(jù)類型名 is array 范圍 of 元數(shù)據(jù)類型名 例子 type week is array (1 to 7) of integer; type deweek is array (1 to 7) of week;華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院在VHDL中定義自己的類型 時(shí)間類型time 格式 type 數(shù)據(jù)類型名 is 范圍 units 基本單位; 單位; end uni
23、ts華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院在VHDL中定義自己的類型 時(shí)間類型例子 type time is range -1E18 to 1E18 units us; ms=1000 us; sec=1000 ms; min=60 sec;end units注意注意:引用時(shí)間時(shí),有的編譯器要求量量 與單位單位之間 應(yīng)有一個(gè)空格如:1 ns;不能寫(xiě)為1ns;華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院在VHDL中定義自己的類型 紀(jì)錄類型record 格式 type 數(shù)據(jù)類型名 is record 元素名:數(shù)據(jù)類型名; 元素名:數(shù)據(jù)類型名; . en
24、d record;華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院在VHDL中定義自己的類型 紀(jì)錄類型的例子type order is record id:integer; date:string; security:boolean;end record; 引用:signal flag:boolean; signal order1:order; order1=(3423,”1999/07/07”,true); flag=order1.security; 華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院IEEE 1164中定義的類型 std_ulogic 是對(duì)位(
25、bit)類型的擴(kuò)展,只允許一個(gè)驅(qū)動(dòng)源 華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院IEEE 1164中定義的類型 Std_logic同std_ulogic 一樣有九個(gè)狀態(tài),允許一個(gè)或多個(gè)驅(qū)動(dòng)源華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院IEEE 1164中定義的類型 Std_unlogic_vector和std_logic_vector華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院IEEE 1164中定義的類型Std_unlogic、std_ulogic_vector std_logic_vector和 std_unlogic_vect
26、or 類型均定義在package(包) standard_logic_1164中在使用這四種類型時(shí)應(yīng)加以說(shuō)明,例如:library ieee; use ieee.std_logic_1164.all; 注: standard_logic_1164位于IEEE庫(kù)中華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院類型使用例子 例子一(聲明使用的庫(kù)和包)華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院類型使用例子 例子二 std_ulogic 和std_logic的區(qū)別華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院類型使用例子 練習(xí)一: 下面那一個(gè)是
27、正確的3華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL中的操作符 分類 1、邏輯操作符 2、關(guān)系操作符 3、數(shù)學(xué)運(yùn)算符華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL中的操作符1、邏輯操作符有:華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL中的操作符 邏輯操作符的應(yīng)用類型華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL中的操作符 邏輯操作符的應(yīng)用例子華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL中的操作符2、關(guān)系運(yùn)算符有華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)
28、科學(xué)與工程學(xué)院VHDL中的操作符 關(guān)系運(yùn)算符的應(yīng)用ARRAY(數(shù)組)沒(méi)有數(shù)字概念,數(shù)組“111”不等于7華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL中的操作符3、數(shù)學(xué)運(yùn)算符注意注意:上述運(yùn)算符應(yīng)用于 integer,real,time 類型,不能用于vector(如果希望用于vector,可以使用庫(kù)IEEE的std_logic_unsigned包,它對(duì)算術(shù)運(yùn)算符進(jìn)行了擴(kuò)展)華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL中的操作符 VHDL中的操作符應(yīng)用要點(diǎn) 1、VHDL屬于強(qiáng)類型,不同類型之間不能進(jìn)行運(yùn)算和賦值,可以進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換 2、v
29、ector不表示number 3、array 不表示number華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL中的操作符 本講結(jié)束 下一講: VHDL中的控制語(yǔ)句及模塊華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院第三講VHDL中的控制語(yǔ)句及模塊 通過(guò)本講您將會(huì)學(xué)到1、Block的編寫(xiě)2、Process的編寫(xiě)3、function 和 procedure的編寫(xiě)4、VHDL中的流程控制語(yǔ)句的書(shū)寫(xiě)華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL中的控制語(yǔ)句及模塊 回顧第一講的內(nèi)容 Entity(實(shí)體)Architecture 1(構(gòu)
30、造體)Architecture N process(進(jìn)程結(jié)構(gòu)) block(塊結(jié)構(gòu)) subprograms(子程序) procedure(過(guò)程) function(函數(shù))華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL中的控制語(yǔ)句及模塊 基本概念1、并行處理(concurrent) 語(yǔ)句的執(zhí)行與書(shū)寫(xiě)順序無(wú)關(guān),并行塊內(nèi)的語(yǔ)句是同時(shí)執(zhí)行的2、順序處理(sequential) 語(yǔ)句的執(zhí)行按書(shū)寫(xiě)的先后次序,從前到后順序執(zhí)行。這種方式和其他普通編程語(yǔ)言(如c,pascal)是一樣的。華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL中的控制語(yǔ)句及模塊 Ar
31、chitecture 中的語(yǔ)句及子模塊之間是并行處理的 子模塊block中的語(yǔ)句是并行處理的 子模塊process中的語(yǔ)句是順序處理的 子模塊subprogram中的function和procedure是順序處理的華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院VHDL中的architecture Arcthitecture(構(gòu)造體)的格式為:(第一講) Arcthitecture 構(gòu)造體名 of 實(shí)體名 is 定義語(yǔ)句 內(nèi)部信號(hào)、常數(shù)、元件、數(shù)據(jù)類型、函數(shù)等的定義 begin 并行處理語(yǔ)句和block、process、function、procedure end 構(gòu)造體名;
32、華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院Architecture中的Block Block 格式 塊名: BLOCK 定義語(yǔ)句 begin 并行處理語(yǔ)句concurrent statement end block 塊名華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院Architecture中的Block 條件Block 格式 塊名: BLOCK (布爾表達(dá)式) 定義語(yǔ)句 begin 并行處理語(yǔ)句concurrent statement 信號(hào)= guarded 信號(hào),延時(shí) ; end block 塊名華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與
33、工程學(xué)院Architecture中的Block Block 例子 myblock1: block(clk=1) signal:qin:bit:=0; begin qout= guarded qin ; end block myblock1 myblock2: block begin qout=qin; end block myblock2華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院Architecture中的process Process 格式進(jìn)程名: process (觸發(fā)信號(hào)列表) 定義語(yǔ)句; begin 串行處理語(yǔ)句sequential statement; end
34、process華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院Architecture中的process process例子 exp1: process (clk,qin) variable:qin:bit:=0; begin qout=qin; end processexp2: process begin wait on clk,qin; qout=qin; end process華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 process例子-值的更新分析:當(dāng)A、B、C、D中任一信號(hào)發(fā)生變化時(shí),進(jìn)程將開(kāi)始執(zhí)行,當(dāng)執(zhí)行 Z = A and B 后, Z 的
35、值不會(huì)立即變化 ;同理執(zhí)行 Z = C and D 后Z 的值也不會(huì)立即變化。當(dāng)執(zhí)行end process后, Z 的值才開(kāi)始更新,同時(shí)系統(tǒng)掛起開(kāi)始等待敏感信號(hào)。華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院Architecture中的process Process中敏感信號(hào)列表的普遍原則是: 在process中,其值被引用的信號(hào)信號(hào)應(yīng)當(dāng)出現(xiàn)在敏感信號(hào)列表中例子例子;二選一的選擇器:A、B為輸入信號(hào);SEL為選路信號(hào);Z為輸出信號(hào);華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 不符合設(shè)計(jì)要求華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院A
36、rchitecture中的subprogram Function(函數(shù)) 格式: function 函數(shù)名(參數(shù)1,參數(shù)2 .) 定義語(yǔ)句 return 數(shù)據(jù)類型名 is 定義語(yǔ)句 begin 順序執(zhí)行語(yǔ)句 return 返回變量名 end 函數(shù)名 華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院Architecture中的subprogram Function 例子function max(a,b:bit) return boolean is variable :flag:boolean;begin if (a=b)then flag=true; end ifreturn f
37、lag;end maxFunction 中的參數(shù)不用說(shuō)明方向(因?yàn)橹挥幸环N方向in)華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院Architecture中的subprogram procedure(過(guò)程) 格式: procedure 過(guò)程名(參數(shù)1,參數(shù)2 .)is 定義語(yǔ)句 begin 順序執(zhí)行語(yǔ)句 end 過(guò)程名 華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院Architecture中的subprogram Procedure例子procedure max(a,b:in bit; flag:out boolean)isbegin if (a=b)the
38、n flag=true; end ifend max;華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院順序執(zhí)行語(yǔ)句sequential statement Wait語(yǔ)句 assert語(yǔ)句 If 語(yǔ)句 case語(yǔ)句 for loop語(yǔ)句 while 語(yǔ)句華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院順序執(zhí)行語(yǔ)句sequential statement Wait語(yǔ)句 書(shū)寫(xiě)格式 wait;-無(wú)限等待 wait on 信號(hào)列表 -等待信號(hào)變化 wait until 條件; -等待條件滿足 wait for 時(shí)間值; -等待時(shí)間到 功能 wait語(yǔ)句使系統(tǒng)暫時(shí)掛起 (等
39、同于end process),此時(shí),信號(hào)值開(kāi)始更新。條件滿足后,系統(tǒng)將繼續(xù)運(yùn)行 。華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院順序執(zhí)行語(yǔ)句sequential statement Wait語(yǔ)句例子process(a,b) begin y=a and b;end process process begin wait on a,b; y=a and b;end process等同于等同于process(a,b) begin 錯(cuò)誤錯(cuò)誤 如果process中已有敏感信號(hào) wait on a,b; 進(jìn)程中不能使用wait 語(yǔ)句 y=a and b; end process華南理工大學(xué)
40、計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院順序執(zhí)行語(yǔ)句sequential statement Wait語(yǔ)句例子如果process中沒(méi)有敏感信號(hào)列表,其進(jìn)程中也沒(méi)有wait 語(yǔ)句,則process中的程序代碼循環(huán)執(zhí)行process begin clk 順序處理語(yǔ)句 when 條件表達(dá)式= 順序處理語(yǔ)句 . when others= 順序處理語(yǔ)句end case 原則原則 : 1、完全性完全性:表達(dá)式所有可能的值都必須說(shuō)明,可以用 others 2、唯一性唯一性:相同表達(dá)式的值只能說(shuō)明一次華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院順序執(zhí)行語(yǔ)句sequential
41、statement Case 語(yǔ)句例子,條件表達(dá)式可以有多種形式華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院順序執(zhí)行語(yǔ)句sequential statement Case 語(yǔ)句例子華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 順序執(zhí)行語(yǔ)句sequential statement For loop 語(yǔ)句格式For 循環(huán)變量 in 范圍 loop順序處理語(yǔ)句end loop注意注意 : 循環(huán)變量不需要定義(聲明);例子中 i 不需要定義For loop 語(yǔ)句例子For i in 1 to 10 loop sum=sum+1;end loop華南理工大學(xué)計(jì)算機(jī)
42、科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院順序執(zhí)行語(yǔ)句sequential statement 在loop語(yǔ)句中可以用next來(lái)跳出本次本次 循環(huán),也可以用exit 來(lái)結(jié)束整個(gè)循環(huán)狀態(tài) next 格式格式:next 標(biāo)號(hào) when 條件; exit 格式:格式: exit 標(biāo)號(hào) when 條件;For i in 1 to 10 loop sum=sum+1; next when sum=100;end loopFor i in 1 to 10 loop sum=sum+1; exit when sum=100;end loop華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院
43、順序執(zhí)行語(yǔ)句sequential statement While 語(yǔ)句格式while 條件 loop順序處理語(yǔ)句end loopWhile i10 loop sum=sum+1; i=i+1;end loopWhile 語(yǔ)句例子華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院并行處理語(yǔ)句concurrent statement1、信號(hào)賦值操作2、帶條件的信號(hào)賦值語(yǔ)句3、帶選擇的信號(hào)賦值語(yǔ)句華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院并行處理語(yǔ)句concurrent statement 信號(hào)賦值操作 符號(hào)“=”進(jìn)行信號(hào)賦值操作的, 它可以用在順序執(zhí)行語(yǔ)句中,
44、也可以用在并行處理語(yǔ)句中注意注意 1、用在并行處理語(yǔ)句中時(shí),符號(hào)=右邊的值是此條語(yǔ)句的敏感信號(hào),即符號(hào)即符號(hào)=右邊的值發(fā)生變化就會(huì)重新右邊的值發(fā)生變化就會(huì)重新激發(fā)此條賦值語(yǔ)句,也即符號(hào)激發(fā)此條賦值語(yǔ)句,也即符號(hào)=右邊的值不變化時(shí),右邊的值不變化時(shí),此條賦值語(yǔ)句就不會(huì)執(zhí)行。如果符號(hào)此條賦值語(yǔ)句就不會(huì)執(zhí)行。如果符號(hào)=右邊是常數(shù)則右邊是常數(shù)則賦值語(yǔ)句一直執(zhí)行。賦值語(yǔ)句一直執(zhí)行。 2、用在順序執(zhí)行語(yǔ)句中時(shí),沒(méi)有以上說(shuō)法。華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院并行處理語(yǔ)句concurrent statement 賦值語(yǔ)句例子Myblock: Block begin clr=1
45、after 10 ns; clr=0 after 20 ns; end block myblockprocess begin clr=1 after 10 ns; clr=0 after 20 ns;end block myblock程序執(zhí)行10 ns后clr 為1,又過(guò) 10 ns后 0賦給了clr,此時(shí)clr 以前的值1并沒(méi)有清掉,clr將出現(xiàn)不穩(wěn)定狀態(tài)程序執(zhí)行10 ns后clr 為1,又過(guò) 20 ns后 clr的值變?yōu)?,華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院并行處理語(yǔ)句concurrent statement 條件信號(hào)帶入語(yǔ)句格式 目的信號(hào)量 = 表達(dá)式1 when 條件1 else 表達(dá)式2 when 條件2 else 表達(dá)式3 when 條件3 . else 表達(dá)式表達(dá)式4注意:注意:最后的Else 項(xiàng)是必須的; 滿足完全性和唯一性完全性和唯一性華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院并行處理語(yǔ)句concurrent statement 條件信號(hào)帶入語(yǔ)句例子Block begin sel=b & a
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- KTV營(yíng)業(yè)權(quán)轉(zhuǎn)讓及經(jīng)營(yíng)合同版B版
- 二零二五版租賃房屋租賃保證金利息計(jì)算合同3篇
- 2025年度零投入的股權(quán)代持解除與轉(zhuǎn)讓協(xié)議
- 2025年針對(duì)普通員工的競(jìng)業(yè)限制合同范本
- 二零二五年度智慧農(nóng)業(yè)版電路租用與物聯(lián)網(wǎng)應(yīng)用合同
- 2025年度蔬菜肉類市場(chǎng)風(fēng)險(xiǎn)預(yù)警與應(yīng)對(duì)合同
- 二零二五年度石灰粉產(chǎn)品售后服務(wù)與客戶關(guān)系管理合同
- 二零二五年度2025年度水利工程土方挖掘承包協(xié)議
- 2025版企業(yè)職工養(yǎng)老保險(xiǎn)補(bǔ)貼專項(xiàng)資金分配與管理合同3篇
- 《院外急救ywjj》課件
- 三角形與全等三角形復(fù)習(xí)教案 人教版
- 2024年1月高考適應(yīng)性測(cè)試“九省聯(lián)考”英語(yǔ) 試題(學(xué)生版+解析版)
- 《朝天子·詠喇叭-王磐》核心素養(yǎng)目標(biāo)教學(xué)設(shè)計(jì)、教材分析與教學(xué)反思-2023-2024學(xué)年初中語(yǔ)文統(tǒng)編版
- 成長(zhǎng)小說(shuō)智慧樹(shù)知到期末考試答案2024年
- 紅色革命故事《王二小的故事》
- 海洋工程用高性能建筑鋼材的研發(fā)
- 英語(yǔ)48個(gè)國(guó)際音標(biāo)課件(單詞帶聲、附有聲國(guó)際音標(biāo)圖)
- GB/T 6892-2023一般工業(yè)用鋁及鋁合金擠壓型材
- 冷庫(kù)安全管理制度
- 2023同等學(xué)力申碩統(tǒng)考英語(yǔ)考試真題
- 家具安裝工培訓(xùn)教案優(yōu)質(zhì)資料
評(píng)論
0/150
提交評(píng)論