版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
引例牛
頭VHDL原理軟件編程器 VHDL言非常高速硬件描述語言,也就是一種硬件(數(shù)字電路)設計.規(guī)范化,并對設計進行模擬驗證與綜合優(yōu)化,使分析計高度 支持VHDL語言的軟件 由軟件設計到硬件實現(xiàn)之間CPLD (可編程器件存(文件名為實體名,存(文件名為實體名,后綴為在Max+PlusII編寫VHDL程件管腳安軟件仿編管腳安軟件仿編1212Process3When-4With-Select-56For-12If-Else3Case-When45Waituntil678編輸 信
常用數(shù)字電路回
輸 信8X 8X1000000011101000000110001000001010001000010000001000011000001000100000001000100000001000注:EN為1時 工舉參參看EWB輔助電譯111000110111000110101101110011111 譯S1××111100S1××11110001110001110101010110110111 A1 S3S2 Y7VHDL與數(shù)字電路引 VHDL簡VHDL是VeryHighspeedIntegratedHardwareDescriptionLanguage(非常高速集成電路硬 第一VHDL的程序結構和軟件VHDL程序的基本結軟件操作—Max+plusⅡ的操第一章VHDLVHDL程序 輯操作和元件等。主要是在設計或實體中使用格式:LIBRARYUSE格式 型 ; 使用格式 實體 在Max+plus4VHDL語言,它們分是l dE庫舉例 設計一個與門電A001A0011B0101Y0001&YB邏輯符 真值實體:
LibraryEntityand2isPort(A:
B
Y:End結構體:ArchitectureNaofand2
Y<=’0’a=’0’andB=A=’1’andB=whenA=’0’andB=
else’0’whenelse;OUT;INOUT;BFEndArchitectureNbofand2isc<=’1’whena=’1’andb=End以上結構體表達何種軟件操作—Max+plusⅡ的操建立和編寫一個VHDL語言的工程VHDL程序的編VHDL語言程序的仿的時序分安 腳1-2軟件操作—Max+plus 公司自行設計的一種件工具,其全稱為MultipleArrayMatrixand LogicUserSystem。它具有原理圖輸入和文本輸入(采用 如何編寫VHDL程序(使用Text 如何進 如何安 n如 程序 建立和編寫一個VHDL語言的工程文首先啟動Max+plusⅡ系統(tǒng),啟動后系統(tǒng)進入主菜單畫面,在主菜上有5個選項,分別是:Max+plusⅡ、File、Assign、Options和Help 存盤。(a我們編輯的VHDL文件擴展名為vhd;b 件名必須和所定義的實體名相同。c文件存盤 不應 以與門的設計為例講述具體過VHDL程序的編若文件沒有打開,需首先打開要編譯的VHDL文件將目前的文件設置成工程文件;點擊File選項,光標移到子菜單Project項停留幾秒鐘,屏幕上會出現(xiàn)下一級菜單,點擊SetCurrent打開編譯器;點擊主菜單MAX+plusⅡ/Compiler選項,屏幕上就出現(xiàn)編框 開 開始編譯;完成了上述編譯前的準備及必要的設置工作,點擊編中的Start按鈕,編譯即開始以與門的設計為例講述具體過VHDL語言程序的仿仿真是為了驗證我們所編寫的VHDL程序的功能是否正確首先生成仿真波形文確定仿真持續(xù)時間(File/EndTime)選則輸入輸出端口編輯輸入信號波信號波形編輯完成后,需存盤為仿真使用,文件名采取默認方式即(2)打開仿真器;點擊主菜單MAX+plusⅡ\Simulator項,此時彈出Simulator 形文件(點擊右下角的OpenSCF按鈕)即可以顯示仿真結(以與門的設計為例講述具體過程的時序分仿真結果從波形上來看,很難給出定量的信號延遲關系,這一點時序分析卻直觀地用表來進行顯選擇1 需要再編譯一打開時序仿真器 (點擊
yzer選項最后點擊Start按鈕后,時序分析器開始啟動(以與門的設計為例講述具體過程安 腳為了將程 ,需安 腳位(1)打 腳位設置器; n將實體定義的端口名字 的管腳進行具體對應最后再進行一次編第二VHDL語言要VHDL語言要素包括
變數(shù)據(jù)對象信常數(shù)據(jù)類操作運算操 §2-2 §2-2-1邏輯數(shù)據(jù)類布爾代數(shù)(Boolean)定義位置:在std庫的standardFASETRE位定義位:在std庫的standard程包中進定義。信號形:0,1 (低電,高位) 輸 信
輸 信88X1000000011101000000110001000001010001000010000001000011000001000100000001000100000001000位數(shù)組類型(定義位置:在std庫的standard程序包中進行 to X 輸輸 信信 標準邏輯型(Std_Logic定義位置:在IEEE庫的stdlogic1164程序包中進行義可以看出,這個“標準邏輯信號定義,比位即bit”信號對于數(shù)字邏輯電路的VHDL義,通常都是采用這個“標準邏輯”使用這類數(shù)據(jù)信號,必須包含下面兩 語句 標準邏輯數(shù)組類型(Std_Logic_vector定義位置:在ieee庫的std_logic_1164程序包中進行定Bit_Vector與Std_Logic_vector的區(qū)別在于的每一位前者為BIT型(0,1)后者為Std_Logic§2-2- 數(shù)值數(shù)據(jù)整數(shù)定義位置:在std庫的standard程序包中進行定義。即數(shù)值范圍為-231~231無符號(Unsigned)和有符號(Signed)類定義位置:有符號(Signed)和無符號(Unsigned)邏輯信號定義在庫IEEE的程序包std_logic_arith中。無符號類型數(shù)據(jù)代表無符號數(shù)值,即代表0或正數(shù);最左邊的為 。如:Unsigned(“0110”)代表+6Unsigned(“1010”)代+有符號類型數(shù)據(jù)代表有符號數(shù)值,即可以是0,負數(shù);編libraryuseieee.std_logic_1164.all;useieee.std_logic_arith.all;entitydataisport(a,b:inunsigned(3downtoc:outstd_logic);enddata;architecturem1ofdatac<='1'whena<belse'0';endm1;
0);--相應改為a,b:inuse列舉a、b具體 當定義成無符號數(shù)據(jù)類型時,若a<=”1000”,b=’0001’,即a=8,b=1則結當定義成有符號數(shù)據(jù)類型時,若a<=”1000”,b=’0001’,a=-8,b=1c=’1’另外:還有其他positive,natural,real數(shù)據(jù)類型用據(jù)類型等。這些數(shù)據(jù)類型各有特點,以后用到再行講解
凡是可以被賦予一個值的對象稱為數(shù)據(jù)對象,例:數(shù)數(shù)據(jù)對象值的數(shù)據(jù)對象數(shù)據(jù)對象類信信號數(shù)據(jù)對象,代表電路內(nèi)部傳輸線路線路,其在元件之間起信號數(shù)據(jù)對象的定義格式為Signal信號名:數(shù)據(jù)類型[:=設定值];SignalA:Std_logic_vector(3Downto0)信號賦值語句的語法格式為目標信號名<=表達式(設定值A 注意:由于MaxplusII系統(tǒng)往往會忽略信號對象定義時所賦初始值,建議在結變它用于對中間數(shù)據(jù)的臨 ,并不一定代表電路的某一組件變量數(shù)據(jù)對象的定義格式為:Variable變量名:數(shù)據(jù)類型[:=設如:Variablea:integer變量賦值語句的語法格式為:目標變量名 表達式(設定值如:a注意:由于MAXPLUSII系統(tǒng)往往會忽略變量對象定義時所構體中用賦值語句完成對變量的賦常如:ConstantD1
:=表0):=
ConstantD2:Std_Logic_Vector(D1Down注意:常數(shù)數(shù)據(jù)對象定義的同時進行賦值。賦值符號為
信號、變量、常 A:VariableA:std_logic_vector(7downto0); A:integer:=6;A 執(zhí)行結果為x<=cxorb,y<=cb=1 =1 y執(zhí)行結果為x<=cxora,y<=cxor=1=1 yab LibraryLibraryUseUseSignalA:std_logic_vector(1to8)SignalB:std_logicSignalC:integer VHDL操作符:邏輯、算術、符號、關系操作一、分類及功輸 運輸AB00001101010110101001101011110001二用操作數(shù)的數(shù)據(jù)類型必須符合操作符的要能進行邏輯運算的數(shù)據(jù)類型:bit、bit_vector、std_logic、例Signala,b,y:std_logic;Signalc,d,z:integer;例y<=aandz<=cand 表達式中有多個運算符時一般要加括表達式中有多個運算符時一般要加括號,但and、or、xnor除例Signala,b,c,d:std_logic_vector(3downto例Signale,f,g,h:std_logic_vector(1downtod<=aandbandc;d<=aorborc;d<=axnorbxnorc;h<=enorfnorg; h<=(enorf)norg;運算符兩側的操作數(shù)要對d<=(enorf)nor LibraryUSE litiIS INe:outENDliti AA1OFlitiSignaltmp:1& 1&e<=(aandb)ortmp tmp<=cxord ENDAA1 =(等于),/=(不等于),<(小于),>(大于<=(小于等于,和信號的賦值符號相同),>=(大于等于)注等于和不等于的操作對象可以是任何數(shù)據(jù)類型構成的操作。其它關系運算符對數(shù)據(jù)類型有一定的限制。(整數(shù),枚)3.=、/=在實現(xiàn)硬件電路時比其它的關系運算符 的利率要ENTITYmy1PORT(a,b:inbit_vector(0to3)m:outboolean);ENDmy1 a1ofmy1m<=(a=b);ENDa1;
ENTITYmy1PORT(a,b:inbit_vector(0tom:outboolean);ENDmy1; a1ofm<=(a>=b);ENDa1;以上兩程序最終所實現(xiàn)的硬件電路 一、分類及二.運用求和運算VHDL中的求和運算符包括加減運算和并置運算,操數(shù)的數(shù)據(jù)類型為整例 Variablea,b,c,d,e,f:integerrange0toa:=b+c;d:=e–f例a:std_logic_vector(4to例a:std_logic_vector(4tob:std_logic_vector(2toc:std_logic_vector(1to移位運移位運算所對應的數(shù)據(jù)類型為一維數(shù)組,其中的元素維bit、例Variablea1:std_logic_vector(3toa1:=a1SLL1a1SLL2
a1=a1=a1ROL1 a1=其略操作符復習回顧And(與),Or(或),Not(非),Nand(與非Nor(或非),Xor(異或),Xnor(同或)輸 運輸AB00001101010110101001101011110001能進行邏輯運算的數(shù)據(jù)類型:bit、bit_vectorstd_logic、=(等于),/=(不等于),<(小于),>(大于小于等于,和信號的賦值符號相同),>=(大于等于)等于和不等于的操作對象可以是任何數(shù)據(jù)類型構成的操作數(shù)其它關系運算符對數(shù)據(jù)類型有一定的限制。(整數(shù),枚舉型求和運算符、求積運算符、符號運算符、混合運算符、移位運算VHDL中的求和運算符包括加減運算和并置運算,操作數(shù)的數(shù)據(jù)為整型。Signala:std_logic_vector(4downto0); Signalb:std_logic_vector(2downto0); Signalc:ba<=bVariableA:std_logic_vector(6downto1010110001A:= 10110110001ASLL11011000101100010101100011VHDL一、順序語句概順序語句的特點是,每一條順序執(zhí)行順序是與它們的書寫順序基本一致的。順序語句只能出現(xiàn)在進程(Process)和子程序中,子程序包括函數(shù)(Function)和過程(Procedure)。二、種進程語賦值語流程控制語等待語
子程序調(diào)用語返回語空操作語進程語句(Process語句﹠Y2A﹠﹠﹠﹠ ﹠﹠﹠ 0
﹠ ﹠
ABC輸入信號發(fā)生變化時,電路啟動進行計語法格[進程標Process[(敏感信號--變順序語句 Ifsel=1thenendIfsel=1endEnd區(qū)區(qū)別在第二個進程中,無論什么情況,f=x1只有信號sel/=1時,f=x1。因此,語句的排列順序很重要,賦值賦值語句包括變量賦值語句和信號賦值語句,前者的賦值是立刻發(fā)生的后者的賦值發(fā)生在一個進程結束的時刻,并延信號和變量賦變量賦值目標:=賦值注信號賦值目<=賦值注 “ 0111 Signal “ 0111 Signals1,s2:std_logicSignalsec:std_logic_vector(0toProcess(s1,Variablev1,v2:v1:=v2:=‘1’s1<=s2<=sec(0)<=sec(1)<=sec(2)<=s1;sec(3)<=s2;v1:=‘0’;v2:=s2<=sec(4)<=v1;sec(5)<=v2;sec(6)<=s1;sec(7)<=s2;END信號和標識符賦值目Variablea,b:Signalc:std_logic_vector(1to4);a:=‘1’;b:=c<=“1100”;c(3)注注一位值用單引號,多位值用雙引段賦
Signalc:std_logic_vector(1to4);c(1to2)<=‘10’;c(1to4)塊賦位置關Signala,b,c,d位置關Signals:std_logic_vector(1to4);s<=“0100”;(a,b,c,d)<=sVariablee,f:Variableg:std_logic_vector(1toVariableh:std_logic_vector(1toe:=‘0’f:=‘1’g:=h:=(e=>3,f=>4,g(1)=>2, 結果 流程控制IF語語法格式IfexpressionThenElsifexpressionThenElsifThenEnd例IfIfA=”00”elsifelsifA=”10”四選一四選一據(jù)選擇D0D1 Y00011011endend一、第一種IF語格格IF條件句順序語 IFIF(a>b out<=‘1’;ENDIF;IFIF條件句順序語順序語 IF(a>b out<=‘1’;END三、第三種IF語語法格式If件句順序語句Elsif件句順序語句Elsif條件語句順序語句順序語句End例題例題Signala,b,c,p1,p2,z:Z00bZ00ba011011zELSIF(p2=‘0’)z<=z<=c; 例題2:8線-3線優(yōu)111111 01110011101011001011000011000 00110001001000000010100000110100001001000000010100000110100000001000000000010000000 IEEEUSEENTITYcoderPORT(I:INSTD_LOGIC_VECTOR(0TO編Y:OUTSTD_LOGIC_VECTOR(1TOENDcoder 功能:設計元件外 a1orcoder1111111101110IF 01110ELSIF(I(6)=‘1’) 101100ELSIF(I(5)=‘1’) 1011000011000ELSIF(I(4)=‘1’) 001100011010000ELSIF(I(3)=‘1’) 11010000010100000ELSIF(I(2)=‘1’) 0101000001001000000ELSIF(I(1)=‘1’) 1001000000 00010000000END00010000000END功能:描述輸入和輸出之間的邏輯練習題:設計一個3線-8元件元件外輸入輸0000000000100100000010010000001000110000100010000010000101001000001100100000011110000000 IEEEUSEIEEE.STD_LOGIC_1164.ALL; ENTITYcoder PORT(A:INSTD_LOGIC_VECTOR(1TO Y:OUTSTD_LOGIC_VECTOR(7DOWNTO ENDcoder功功能0000000000100100000010010000001000110000100010000010000101001000001100100000011110000000IFA=“000” ELSIFA=“001”ELSIFA=“010”ELSIFA=“011”ELSIFA=“100”ELSIFA=“101”ELSIFA=“110” ENDEND功功能:描述輸入和輸出之間的邏輯Case-When語作作用:根據(jù)條件進行相應的賦值操語法格Case表達式順序語
選擇When擇值順序語…CASE語句根據(jù)CASE語句根據(jù)滿足的條件直接選擇多項順序語句的一項執(zhí)=>不是信號賦值符號,其意例題例題1:用CASEzzY00a011011MUX41zMUX41z USE mux41PORT(s1,s2:ina,,b,c,d:inz:outEND
activOFmux41ISSIGNALs:std_logic_vector(1downto0);S<=s1&S<=s1&CASECASEsWHEN“00”=>WHEN“01”=>WHEN“10”=>WHEN“11”=>WHENWHENOTHERS=>ENDENDEND activOFmux41ISSIGNALs:std_logic_vector(1downto0);S<=s1&PROCESSIFs=“00”thena=>z;ELSIFs=“10”thenc=>z;ELSEd=>z;ENDENDARCHITECTURE
activOFmux41ISSIGNALs:std_logic_vector(1downto0);S<=s1&CASEsWHEN“00”=>z<=a;WHEN“01”=>z<=b;WHEN“10”=>z<=c;WHEN“11”=>z<=d;WHENOTHERS=>z<=‘x’;ENDCASE;ENDEND例題 SEL: RANGE0例題 SEL 0=>Z1WHEN13=>Z2WHEN4TO72=>WHENOTHERSIFCASE比IF語句可實現(xiàn)優(yōu)先級,CASEAAAAAY000010001000100001110100001011011010111010000100111010110110
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度車輛使用安全責任追究與賠償協(xié)議4篇
- 2025年度交通基礎設施建設拆遷合同樣本4篇
- 2025年度重點工程項目測繪數(shù)據(jù)使用保密協(xié)議4篇
- 2025年度辦公樓樓梯口拆除重建合同樣本4篇
- 2025年度建筑節(jié)能玻璃幕墻工程分包合同3篇
- 二零二五版房地產(chǎn)項目財務顧問及投資回報分析合同3篇
- 二零二四年互聯(lián)網(wǎng)醫(yī)療合作合伙協(xié)議書3篇
- 石家莊2025年度物流運輸合同范本2篇
- 2025年度蘋果種植園土地流轉合作合同4篇
- 二零二五版汽車合伙購買合同2篇
- 乳腺癌的綜合治療及進展
- 【大學課件】基于BGP協(xié)議的IP黑名單分發(fā)系統(tǒng)
- 2025年八省聯(lián)考高考語文試題真題解讀及答案詳解課件
- 信息安全意識培訓課件
- 2024安全員知識考試題(全優(yōu))
- 知識庫管理規(guī)范大全
- 弘揚教育家精神爭做四有好老師心得10篇
- 采油廠聯(lián)合站的安全管理對策
- 苗醫(yī)行業(yè)現(xiàn)狀分析
- 中國移動各省公司組織架構
- 昆明手繪版旅游攻略
評論
0/150
提交評論