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

正文內(nèi)容

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

2025-06-07 07:07本頁面
  

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