freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

eda技術(shù)實驗教程-資料下載頁

2025-06-07 07:07本頁面
  

【正文】 RE)說明這一層次描述了mux21內(nèi)部的邏輯功能,在電路上相當于器件的內(nèi)部電路結(jié)構(gòu)。此例的邏輯描述十分簡潔,它并沒有將選擇器內(nèi)部邏輯門的連接方式表達出來,而是將此選擇器看成一個黑盒,以類似于計算機高級語言的表達方式描述了它的外部邏輯行為。符號“=”是信號賦值符,是信號傳遞的意思,“y = a”表示將a獲得的信號賦給(傳入)y輸出端,這是一個單向過程。需要指出的是,程序51中,實體和結(jié)構(gòu)體分別是以“END ENTITY mux21”和“END ARCHITECTURE one”語句結(jié)尾的,這是符合VHDL新版本IEEE STD 1076_1993的語法要求的。若根據(jù)VHDL’87版本,IEEE STD 1076_1987的語法要求,這兩條結(jié)尾語句只需寫成“END mux21”和“END one”。但考慮到目前絕大多數(shù)常用的EDA工具中的VHDL綜合器仍以支持VHDL39。87版本所有語法規(guī)則為主,且許多最新的VHDL方面的資料,仍然使用VHDL’87版本語言規(guī)則。因此,出于實用的目的,對于以后出現(xiàn)的示例,不再特意指出VHDL兩種版本的語法差異處。一個可綜合的VHDL描述的最小和最基本的邏輯結(jié)構(gòu)中,IEEE標準庫說明、實體和結(jié)構(gòu)體是最基本的和不可缺少的三個部分,其它的結(jié)構(gòu)層次可根據(jù)需要選用。程序51作為一個完整的VHDL描述既可以作為一個獨立的功能器件使用和保存,也能被其它的由VHDL描述的邏輯電路所調(diào)用,成為其中的一個功能部件?!境绦?2】 LIBRARY IEEE。 USE 。 ENTITY Latch IS PORT ( D : IN STD_LOGIC。 ENA : IN STD_LOGIC。 Q : OUT STD_LOGIC )。 END ENTITY Latch; ARCHITECTURE one OF Latch IS SIGNAL sig_save : STD_LOGIC。 BEGIN PROCESS (ENA) BEGIN IF ENA=39。139。 THEN sig_save = D 。 END IF 。 Q = sig_save 。 END PROCESS 。 END ARCHITECTURE one。從程序51可以清晰地看出,一個完整的VHDL描述是以對一個功能元件的完整描述為基礎(chǔ)的,因此元件是VHDL的特定概念,也是VHDL的鮮明特色,把握了元件的結(jié)構(gòu)和功能的完整描述,就把握了VHDL的基本結(jié)構(gòu)。由于元件本身具有層次性,即任一元件既可以是單一功能的簡單元件,也可以是由許多元件組合而成的,具有更復(fù)雜功能的元件,乃至一個電路系統(tǒng)。但從基本結(jié)構(gòu)上看,都能用程序51給出的3個部分來描述,這種元件概念的直觀性是其它HDL所無法比擬的,它為自頂向下或自下向上靈活的設(shè)計流程奠定了堅實的基礎(chǔ)。2.鎖存器設(shè)計 圖52 1位鎖存器與多路選擇器不同,鎖存器的工作狀態(tài)必須用時序邏輯來描述,以下將舉例說明一個簡單時序邏輯電路,1位鎖存器的VHDL設(shè)計描述。圖52是一個鎖存器的原理圖,其中鎖存器的引腳D是數(shù)據(jù)輸入端口,ENA是數(shù)據(jù)鎖存使能控制端口,當ENA為高電平時,允許數(shù)據(jù)鎖入;低電平時禁止數(shù)據(jù)鎖入,Q為數(shù)據(jù)輸出端口。程序52是此鎖存器的VHDL描述。與程序51相比,在1位鎖存器的設(shè)計文件中增加了兩個部分的內(nèi)容:(1) 增加了一條信號賦值語句SIGNAL…由信號賦值語句SIGNAL…定義了一個信號變量sig_save,它的功能是存儲來自外部信號D的被鎖存的數(shù)據(jù)位。顯然,經(jīng)綜合后將由一個硬件時序器件來完成這一任務(wù)。(2) 使用了一個進程語句結(jié)構(gòu)PROCESS (ENA)224。END PROCESS這個語句從系統(tǒng)仿真的角度看,是為此語句結(jié)構(gòu)的行為仿真設(shè)定了敏感量ENA,以利于邏輯順序的測定。但從系統(tǒng)綜合結(jié)果的角度看,必須引入鎖存器才能完成這個時序邏輯過程(VHDL綜合器根據(jù)語句自動判別,并完成寄存器的引入)。進程結(jié)構(gòu)中的邏輯描述表明,如果使能控制信號ENA為高電平,則將數(shù)據(jù)輸入端D的最新值傳入信號變量sig_save,然后通過sig_save,將此值傳給信號輸出端Q;反之,若使能控制信號ENA為低電平,則將sig_save上的原值傳給信號輸出端Q,即保留原值不變。程序中的IF_THEN語句結(jié)構(gòu)所給出的描述方式,是令VHDL綜合器引入時序元件的常用方法,其特點是當IF引導(dǎo)的邏輯表達式滿足條件時,作數(shù)據(jù)傳入操作:sig_save = D,而當不滿足條件時,不作任何描述即以“END IF”結(jié)束IF_THEN語句。通常,PROCESS進程語句用在行為描述方式中。VHDL的建模方法稱為描述風(fēng)格。VHDL有三種基本描述風(fēng)格:行為描述風(fēng)格、結(jié)構(gòu)描述風(fēng)格和數(shù)據(jù)流描述風(fēng)格。程序行“PROCESS(ENA)”中的(ENA)稱為敏感信號表,這說明信號ENA發(fā)生變化時,將引起本進程的執(zhí)行(在系統(tǒng)的行為仿真中)。因此,如果一個結(jié)構(gòu)體只有一個進程(沒有其它并行語句),則所有的輸入信號通常都要列入敏感信號表中,否則信號可能被VHDL模擬器忽略。比較程序51和52,不難發(fā)現(xiàn)VHDL的另一重要特點,即VHDL描述與電路器件的硬件特性無關(guān)。程序51和52的描述中不包含任何類似于ABEL中“COM”、“REG”等有關(guān)組合或時序邏輯的指示詞,也沒有關(guān)于時鐘信號線連接方式的描述。3. 用VHDL設(shè)計全加器圖53 1位半加器邏輯原理圖全加器可以由兩個1位的半加器構(gòu)成,而1位半加器可以由如圖53所示的門電路構(gòu)成。圖54 1位全加器邏輯原理圖1位半加器的端口信號a和b分別是兩位相加的二進制輸入信號,so是相加和的輸出信號,co是進位輸出信號,左邊的門電路結(jié)構(gòu)構(gòu)成了右邊的半加器h_adder。而在硬件上可以利用半加器構(gòu)成如圖54所示的全加器,當然還可以將一組這樣的全加器級聯(lián)起來構(gòu)成一個串行進位的加法器。圖54中,全加器f_adder內(nèi)部的功能結(jié)構(gòu)是由3個邏輯器件構(gòu)成的,即由兩個半加器uu2和一個或門u3連接而成。例53是利用VHDL對圖54中全加器的邏輯原理圖的完整描述,可以在任何一個支持VHDL的EDA平臺上進行編譯、綜合、時序仿真,直至編程配置于選定的目標器件中。對于對數(shù)綜合器來說,程序53所列的全部程序可以同時輸入相應(yīng)的EDA軟件進行編譯,也能以單獨的元件模塊分別進行編輯、文件存檔、編譯和綜合。程序53中共有3個獨立的VHDL設(shè)計模塊,即2個元件模塊和一個頂層設(shè)計模塊(f_adder)。存檔的文件名最好與對應(yīng)的VHDL程序的實體一致,如可分別將它們?nèi)∶麨椋骸?。程序53的解析如下:(1) 作為文件說明部分,由雙橫線“—”引導(dǎo)了一段注釋語句。在VHDL程序的任何一行中,雙橫線“—”后的文字都不參加編譯和綜合。 (2) 實體or2語句段定義了或門or2的引腳信號a、b (輸入)和c (輸出)。其結(jié)構(gòu)體語句段描述了輸入與輸出信號間的邏輯關(guān)系,即將輸入信號a、b相或后傳給輸出信號端c。由此實體和結(jié)構(gòu)體描述了一個完整的或門元件,這一描述可以進行獨立編譯、獨立綜合與存檔,或被其它的電路系統(tǒng)所調(diào)用。(3) 實體h_adder和結(jié)構(gòu)體fh1描述了一個如圖53所示的半加器。由其結(jié)構(gòu)體的描述可以看到,它是由一個與非門、一個非門、一個或門和一個與門連接而成的,其邏輯關(guān)系來自于半加器真值表(表21)。在VHDL中,邏輯算符NAND、NOT、OR和AND分別代表“與非”、“非”、“或”和“與”四種邏輯運算關(guān)系。(4) 在全加器接口邏輯,即頂層文件的VHDL描述中,根據(jù)圖54右側(cè)的1位二進全加器f_adder的原理圖,其實體定義了引腳的端口信號屬性和數(shù)據(jù)類型。其中,ain和bin分別為兩個輸入的相加位,cin為低位進位輸入,cout為進位輸出,sum為1位和輸出。結(jié)構(gòu)體fd1的功能是利用COMPONENT和COMPONENT例化語句將上面由兩個實體or2和h_adder描述的獨立器件,按照圖54全加器內(nèi)部邏輯原理圖中的接線方式連接起來。全加器的邏輯功能如表52所示。 (5) 在結(jié)構(gòu)體fd1中,COMPONENT224。END COMPONENT語句結(jié)構(gòu)對所要調(diào)用的或門和半加器兩個元件作了聲明(Component Declaration),并由SIGNAL語句定義了三個信號d、e和f,作為中間信號轉(zhuǎn)存點,以利于幾個器件間的信號連接。接下去的“PORT MAP( )”語句稱為元件例化語句(Component Instantiation)。所謂例化,在電路板上,相當于往上裝配元器件;在邏輯原理圖上,相當于從元件庫中取了一個元件符號放在電路原理圖上,并對此符號的各引腳進行連線。例化也可理解為元件映射或元件連接,MAP是映射的意思。例如,由“u2”指示的語句表示將實體h_adder描述的元件的引腳信號a、b、co和so分別連向外部信號e、cin、f和sum。符號 = 表示信號連接。表51 半加器H_ADDER邏輯功能真值表 a b so co 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1(6) 由例53可見,實體f_adder引導(dǎo)的邏輯描述也是由三個主要部分構(gòu)成的,即庫、實體和結(jié)構(gòu)體。從表面上看來。但實際上,從結(jié)構(gòu)體的描述中可以看出,對外部的邏輯有調(diào)用的操作,這類似于對庫或程序包中的內(nèi)容作了調(diào)用。因此,庫結(jié)構(gòu)部分還應(yīng)將上面的或門和半加器的VHDL描述包括進去,作為工作庫中的兩個待調(diào)用的元件。由此可見,庫結(jié)構(gòu)也是VHDL程序的重要組成部分。讀者不難從以上各例看出,一個相對完整的VHDL程序具有如圖55所示的比較固定的結(jié)構(gòu)。即首先是各類庫及其程序包的使用聲明,包括未以顯式表達的工作庫WORK庫的使用聲明。然后是實體描述,在這個實體中,含有一個或一個以上的結(jié)構(gòu)體,而在每一個結(jié)構(gòu)體中可以含有一個或多個進程,當然還可以是其它語句結(jié)構(gòu),例如其它形式的并行語句結(jié)構(gòu),最后是配置說明語句結(jié)構(gòu),這個語句結(jié)構(gòu)在以上給出的示例中沒有出現(xiàn)。配置說明主要用于以層次化的方式對特定的設(shè)計實體進行元件例化,或是為實體選定某個特定的結(jié)構(gòu)體。一個相對完整的VHDL程序設(shè)計構(gòu)建稱為設(shè)計實體。 4. 用原理圖方式設(shè)計半加器 為此半加器的設(shè)計建立一工作目錄,如 D:\ADDER 注意,目錄名必須用英文字母,不可用中文! 打開MAX+PLUSII軟件,選菜單 File 174。 New ,在 File Type 窗中選 Graphic editor File 174。 OK。 點鼠標右鍵,在跳出的窗中選 Enter Symbol 項,準備通過此窗口輸入所需的元件。雙擊文件庫“Symbol Libraries”中的d:\ maxplu2\max2lib\prim,在“Symbol Files”窗中選與門and2,并雙擊,此時與門將進入圖形編輯窗中。以同樣方法,將或門or與非門NAND2和非門not調(diào)進圖形編輯窗,再將它們連接成圖53電路形式。 如以上“3”的方法,選“Enter Symbol”窗,再用鍵盤在Enter Symbol窗的Symbol Name中輸入“input”再點擊OK,將獲得一個輸入引腳,以同樣方法,獲得另一輸入引腳。 用以上“4”的方法,輸入“output”,得到輸出引腳。 將它們?nèi)鐖D53連接起來,并在左上輸入腳的“PINNAME”雙擊使其變黑色,用鍵盤輸入“a”;以同樣方法在另三個引腳上輸入“b”、“co”和“so”。 存盤:點擊“File ”174。 “Save As ”,選出剛才為自己的工程建立的目錄:D:\ADDER,將已設(shè)計好的圖文件取名為:,并存在此目錄內(nèi)。 先點主窗口左角的菜單項 MAX+PLUSP 中的Compiler項,以便對已設(shè)計好的半加器進行綜合。在跳出 的Compiler 窗口中,還要做三件事才能進行正式編譯綜合: (1)首先將此項設(shè)計設(shè)定為工程文件:選 File 174。 Project 174。 Name 在跳出Project Name窗中找到D:\ADDER目錄,此時即選定此文件為本次設(shè)計的工程文件(即頂層文件); (2)選芯片:選主窗口上端的“Assign” “Device”項,在窗口中先選“Flex10k”系列,再在下方選 EPF10KLC843,即選擇了半加器將在此芯片中實現(xiàn),選OK,回到主窗口,然后點擊Compiler 窗下的“Start”,開始首次編譯,以便將所選芯片的引腳信息進入設(shè)計文件中(若在編譯中出現(xiàn)一些文字,可選“Processing”項中的“Fitter Settings”,在跳出的窗中,關(guān)閉“Use Quartus Fitter...”項,點OK。再點“Start”,重新進行一次編譯,如果不出現(xiàn),則不必作此操作)。 (3)確定半加器將在此芯片中的具體引腳:同上,在“Assign”中選“Pin / Location / Chip”項,在跳出的窗口中的Node Name項中輸入引腳名a ,這時“Pin Type”項會出現(xiàn)“Input”指示字,表明 a 的引腳性質(zhì)是輸入,否則將不出現(xiàn)此字。此時在“PIN”項內(nèi)輸入“5”引腳名,再點擊右下方的Add項,此引腳即設(shè)定好了;以同樣方法分別設(shè)引腳 b、co、so的引腳名為118,再點擊上方的OK。此4個引腳的選擇方法是根據(jù)《FPGA/CPLD開發(fā)簡明教程》第10頁的實驗電路模式“”,以及第16頁的表格獲得的。 1正式編譯綜合:至此,可在主窗口中進行正式編譯綜合了,點擊Start,進行編譯。 1仿真測試:以下是對設(shè)計的半加器的邏輯功能進行仿真的步驟: (1)點“File”174。 “New”174。 選“Waveform Editor file”,點OK,把跳出的波形編輯
點擊復(fù)制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1