




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL語言語言華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL語言第一講、VHDL簡介及其結(jié)構(gòu)第二講、VHDL中的對象、操作符、數(shù)據(jù)類型第三講、VHDL中的控制語句及模塊華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院第一講、VHDL簡介及其結(jié)構(gòu) 通過本章的學(xué)習(xí)您可以了解以下幾點(diǎn)1、VHDL 的基本概念2、VHDL的基本結(jié)構(gòu)3、VHDL的設(shè)計初步華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院 VHDL- VHSIC Hardware Decription Language
2、 其中VHSIC- Very High Speed Integrated Circuit電子設(shè)計自動化的關(guān)鍵技術(shù)之一是要求用形式化方法來描述硬件系統(tǒng)。VHDL適應(yīng)了這種要求。什么是VHDL華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL和Verilog HDL Verilog HDL: 另一種硬件描述語言,由Verilog 公司開發(fā),1995年成為IEEE標(biāo)準(zhǔn)。 優(yōu)點(diǎ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ī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VH
3、DL的發(fā)展歷史 起源于八十年代,由美國國防部開發(fā) 兩個標(biāo)準(zhǔn): 1、1987年的 IEEE 1076(VHDL87) 2、1993年進(jìn)行了修正(VHDL93)華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL在電子系統(tǒng)設(shè)計中的應(yīng)用電子系統(tǒng)的設(shè)計模塊電子系統(tǒng)的設(shè)計模塊華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL在電子系統(tǒng)設(shè)計中的應(yīng)用 電子系統(tǒng)設(shè)計的描述等級1、行為級2、RTL級(Register transfer level)3、邏輯門級4、版圖級 用VHDL可以描述以上四個等級華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHD
4、L在電子系統(tǒng)設(shè)計中的應(yīng)用系統(tǒng)設(shè)計的描述等級-制版級華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL在電子系統(tǒng)設(shè)計中的應(yīng)用系統(tǒng)設(shè)計的描述等級-邏輯門級華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL在電子系統(tǒng)設(shè)計中的應(yīng)用系統(tǒng)設(shè)計的描述等級-RTL級華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL在電子系統(tǒng)設(shè)計中的應(yīng)用系統(tǒng)設(shè)計的描述等級-行為級華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(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(過程) function(函數(shù))華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(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ī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL結(jié)構(gòu)要點(diǎn)1、ENTITY(實(shí)體)格式: Entity 實(shí)體名 IS 類屬參數(shù)說明 端口說明 End Entity; 其中端口說明格式為: PORT(端口名1,端口名N:方向:類型) 其中方向有: IN , OUT, INOUT, BUFFER, LINKAGE 華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL結(jié)構(gòu)要點(diǎn) 注意注意 簡單地說簡單地說 In 不可以出現(xiàn)在= 或 : = 的左邊 out不可以出現(xiàn)在= 或 : = 的右邊 buffer可以出現(xiàn)在= 或 : = 的兩邊In 信號只能被引用,不能被
8、賦值out 信號只能被賦值,不能被引用buffer 信號可以被引用,也可以被賦值華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL結(jié)構(gòu)要點(diǎn) 例子 (HalfAdd) 其內(nèi)部結(jié)構(gòu)將由Architecture來描述華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL結(jié)構(gòu)要點(diǎn)2、Arcthitecture(構(gòu)造體) 格式: Arcthitecture 構(gòu)造體名 of 實(shí)體名 is 定義語句 內(nèi)部信號、常數(shù)、元件、數(shù)據(jù)類型、函數(shù)等的定義 begin 并行處理語句和block、process、function、procedure end 構(gòu)造體名; 華南理工大學(xué)
9、計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL結(jié)構(gòu)要點(diǎn) 例子(HalfAdd)華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL結(jié)構(gòu)要點(diǎn) 例子 (FullAdd) (學(xué)習(xí)如何調(diào)用現(xiàn)有模塊) 華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL結(jié)構(gòu)要點(diǎn) 實(shí)例(FullAdd)-entity 華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL結(jié)構(gòu)要點(diǎn) 實(shí)例(FullAdd)-architecture華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程
10、學(xué)院VHDL中的設(shè)計單元 除了entity(實(shí)體)和architecture(構(gòu)造體)外還有另外三個可以獨(dú)立進(jìn)行編譯的設(shè)計單元 Package(包集合)屬于庫結(jié)構(gòu)的一個層次,存放信號定義、常數(shù)定義、數(shù)據(jù)類型、元件語句、函數(shù)定義和過程定義。 Package Body 具有獨(dú)立對端口具有獨(dú)立對端口(port)的的package configuration(配置)描述層與層之間的連接關(guān)系以及實(shí)體與構(gòu)造體之間關(guān)系。華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL中的設(shè)計單元 VHDL中的設(shè)計單元(可以獨(dú)立編譯)華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院Li
11、brary 庫的概念 STD庫 -VHDL的標(biāo)準(zhǔn)庫 IEEE庫 - VHDL的標(biāo)準(zhǔn)庫的擴(kuò)展 面向ASIC的庫 -不同的工藝 不同公司自定義的庫 普通用戶自己的庫庫:庫: 數(shù)據(jù)的集合。內(nèi)含各類包定義、實(shí)體、構(gòu)造體等華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院Library 庫的概念 用戶自己的庫 當(dāng)您的VHDL文件被編譯后,編譯的結(jié)果儲存在特定的目錄下,這個目錄的邏輯名稱即Library,此目錄下的內(nèi)容亦即是這個Library的內(nèi)容。華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院Package 包的概念 Package(包)華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華
12、南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL中的結(jié)構(gòu)關(guān)系結(jié)構(gòu)關(guān)系華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL簡介及其結(jié)構(gòu) 本講結(jié)束 下一講: VHDL中的對象、操作符、數(shù)據(jù)類型華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院第二講、VHDL對象、操作符、數(shù)據(jù)類型 通過本課的學(xué)習(xí)您可以了解以下幾點(diǎn)1、VHDL 的基本類型2、如何在VHDL中定義類型3、VHDL 的信號定義4、如何在VHDL中對信號賦值5、VHDL中的操作符華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL對象、操作符、數(shù)據(jù)類型 對象object 對客觀實(shí)體的抽象和概括
13、VHDL中的對象有:1、Constant(常量)在程序中不可以被賦值 2、Variable(變量)在程序中可以被賦值(用“: =”),賦值后立即變化為新值。 3、Signal(信號)在程序中可以被賦值(用“=”) ,但不立即更新,當(dāng)進(jìn)程掛起后,才開始更新。 華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL對象、操作符、數(shù)據(jù)類型 VHDL中的對象使用: variable x,y:integer;-定義了整數(shù)型的變量對象x,y constant Vcc:real;-定義了實(shí)數(shù)型的常量對象Vcc signal clk,reset:bit;-定義了位類型的信號對象clk,res
14、et華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL中的對象使用 注意1、variable只能定義在process和subprogram(包括function和procedure)中,不可定以在其外部。2、signal不能定義在process和subprogram(包括function和procedure)中,只可定以在其外部。華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL對象、操作符、數(shù)據(jù)類型 對象的屬性 類似于其它面向?qū)ο蟮木幊陶Z言如VB、VC、DELPHI 用法格式用法格式:對象對象 屬性屬性 例例 子:子:clkevent -表明信號c
15、lk的event屬性 常用的屬性: Signal 對象的常用屬性有: event : 返回boolean值,信號發(fā)生變化時返回true last_value:返回信號發(fā)生此次變化前的值 last_event:返回上一次信號發(fā)生變化到現(xiàn)在變化的間隔時間 華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL對象、操作符、數(shù)據(jù)類型 Signal 對象的常用屬性有:接上頁delayed(時延值): 使信號產(chǎn)生固定時間的延時并返回stable(時延值): 返回boolean, 信號在規(guī)定時間內(nèi)沒有變化返回truetransaction: 返回bit類型,信號每發(fā)生一次變化,返回值翻轉(zhuǎn)
16、一次例子:A=Bdelayed(10 ns); -B延時10ns后賦給A; if(BStable(10 ns)); -判斷B在10ns中是否發(fā)生變化華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL對象、操作符、數(shù)據(jù)類型信號的event和last_value屬性經(jīng)常用來確定信號的邊沿 屬性應(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ī)科學(xué)與工程學(xué)
17、院華南理工大學(xué)計算機(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ī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL 的基本類型9、natural 自
18、然數(shù) 和 positive 正整數(shù)10、senverity level (常和assert語句配合使用) 包含有:note、warning、error、failure 以上十種類型是VHDL中的標(biāo)準(zhǔn)類型,在編程中可以直接使用。使用這十種以外的類型,需要自行定義或指明所引用的Library(庫)和Package(包)集合華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL 的基本類型 例子一 華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL 的基本類型和賦值 例子二華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL 的基本類型和賦
19、值 例子三 例子中信號Z有兩個驅(qū)動A和B;Z必須定義為一種新的數(shù)據(jù)類型,否則Z將無法決定取值,語句視為非法。華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL 的基本類型和賦值 例子四華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL 的基本類型和賦值 例子五要點(diǎn):賦值語句中的方向應(yīng)和聲明中的方向一樣華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL 的基本類型和賦值 連接操作符-使用&華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL 的基本類型和賦值 集合操作-使用()華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華
20、南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL 的基本類型和賦值 集合操作-采用序號華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL 的基本類型和賦值 集合操作-采用others華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(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、時間類型、時間類型time、文件類型文件類型file、存取類型、存取類型access華南理工
21、大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(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ī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(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ī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(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ī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院在VHDL中定義自己的類型 時間類型time 格式 type 數(shù)據(jù)類型名 is 范圍 units 基本單位; 單位; end uni
23、ts華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院在VHDL中定義自己的類型 時間類型例子 type time is range -1E18 to 1E18 units us; ms=1000 us; sec=1000 ms; min=60 sec;end units注意注意:引用時間時,有的編譯器要求量量 與單位單位之間 應(yīng)有一個空格如:1 ns;不能寫為1ns;華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院在VHDL中定義自己的類型 紀(jì)錄類型record 格式 type 數(shù)據(jù)類型名 is record 元素名:數(shù)據(jù)類型名; 元素名:數(shù)據(jù)類型名; . en
24、d record;華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(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ī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院IEEE 1164中定義的類型 std_ulogic 是對位(
25、bit)類型的擴(kuò)展,只允許一個驅(qū)動源 華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院IEEE 1164中定義的類型 Std_logic同std_ulogic 一樣有九個狀態(tài),允許一個或多個驅(qū)動源華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院IEEE 1164中定義的類型 Std_unlogic_vector和std_logic_vector華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院IEEE 1164中定義的類型Std_unlogic、std_ulogic_vector std_logic_vector和 std_unlogic_vect
26、or 類型均定義在package(包) standard_logic_1164中在使用這四種類型時應(yīng)加以說明,例如:library ieee; use ieee.std_logic_1164.all; 注: standard_logic_1164位于IEEE庫中華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院類型使用例子 例子一(聲明使用的庫和包)華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院類型使用例子 例子二 std_ulogic 和std_logic的區(qū)別華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院類型使用例子 練習(xí)一: 下面那一個是
27、正確的3華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL中的操作符 分類 1、邏輯操作符 2、關(guān)系操作符 3、數(shù)學(xué)運(yùn)算符華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL中的操作符1、邏輯操作符有:華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL中的操作符 邏輯操作符的應(yīng)用類型華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL中的操作符 邏輯操作符的應(yīng)用例子華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL中的操作符2、關(guān)系運(yùn)算符有華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)
28、科學(xué)與工程學(xué)院VHDL中的操作符 關(guān)系運(yùn)算符的應(yīng)用ARRAY(數(shù)組)沒有數(shù)字概念,數(shù)組“111”不等于7華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL中的操作符3、數(shù)學(xué)運(yùn)算符注意注意:上述運(yùn)算符應(yīng)用于 integer,real,time 類型,不能用于vector(如果希望用于vector,可以使用庫IEEE的std_logic_unsigned包,它對算術(shù)運(yùn)算符進(jìn)行了擴(kuò)展)華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(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ī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL中的操作符 本講結(jié)束 下一講: VHDL中的控制語句及模塊華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院第三講VHDL中的控制語句及模塊 通過本講您將會學(xué)到1、Block的編寫2、Process的編寫3、function 和 procedure的編寫4、VHDL中的流程控制語句的書寫華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL中的控制語句及模塊 回顧第一講的內(nèi)容 Entity(實(shí)體)Architecture 1(構(gòu)
30、造體)Architecture N process(進(jìn)程結(jié)構(gòu)) block(塊結(jié)構(gòu)) subprograms(子程序) procedure(過程) function(函數(shù))華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL中的控制語句及模塊 基本概念1、并行處理(concurrent) 語句的執(zhí)行與書寫順序無關(guān),并行塊內(nèi)的語句是同時執(zhí)行的2、順序處理(sequential) 語句的執(zhí)行按書寫的先后次序,從前到后順序執(zhí)行。這種方式和其他普通編程語言(如c,pascal)是一樣的。華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL中的控制語句及模塊 Ar
31、chitecture 中的語句及子模塊之間是并行處理的 子模塊block中的語句是并行處理的 子模塊process中的語句是順序處理的 子模塊subprogram中的function和procedure是順序處理的華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院VHDL中的architecture Arcthitecture(構(gòu)造體)的格式為:(第一講) Arcthitecture 構(gòu)造體名 of 實(shí)體名 is 定義語句 內(nèi)部信號、常數(shù)、元件、數(shù)據(jù)類型、函數(shù)等的定義 begin 并行處理語句和block、process、function、procedure end 構(gòu)造體名;
32、華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院Architecture中的Block Block 格式 塊名: BLOCK 定義語句 begin 并行處理語句concurrent statement end block 塊名華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院Architecture中的Block 條件Block 格式 塊名: BLOCK (布爾表達(dá)式) 定義語句 begin 并行處理語句concurrent statement 信號= guarded 信號,延時 ; end block 塊名華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(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ī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院Architecture中的process Process 格式進(jìn)程名: process (觸發(fā)信號列表) 定義語句; begin 串行處理語句sequential statement; end
34、process華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(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ī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院 process例子-值的更新分析:當(dāng)A、B、C、D中任一信號發(fā)生變化時,進(jìn)程將開始執(zhí)行,當(dāng)執(zhí)行 Z = A and B 后, Z 的
35、值不會立即變化 ;同理執(zhí)行 Z = C and D 后Z 的值也不會立即變化。當(dāng)執(zhí)行end process后, Z 的值才開始更新,同時系統(tǒng)掛起開始等待敏感信號。華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院Architecture中的process Process中敏感信號列表的普遍原則是: 在process中,其值被引用的信號信號應(yīng)當(dāng)出現(xiàn)在敏感信號列表中例子例子;二選一的選擇器:A、B為輸入信號;SEL為選路信號;Z為輸出信號;華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院 不符合設(shè)計要求華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院A
36、rchitecture中的subprogram Function(函數(shù)) 格式: function 函數(shù)名(參數(shù)1,參數(shù)2 .) 定義語句 return 數(shù)據(jù)類型名 is 定義語句 begin 順序執(zhí)行語句 return 返回變量名 end 函數(shù)名 華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(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ù)不用說明方向(因為只有一種方向in)華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院Architecture中的subprogram procedure(過程) 格式: procedure 過程名(參數(shù)1,參數(shù)2 .)is 定義語句 begin 順序執(zhí)行語句 end 過程名 華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(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ī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院順序執(zhí)行語句sequential statement Wait語句 assert語句 If 語句 case語句 for loop語句 while 語句華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院順序執(zhí)行語句sequential statement Wait語句 書寫格式 wait;-無限等待 wait on 信號列表 -等待信號變化 wait until 條件; -等待條件滿足 wait for 時間值; -等待時間到 功能 wait語句使系統(tǒng)暫時掛起 (等
39、同于end process),此時,信號值開始更新。條件滿足后,系統(tǒng)將繼續(xù)運(yùn)行 。華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院順序執(zhí)行語句sequential statement Wait語句例子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 錯誤錯誤 如果process中已有敏感信號 wait on a,b; 進(jìn)程中不能使用wait 語句 y=a and b; end process華南理工大學(xué)
40、計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院順序執(zhí)行語句sequential statement Wait語句例子如果process中沒有敏感信號列表,其進(jìn)程中也沒有wait 語句,則process中的程序代碼循環(huán)執(zhí)行process begin clk 順序處理語句 when 條件表達(dá)式= 順序處理語句 . when others= 順序處理語句end case 原則原則 : 1、完全性完全性:表達(dá)式所有可能的值都必須說明,可以用 others 2、唯一性唯一性:相同表達(dá)式的值只能說明一次華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院順序執(zhí)行語句sequential
41、statement Case 語句例子,條件表達(dá)式可以有多種形式華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院順序執(zhí)行語句sequential statement Case 語句例子華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院 順序執(zhí)行語句sequential statement For loop 語句格式For 循環(huán)變量 in 范圍 loop順序處理語句end loop注意注意 : 循環(huán)變量不需要定義(聲明);例子中 i 不需要定義For loop 語句例子For i in 1 to 10 loop sum=sum+1;end loop華南理工大學(xué)計算機(jī)
42、科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院順序執(zhí)行語句sequential statement 在loop語句中可以用next來跳出本次本次 循環(huán),也可以用exit 來結(jié)束整個循環(huán)狀態(tài) next 格式格式:next 標(biāo)號 when 條件; exit 格式:格式: exit 標(biā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ī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院
43、順序執(zhí)行語句sequential statement While 語句格式while 條件 loop順序處理語句end loopWhile i10 loop sum=sum+1; i=i+1;end loopWhile 語句例子華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院并行處理語句concurrent statement1、信號賦值操作2、帶條件的信號賦值語句3、帶選擇的信號賦值語句華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院并行處理語句concurrent statement 信號賦值操作 符號“=”進(jìn)行信號賦值操作的, 它可以用在順序執(zhí)行語句中,
44、也可以用在并行處理語句中注意注意 1、用在并行處理語句中時,符號=右邊的值是此條語句的敏感信號,即符號即符號=右邊的值發(fā)生變化就會重新右邊的值發(fā)生變化就會重新激發(fā)此條賦值語句,也即符號激發(fā)此條賦值語句,也即符號=右邊的值不變化時,右邊的值不變化時,此條賦值語句就不會執(zhí)行。如果符號此條賦值語句就不會執(zhí)行。如果符號=右邊是常數(shù)則右邊是常數(shù)則賦值語句一直執(zhí)行。賦值語句一直執(zhí)行。 2、用在順序執(zhí)行語句中時,沒有以上說法。華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院并行處理語句concurrent statement 賦值語句例子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,又過 10 ns后 0賦給了clr,此時clr 以前的值1并沒有清掉,clr將出現(xiàn)不穩(wěn)定狀態(tài)程序執(zhí)行10 ns后clr 為1,又過 20 ns后 clr的值變?yōu)?,華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院并行處理語句concurrent statement 條件信號帶入語句格式 目的信號量 = 表達(dá)式1 when 條件1 else 表達(dá)式2 when 條件2 else 表達(dá)式3 when 條件3 . else 表達(dá)式表達(dá)式4注意:注意:最后的Else 項是必須的; 滿足完全性和唯一性完全性和唯一性華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院華南理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院并行處理語句concurrent statement 條件信號帶入語句例子Block begin sel=b & a
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 宿州學(xué)院《烏克蘭語語法與寫作》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州南方學(xué)院《軍訓(xùn)(含軍事理論教育)》2023-2024學(xué)年第二學(xué)期期末試卷
- 正德職業(yè)技術(shù)學(xué)院《人工智能基礎(chǔ)與應(yīng)用A》2023-2024學(xué)年第二學(xué)期期末試卷
- 青海交通職業(yè)技術(shù)學(xué)院《寫作(二)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024-2025學(xué)年陜西省安康市高新中學(xué)高二上學(xué)期12月月考?xì)v史試卷
- 周口職業(yè)技術(shù)學(xué)院《EDA技術(shù)及應(yīng)用A》2023-2024學(xué)年第二學(xué)期期末試卷
- 延邊大學(xué)《生態(tài)毒理學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津商務(wù)職業(yè)學(xué)院《物理有機(jī)化學(xué)選論》2023-2024學(xué)年第二學(xué)期期末試卷
- 黃河交通學(xué)院《藥學(xué)分子生物學(xué)實(shí)驗》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年貴州省安全員A證考試題庫
- 《兒童胃食管反流病》課件
- 閱讀理解:如何找文章線索 課件
- 工程分包商履約情況與進(jìn)度關(guān)聯(lián)分析
- 英語倒裝句課件(全面詳細(xì))
- 培訓(xùn)業(yè)務(wù)的競爭對手分析與對策
- 產(chǎn)品設(shè)計思維 課件 第3-5章 產(chǎn)品設(shè)計的問題思維、產(chǎn)品設(shè)計的功能思維、產(chǎn)品設(shè)計的形式思維
- 餐券模板完整
- 英語48個國際音標(biāo)課件(單詞帶聲、附有聲國際音標(biāo)圖)
- 門機(jī)司機(jī)室更換施工方案
- 預(yù)制裝配式鋼筋混凝土排水檢查井標(biāo)準(zhǔn)圖集
- 評估胎兒健康的技術(shù)
評論
0/150
提交評論