版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
項目一2位二進(jìn)制數(shù)乘法器設(shè)計制作方案以2位二進(jìn)制數(shù)乘法器設(shè)計為載體,介紹基于FPGA(Field-ProgrammableGateArray)的EDA(ElectronicDesignAutomation)技術(shù)。通過在QuartusII集成開發(fā)環(huán)境,基于原理圖輸入的2位二進(jìn)制數(shù)乘法器設(shè)計,認(rèn)識EDA開發(fā)流程,熟悉開發(fā)工具QuartusPrime20.1和仿真工具M(jìn)odelSim-Altera2020.1。教學(xué)目標(biāo)項目一2位二進(jìn)制數(shù)乘法器設(shè)計制作方案技能目標(biāo)知識目標(biāo)素質(zhì)目標(biāo)(1)會安裝EDA開發(fā)工具軟件。(2)能使用QuartusPrime20.1軟件,應(yīng)用原理圖輸入法設(shè)計簡單的組合邏輯電路。(3)能使用ModelSim-Altera2020.1軟件對設(shè)計電路進(jìn)行仿真。(4)能將設(shè)計好的硬件程序通過編程器載入開發(fā)板目標(biāo)芯片。(5)能使用QuartusPrime20.1軟件對設(shè)計電路進(jìn)行管腳分配。(6)能用開關(guān)與數(shù)碼管設(shè)計數(shù)字電子系統(tǒng)的輸入與輸出。(1)知道EDA技術(shù)概況。(2)知道FPGA的工作原理與基本結(jié)構(gòu)。(3)掌握基于FPGA的EDA開發(fā)流程。(4)熟悉QuartusPrime20.1開發(fā)工具界面。(5)熟悉ModelSim-Altera2020.1仿真工具界面。(1)訓(xùn)練正確使用工具、儀器、電子元器件。(2)訓(xùn)練安全用電操作,電子元器件安全調(diào)試。(3)訓(xùn)練規(guī)范的嚴(yán)謹(jǐn)細(xì)致的電子設(shè)計規(guī)范。任務(wù)描述設(shè)計2位二進(jìn)制數(shù)乘法器:在QuartusPrime20.1軟件平臺上,用原理圖輸入法設(shè)計2位二進(jìn)制數(shù)乘加器;用ModelSim-Altera2020.1仿真軟件仿真檢查設(shè)計結(jié)果;硬件驗證采用FPGA最小系統(tǒng)板;輸入輸出可利用的資源有按鈕開關(guān)、LED燈、數(shù)碼管、連接線等即插件。項目一2位二進(jìn)制數(shù)乘法器設(shè)計制作方案設(shè)計方案1.2位二進(jìn)制乘法器組成兩位二進(jìn)制數(shù)相乘,最多可得四位二進(jìn)制數(shù),其乘法運(yùn)算,如圖1.1所示。圖1.1兩位二進(jìn)制數(shù)相乘過程項目一2位二進(jìn)制數(shù)乘法器設(shè)計制作方案從兩位二進(jìn)制數(shù)相乘過程可知:系統(tǒng)可分解為兩個半加器和4個與門聯(lián)結(jié)而成,如圖1.2所示。圖1.22位二進(jìn)制數(shù)乘法器原理圖項目一2位二進(jìn)制數(shù)乘法器設(shè)計制作方案1位二進(jìn)制數(shù)半加器輸入端口有加數(shù)Bn與被加數(shù)An,輸出端口有和Sn與進(jìn)位Cn,其模型如圖1.3所示。圖1.3半加器模型項目一2位二進(jìn)制數(shù)乘法器設(shè)計制作方案圖1.4半加器原理圖根據(jù)半加器定義及真值表可得邏輯表達(dá)式;根據(jù)邏輯表達(dá)式,畫出1位半加器原理圖,如圖1.4所示。項目一2位二進(jìn)制數(shù)乘法器設(shè)計制作方案圖1.5兩位二進(jìn)制數(shù)輸入?yún)⒖茧娐?.輸入電路設(shè)計用二個按鍵開關(guān)代表2位二進(jìn)制數(shù)輸入,當(dāng)按鍵按下時輸入高電平,與之相連的發(fā)光二極管“亮”,表示輸入二進(jìn)制數(shù)“1”;當(dāng)按鍵未按下時,輸入低電平,與之相連的發(fā)光二極管“滅”,表示輸入二進(jìn)制數(shù)“0”。輸入?yún)⒖茧娐啡鐖D1.5所示。項目一2位二進(jìn)制數(shù)乘法器設(shè)計制作方案圖1.6四位二進(jìn)制數(shù)輸出參考電路3.用發(fā)光二極管表示輸出用發(fā)光二極管的“亮”與“滅”表示輸出的二進(jìn)制數(shù)“1”與“0”。當(dāng)輸出為高電平時,與之相連接的發(fā)光二極管“亮”,表示數(shù)出二進(jìn)制數(shù)“1”;當(dāng)輸出為低電平時,與之相連接的發(fā)光二極管“滅”,表示數(shù)出二進(jìn)制數(shù)“0”。輸出參考電路,如圖1.6所示。項目一2位二進(jìn)制數(shù)乘法器設(shè)計制作方案圖1.7七段數(shù)碼管的形態(tài)與輸出電路連接原理圖4.用數(shù)碼管表示輸出值為了直觀地顯示2位二進(jìn)制數(shù)乘法器積的輸出數(shù)值,可用七段數(shù)碼管,表示輸出積的值。七段數(shù)碼管的形態(tài)與輸出電路的連接原理圖,如圖1.7所示。項目一2位二進(jìn)制數(shù)乘法器設(shè)計制作方案七段數(shù)碼管需要7位二進(jìn)制數(shù)表示,而2位二進(jìn)制數(shù)乘法器輸出為4位二進(jìn)制數(shù),因而,需要增加譯碼器。譯碼器可以選擇BCD七段譯碼器,其真值表如表1.3所示。項目一2位二進(jìn)制數(shù)乘法器設(shè)計制作方案增加譯碼器后2位二進(jìn)制數(shù)乘法器原理圖,如圖1.8所示。圖1.8具有譯碼器的2位二進(jìn)制數(shù)乘法器原理圖項目一2位二進(jìn)制數(shù)乘法器設(shè)計制作方案5.輸入輸出值均用數(shù)碼管表示圖1.9兩位二進(jìn)制數(shù)乘法器原理圖如果輸入的二進(jìn)制數(shù)乘數(shù)與被乘數(shù)以及輸出的積均用數(shù)碼管顯示數(shù)值,參考原理圖如圖1.9所示。項目一2位二進(jìn)制數(shù)乘法器設(shè)計制作方案設(shè)計流程項目一2位二進(jìn)制數(shù)乘法器設(shè)計制作方案項目一EDA技術(shù)概述及設(shè)計工具軟件使用基于FPGA(Field-ProgrammableGateArray)采用EDA(ElectronicDesignAutomation)技術(shù)設(shè)計電子系統(tǒng)是用硬件描述語言設(shè)計邏輯控制電路,是現(xiàn)代電子工程領(lǐng)域的一門新技術(shù),是電子設(shè)計技術(shù)與制造技術(shù)的核心,給電子產(chǎn)品的設(shè)計開發(fā)帶來革命性變化。隨著信息產(chǎn)業(yè)和微電子技術(shù)、可編程邏輯嵌入式系統(tǒng)設(shè)計技術(shù)的發(fā)展,F(xiàn)PGA應(yīng)用范圍遍及航空航天、醫(yī)療、通訊、網(wǎng)絡(luò)通訊、安防、廣播、汽車電子、工業(yè)、消費(fèi)類市場、測量測試等多個熱門領(lǐng)域。EDA技術(shù)概述1.
FPGA的工作原理FPGA的基本原理是通過擦寫文件去配置查找表的內(nèi)容,從而在相同的電路情況下實現(xiàn)不同的邏輯功能。查找表(Look-Up-Table,LUT),實際上是一個RAM。目前,F(xiàn)PGA中多數(shù)使用4輸入的LUT,每一個LUT可以看成一個有4位地址線的16×1的RAM。當(dāng)用戶通過原理圖或硬件描述語言描述了一個邏輯電路以后,F(xiàn)PGA開發(fā)軟件會自動計算邏輯電路的所有可能結(jié)果,并把這些計算結(jié)果事先寫入RAM中,這樣,每輸入一組邏輯值進(jìn)行邏輯運(yùn)算時,就等于輸入一個地址進(jìn)行查表,找到地址對應(yīng)的內(nèi)容后進(jìn)行輸出即可。項目一EDA技術(shù)概述及設(shè)計工具軟件使用2.
FPGA的基本結(jié)構(gòu)FPGA結(jié)構(gòu)通常包括三種基本邏輯模塊:可編程輸入/輸出模塊(I/OB)、可編程邏輯模塊(CLB)和可編程布線資源(PI)。較復(fù)雜的FPGA結(jié)構(gòu)中還有其他一些功能模塊如圖1.11所示。圖1.11FPGA的結(jié)構(gòu)框圖項目一EDA技術(shù)概述及設(shè)計工具軟件使用3.基于FPGA的EDA開發(fā)流程基于FPGA的基本開發(fā)流程,主要包括設(shè)計輸入(DesignEntry)、仿真(Simulation)、綜合(Synthesize)、布局布線(PlaceandRoute)和下載編程等步驟,一般開發(fā)流程,如圖1.14所示。圖1.14基于FPGA的EDA開發(fā)流程項目一EDA技術(shù)概述及設(shè)計工具軟件使用EDA技術(shù)的核心是利用計算機(jī)完成電子系統(tǒng)的設(shè)計,EDA軟件是進(jìn)行設(shè)計開發(fā)必不可少的工具。不同F(xiàn)PGA芯片生產(chǎn)廠商的開發(fā)工具不同,本書主要介紹開發(fā)Altera公司FPGA芯片的綜合開發(fā)工具QuartusPrime20.1。QuartusPrime20.1綜合開發(fā)工具完全支持VHDL、VerilogHDL的設(shè)計流程,其內(nèi)部嵌有VHDL、VerilogHDL邏輯綜合器,提供了與第三方仿真工具M(jìn)odelSim-Altera2020.1的無縫連接。設(shè)計工具軟件使用項目一EDA技術(shù)概述及設(shè)計工具軟件使用1.QuartusII設(shè)計開發(fā)工具使用運(yùn)行QuartusPrime20.1進(jìn)入開發(fā)環(huán)境,用戶界面,如圖1.15所示。它由標(biāo)題欄、菜單欄、工具欄、工程管理窗口、任務(wù)窗口、消息窗口、狀態(tài)窗口和工作區(qū)等幾部分組成。在QuartusPrime20.1集成開發(fā)環(huán)境,選擇【View】菜單【UtilityWindows】命令,可添加或隱藏工程管理窗口、任務(wù)窗口等窗口。圖1.15QuartusPrime用戶界面項目一EDA技術(shù)概述及設(shè)計工具軟件使用QuartusPrime20.1開發(fā)工具進(jìn)行FPGA器件的開發(fā)應(yīng)用,其過程主要有設(shè)計輸入、設(shè)計處理、邏輯仿真和器件編程等階段。在設(shè)計的任何階段出現(xiàn)錯誤,都需要進(jìn)行糾正錯誤,直至每個階段都正確為止。(1)設(shè)計輸入階段QuartusPrime20.1開發(fā)工具的工作對象是工程,工程用來管理所有設(shè)計文件以及編輯設(shè)計文件過程中產(chǎn)生的中間文件。設(shè)計輸入階段主要包括工程的創(chuàng)建和設(shè)計文件的輸入。項目一EDA技術(shù)概述及設(shè)計工具軟件使用①建立工程選擇【File】菜單【NewProjectWizard…】命令,出現(xiàn)新建工程向?qū)А綨ewProjectWizard】對話框,新建工程向?qū)?步驟中的第1頁如圖1.16所示。圖1.16新建工程向?qū)У?頁項目一EDA技術(shù)概述及設(shè)計工具軟件使用新建工程向?qū)У?頁,用來向工程添加或刪除已有的設(shè)計文件,如圖1.17所示。在新建工程向?qū)У?頁,單擊“…”按鍵,可瀏覽文件選項,添加文件到該工程的文件。圖1.17新建工程向?qū)У?頁項目一EDA技術(shù)概述及設(shè)計工具軟件使用新建工程向?qū)У?頁,用來設(shè)置目標(biāo)芯片的型號,如圖1.18所示??筛鶕?jù)器件編程目標(biāo)器件的FPGA芯片型號,選擇器件的型號、封裝方式、引腳數(shù)目、速度級別等。圖1.18新建工程向?qū)У?頁項目一EDA技術(shù)概述及設(shè)計工具軟件使用新建工程向?qū)У?頁,用來設(shè)置第三方EDA工具,如圖1.19所示。該頁面上可添加第三方EDA綜合、仿真、定時等分析工具。QuartusPrime20.1中沒有自帶仿真工具,因而,在此可選擇ModelSim-Altera仿真工具。圖1.19新建工程向?qū)У?頁項目一EDA技術(shù)概述及設(shè)計工具軟件使用在新建工程向?qū)ё詈笠豁?,如圖1.20所示。給出了前面設(shè)置的內(nèi)容摘要。圖1.20新建工程向?qū)У?頁項目一EDA技術(shù)概述及設(shè)計工具軟件使用②輸入設(shè)計文件選擇【File】菜單【New...】命令或單擊工具欄上的【New】按鍵,出現(xiàn)【New】對話框,如圖1.21所示。在【New】對話框的【DesignFile】中,選擇不同的設(shè)計文件類型,單擊【OK】按鍵,打開不同類型的文件編輯器。圖1.21選擇新建文件類型項目一EDA技術(shù)概述及設(shè)計工具軟件使用在【New】對話框中,選擇產(chǎn)生原理圖文件的【BlockDiagram/SchematicFile】類型,打開圖形編輯器,如圖1.22所示。通過圖形編輯器可以編輯圖形,畫出原理圖。圖1.22圖形編輯器界面項目一EDA技術(shù)概述及設(shè)計工具軟件使用在【New】對話框中,【VHDLFile】、【AHDLFile】、【VerilogHDLFile】分別為VHDL、AHDL、VerilogHDL等硬件描述的文本文件,其生成的設(shè)計文件擴(kuò)展名分別為“.vhd”、“.tdf”、“.v”??梢栽谌鐖D2.23所示的文本編輯窗口下,按照各自的語言規(guī)則直接輸入設(shè)計文件,也可以用QuartusII提供的相應(yīng)的文本文件編輯模板,快速準(zhǔn)確地輸入文本文件。項目一EDA技術(shù)概述及設(shè)計工具軟件使用圖1.23文本編輯窗口設(shè)計處理階段包括設(shè)計錯誤檢查、邏輯綜合、器件配置以及產(chǎn)生編程下載文件。選擇【Processing】菜單【StartCompilation】命令或直接單擊工具欄【StartCompilation】編譯快捷按鍵,開始執(zhí)行編譯操作,對設(shè)計文件進(jìn)行全面的檢查、邏輯綜合、產(chǎn)生下載編程文件等。編譯結(jié)束后,給出了編譯后的信息,如圖1.24所示。(2)設(shè)計處理階段圖1.24完成編譯后的界面項目一EDA技術(shù)概述及設(shè)計工具軟件使用當(dāng)一個工程文件編譯通過后,能否實現(xiàn)預(yù)期的邏輯功能,需要進(jìn)行仿真檢驗。仿真一般分為功能仿真和加入延時后的時序仿真。功能仿真,驗證所寫代碼是否能完成設(shè)計功能,是設(shè)計程序編譯綜合后的仿真。在QuartusPrime20.1集成環(huán)境,選擇【Tools】菜單【RunSimulationTool】選項【RTLSimulation】命令,進(jìn)行功能仿真。時序仿真,加入了門級電路的延遲,是布局布線后的仿真。在QuartusPrime20.1集成環(huán)境,選擇【Tools】菜單【RunSimulationTool】選項【GateLevelSimulation】命令,進(jìn)行時序仿真。
(3)邏輯仿真階段項目一EDA技術(shù)概述及設(shè)計工具軟件使用編程下載的目的是將設(shè)計所生成的文件通過計算機(jī)下載到目標(biāo)器件,驗證設(shè)計是否滿足實際要求或能否在實際中應(yīng)用。
①鎖定引腳在進(jìn)行器件編程前,需將輸入輸出電路的端口與相應(yīng)的FPGA芯片管腳相連接并鎖定引腳。鎖定引腳是指將設(shè)計文件的輸入輸出信號分配給器件的引腳。
(4)器件編程階段項目一EDA技術(shù)概述及設(shè)計工具軟件使用在QuartusPrime20.1集成環(huán)境,選擇【Assignments】菜單【PinPlanner】命令,出現(xiàn)如圖1.25所示的對話框。在節(jié)點(diǎn)列表區(qū)列出了工程所有輸入輸出端口的名稱,在需要鎖定的節(jié)點(diǎn)名處,雙擊引腳鎖定區(qū)【Location】,在列出的引腳號中進(jìn)行選擇。完成所有引腳鎖定后,需再次進(jìn)行編譯,引腳鎖定才能生效并保存。圖1.25鎖定引腳操作界面項目一EDA技術(shù)概述及設(shè)計工具軟件使用編譯成功后,QuartusPrime會生成編程數(shù)據(jù)文件(如.pof和.sof),通過下載電纜將編程數(shù)據(jù)文件下載到預(yù)先選擇的FPGA芯片中,該芯片就會執(zhí)行設(shè)計文件描述的功能。②器件編程下載器件編程的操作包括編程連接與編程操作。將下載電纜的一端與PC機(jī)對應(yīng)的端口進(jìn)行相連,另一端與編程器相連,完成編程連接后進(jìn)行編程操作。在QuartusPrime20.1集成環(huán)境,選擇【Tools】菜單【Programmer】命令或單擊工具欄中的【Programmer】編程快捷按鍵,打開如圖1.26所示的編程窗口,進(jìn)行編程配置與編程下載。圖1.26器件編程設(shè)置對話框項目一EDA技術(shù)概述及設(shè)計工具軟件使用使用原理圖描述方法進(jìn)行數(shù)字系統(tǒng)設(shè)計形象直觀,但無法滿足快速高效的設(shè)計要求。硬件描述語言(HDL)具有對系統(tǒng)的高層次描述功能,用硬件描述語言對電子線路的描述和設(shè)計是EDA建模和實現(xiàn)技術(shù)的重要方法。本項目以三路表決器設(shè)計為載體,說明用VHDL(超高速集成電路硬件描述語言)描述和設(shè)計數(shù)字電路的方法,逐步掌握VHDL基本語法知識,提高數(shù)字電路VHDL程序描述和設(shè)計能力。項目2三路表決器設(shè)計制作方案教學(xué)目標(biāo)項目2三路表決器設(shè)計制作方案技能目標(biāo)知識目標(biāo)素質(zhì)目標(biāo)(1)能使用QuartusPrime軟件,應(yīng)用文本輸入法設(shè)計數(shù)字電路。(2)能將數(shù)字電路轉(zhuǎn)化為硬件描述語言。(3)能使用ModelSim軟件對設(shè)計電路進(jìn)行功能仿真。(4)能將設(shè)計好的硬件程序通過編程器載入開發(fā)板目標(biāo)芯片。(5)能進(jìn)行VHDL程序與FPGA的在線聯(lián)合調(diào)試。(6)能用開關(guān)、數(shù)碼管、發(fā)光二極管設(shè)計數(shù)字系統(tǒng)的輸入與輸出。(1)了解常用硬件描述語言類型。(2)了解VHDL程序的特點(diǎn)。(3)熟悉VHDL程序的基本格式和規(guī)范。(4)熟悉VHDL程序基本結(jié)構(gòu)。(5)熟悉VHDL程序的標(biāo)識符。
(1)培養(yǎng)質(zhì)量意識、安全意識。(2)訓(xùn)練程序語言編寫規(guī)范。(3)培養(yǎng)遵守電子設(shè)計的規(guī)范流程。任務(wù)描述項目2三路表決器設(shè)計制作方案利用VHDL程序設(shè)計三路表決器,同意票大于等于2票,表示通過。要求在QuartusPrime20.1軟件平臺上,用文本輸入方法設(shè)計三路表決器;用ModelSim-Altera2020.1仿真軟件仿真檢查設(shè)計結(jié)果;利用FPGA最小系統(tǒng)板,選用按鈕開關(guān)、LED燈、數(shù)碼管、蜂鳴器等硬件資源進(jìn)行硬件驗證。設(shè)計方案項目2三路表決器設(shè)計制作方案
三路表決器系統(tǒng)設(shè)計方案,輸入用3個開關(guān),輸出根據(jù)不同情況可以用1燈表示,當(dāng)大于等于2個開關(guān)輸入為高電平時,燈亮表示通過;當(dāng)少于2個開關(guān)輸入為高電平時,燈滅表示未通過。輸出還可用2燈表示、1燈加蜂鳴器、數(shù)碼管加蜂鳴器等表示,如表2.2所示:項目2三路表決器設(shè)計制作方案圖2.1三路表決器輸入?yún)⒖茧娐?.輸入電路設(shè)計
用三個按鍵開關(guān)代表3位二進(jìn)制數(shù)輸入,當(dāng)按鍵按下時輸入高電平,與之相連的發(fā)光二極管“亮”,表示同意;當(dāng)按鍵未按下時,輸入低電平,與之相連的發(fā)光二極管“滅”,表示不同意。輸入?yún)⒖茧娐啡鐖D2.1所示。項目2三路表決器設(shè)計制作方案圖2.2三路表決器輸出參考電路2.用發(fā)光二極管表示輸出本項目用2發(fā)光二極管的“亮”與“滅”表示輸出的通過與不通過。當(dāng)L1輸出為高電平與之相連接的發(fā)光二極管“亮”,L2輸出為低電平與之相連接的發(fā)光二極管“滅”時,表示通過;當(dāng)L1輸出為低電平與之相連接的發(fā)光二極管“滅”,L2輸出為高電平與之相連接的發(fā)光二極管“亮”時,表示表示不通過,輸出參考電路,如圖2.2所示。設(shè)計流程項目2三路表決器設(shè)計制作方案項目2VHDL程序結(jié)構(gòu)及標(biāo)識符
一個相對完整的VHDL程序稱為設(shè)計實體,通常都具有比較固定的結(jié)構(gòu)。由實體(Entity)、結(jié)構(gòu)體(Architecture)、配置(Configuration)、庫(Library)和程序包(Package)等構(gòu)成,如圖2.4所示。VHDL程序結(jié)構(gòu)圖2.4VHDL程序結(jié)構(gòu)模型圖項目2VHDL程序結(jié)構(gòu)及標(biāo)識符
實體用來描述設(shè)計實體的對外端口信息,實體有輸入端口和輸出端口的說明,也可以有一些參數(shù)化的數(shù)值說明。實體說明部分基本格式如下:1.實體entity實體名is[generic(類屬參數(shù)說明)];port(端口表);end[entity]實體名;實體說明部分基本格式解釋:(1)一個基本單元的實體說明以“entity實體名is”開始,以“end[entity]實體名”結(jié)束。[]表示其中的部分是可選項。項目2VHDL程序結(jié)構(gòu)及標(biāo)識符(2)實體名。一個設(shè)計實體,在實體中定義的實體名即為這個設(shè)計實體的名稱。實體名是標(biāo)識符,標(biāo)識符具體取名由設(shè)計者自定,一般將VHDL程序的文件名作為此設(shè)計實體名。(3)類屬參數(shù)說明。類屬參數(shù)說明必須放在端口說明之前,用來指定端口中矢量的位數(shù)、器件的延遲時間參數(shù)等。類屬參數(shù)說明書寫格式如下:
generic([constant]常量名稱:[in]數(shù)據(jù)類型[:=設(shè)定值];…);項目2VHDL程序結(jié)構(gòu)及標(biāo)識符(4)端口表。端口表是對端口的說明,用于描述設(shè)計實體的輸入/輸出信號,是對輸入/輸出引腳信號的名稱、數(shù)據(jù)類型和輸入/輸出方向的描述。端口說明的一般書寫格式如下:port(端口名{,端口名}:端口模式
數(shù)據(jù)類型[:=設(shè)定值];……
端口名{,端口名}:端口模式
數(shù)據(jù)類型[:=設(shè)定值]);其中花括號“{}”中的內(nèi)容可以沒有,也可以有多項。項目2VHDL程序結(jié)構(gòu)及標(biāo)識符端口表各項內(nèi)容說明如下:①端口名。端口名是賦予每個外部引腳的名稱,即該端口的標(biāo)識符。②端口模式。端口模式用來定義外部引腳的信號流向。端口模式共有in、out、inout和buffer四種。in:輸入模式僅允許數(shù)據(jù)由外部流向?qū)嶓w輸入端口。out:輸出模式僅允許數(shù)據(jù)從實體內(nèi)部流向?qū)嶓w輸出端口,不能用于反饋。inout:雙向模式允許數(shù)據(jù)流入或流出實體,雙向模式允許用于內(nèi)部反饋。buffer:緩沖模式通常用于內(nèi)部有反饋需求的信號描述。緩沖模式與輸出模式類似,只是緩沖模式允許用于內(nèi)部反饋,而輸出模式不行。項目2VHDL程序結(jié)構(gòu)及標(biāo)識符③數(shù)據(jù)類型。描述端口的數(shù)據(jù)類型通常有bit、bit_vector、std_logic、std_logic_vector。Bit(位):信號值是一個1位的二進(jìn)制值,取值只能是0或1。bit_vector(位矢量):信號值是一組二進(jìn)制數(shù)。std_logic(標(biāo)準(zhǔn)邏輯位):取值有9種,分別是:0(信號0)、1(信號1)、H(弱信號1)、L(弱信號0)、Z(高阻)、X(不定)、W(弱信號不定)、U(初始值)和—(不可能情況)等。std_logic_vector(標(biāo)準(zhǔn)邏輯矢量):它是標(biāo)準(zhǔn)邏輯的集合,基本元素是std_logic類型。項目2VHDL程序結(jié)構(gòu)及標(biāo)識符【例】二進(jìn)制計數(shù)器VHDL程序的實體libraryieee;useieee.std_logic_1164.all;entitybinary_counterisgeneric(MIN_COUNT:natural:=0;MAX_COUNT:natural:=255);port(clk:instd_logic;reset:instd_logic;enable:instd_logic;q:outintegerrangeMIN_COUNTtoMAX_COUNT);endentity;architecturertlofbinary_counterisbeginprocess(clk)variablecnt:integerrangeMIN_COUNTtoMAX_COUNT:=0;beginif(rising_edge(clk))thenifreset='1'thencnt:=0;elsifenable='1'thencnt:=cnt+1;endif;endif;q<=cnt;endprocess;endrtl;entity實體名is語句引導(dǎo)本實體的實體名為binary_counter類屬參數(shù)說明語句:定義常量MIN_CUNT為自然數(shù),賦0值;定義常量MAX_CUNT為自然數(shù),賦255值。端口說明語句:定義clk為輸入端口,數(shù)據(jù)類型標(biāo)準(zhǔn)邏輯位;定義reset為輸入端口,數(shù)據(jù)類型標(biāo)準(zhǔn)邏輯位;定義enable為輸入端口,標(biāo)準(zhǔn)邏輯位數(shù)據(jù)類型;定義q為輸出端口,整數(shù)數(shù)據(jù)類型,限定范圍MIN_CUNT到MAX_CUNT,即0-255。實體說明部分項目2VHDL程序結(jié)構(gòu)及標(biāo)識符2.結(jié)構(gòu)體結(jié)構(gòu)體描述了該設(shè)計實體單元電路的邏輯功能。結(jié)構(gòu)體附屬于實體,是對實體的說明。結(jié)構(gòu)體描述格式如下:architecture結(jié)構(gòu)體名of實體名is [說明語句];begin
功能描述語句;end[architecture]結(jié)構(gòu)體名;
項目2VHDL程序結(jié)構(gòu)及標(biāo)識符結(jié)構(gòu)體描述格式解釋:(1)實體名必須是所在設(shè)計實體的實體名字,而結(jié)構(gòu)體名可以自由選擇,當(dāng)一個設(shè)計實體有多個結(jié)構(gòu)體時,結(jié)構(gòu)體不能同名。(2)結(jié)構(gòu)體必須以“end[architecture]結(jié)構(gòu)體名+;”作為結(jié)束語句。(3)結(jié)構(gòu)體說明語句必須放在關(guān)鍵字“architecture”和“begin”之間。結(jié)構(gòu)體說明語句用于對結(jié)構(gòu)體內(nèi)部所用到的信號(signal)、數(shù)據(jù)類型(type)、常量(constant)、元件(component)、函數(shù)(function)和過程(procedure)等進(jìn)行說明。在結(jié)構(gòu)體中說明和定義的數(shù)據(jù)類型、常量、函數(shù)和過程,作用范圍局限于其所在的結(jié)構(gòu)體。項目2VHDL程序結(jié)構(gòu)及標(biāo)識符(4)功能描述語句。功能描述語句包括5種不同類型的并行方式工作的語句結(jié)構(gòu),如圖2.5所示。5種語句結(jié)構(gòu)本身是并行方式工作,但它們內(nèi)部不一定是并行語句。圖2.5結(jié)構(gòu)體構(gòu)造圖項目2VHDL程序結(jié)構(gòu)及標(biāo)識符功能描述語句解釋:①信號賦值語句:將設(shè)計實體內(nèi)的處理結(jié)果向定義的信號或輸出端口進(jìn)行賦值。圖2.5結(jié)構(gòu)體構(gòu)造圖②進(jìn)程語句:一個進(jìn)程相當(dāng)與一個功能模塊,在一個結(jié)構(gòu)體內(nèi)可以包含多個進(jìn)程,每個進(jìn)程都是同步執(zhí)行的,但是進(jìn)程內(nèi)部的語句是順序執(zhí)行。進(jìn)程語句的描述格式為:[進(jìn)程名:]process[(敏感信號表)]
[進(jìn)程說明部分];
begin
順序描述語句部分;endprocess[進(jìn)程名];項目2VHDL程序結(jié)構(gòu)及標(biāo)識符進(jìn)程語句的描述解釋:a.進(jìn)程名是進(jìn)程語句的標(biāo)識符,它是一個可選項。b.敏感信號表是用來激勵進(jìn)程啟動的量,當(dāng)敏感信號表中有一個信號或多個信號發(fā)生變化時,該進(jìn)程啟動,否則該進(jìn)程處于掛起狀態(tài)。c.進(jìn)程說明語句定義該進(jìn)程所需要的局部量,可包括數(shù)據(jù)類型、常量、變量、屬性、子程序等,但不允許定義信號和共享變量。d.順序描述語句用于描述該進(jìn)程的功能。項目2VHDL程序結(jié)構(gòu)及標(biāo)識符功能描述語句解釋:③元件例化語句:對其他的設(shè)計實體作元件調(diào)用說明,并將此元件的端口與其他元件、信號或高層次實體的界面端口進(jìn)行連接。④子程序調(diào)用語句:用以調(diào)用過程或函數(shù),并將獲得的結(jié)果賦值于信號。⑤塊語句:由一系列并行執(zhí)行語句構(gòu)成的組合體,其功能是將結(jié)構(gòu)體中的并行語句組成一個或多個子模塊。圖2.5結(jié)構(gòu)體構(gòu)造圖項目2VHDL程序結(jié)構(gòu)及標(biāo)識符【例】1位二進(jìn)制數(shù)半加器仿真測試VHDL程序結(jié)構(gòu)體說明libraryieee;useieee.std_logic_1164.all;entityh_adder_vhd_tstisendh_adder_vhd_tst;architectureh_adder_archofh_adder_vhd_tstissignala:std_logic;signalb:std_logic;signalc:std_logic;signals:std_logic;componenth_adderport(a:instd_logic;b:instd_logic;c:outstd_logic;s:outstd_logic);endcomponent;begini1:h_adderportmap(a=>a,b=>b,c
=>c,s=>s);init:processbegina<='0';b<='0';waitfor20us;a<='1';b<='0';waitfor20us;a<='0';b<='1';waitfor20us;a<='1';b<='1';waitfor20us;endprocessinit;endh_adder_arch;architecture結(jié)構(gòu)體名of實體名is語句引導(dǎo)本結(jié)構(gòu)體名為h_adder_arch,實體名為h_adder_vhd_tst結(jié)構(gòu)體描述部分結(jié)構(gòu)體描述begin分隔end結(jié)構(gòu)體名+;結(jié)束結(jié)構(gòu)體描述對結(jié)構(gòu)體內(nèi)用到的信號a、b、c、s的說明對結(jié)構(gòu)體內(nèi)用到的元件h_adder的說明元件例化語句:對結(jié)構(gòu)體調(diào)用的元件h_adder的描述說明語句功能描述語句進(jìn)程語句:對進(jìn)程init的描述項目2VHDL程序結(jié)構(gòu)及標(biāo)識符3.庫庫是經(jīng)過編譯后的數(shù)據(jù)集合,其目的是為了使設(shè)計遵循某些統(tǒng)一的語言標(biāo)準(zhǔn)或數(shù)據(jù)格式,同時便于利用已有的設(shè)計成果,以提高設(shè)計效率。(1)庫的分類。VHDL程序中常用的庫有IEEE庫、SID庫、WORK庫、ASIC庫和用戶自定義庫等。①IEEE庫。IEEE庫是VHDL程序中最為常用的庫,它包含了IEEE標(biāo)準(zhǔn)的程序包和一些支持工業(yè)標(biāo)準(zhǔn)的程序包,使用時需要按照格式進(jìn)行說明。②SID庫。STD庫是VHDL程序的標(biāo)準(zhǔn)庫,包含standard程序包,里面定義了VHDL程序標(biāo)準(zhǔn)數(shù)據(jù)、邏輯關(guān)系及函數(shù)等,使用standard包中定義的量可以不加聲明。項目2VHDL程序結(jié)構(gòu)及標(biāo)識符③WORK庫。WORK庫是VHDL程序的工作庫,用戶在工程設(shè)計中設(shè)計成功、正在驗證、未仿真的中間部件等都堆放在WORK工作庫,使用時不需要進(jìn)行說明調(diào)用。④ASIC庫。在VHDL程序中,為了進(jìn)行門級仿真,各公司提供面向ASIC的邏輯門庫。在各庫中存放著與邏輯門一一對應(yīng)的實體。使用ASIC庫,需要按照格式進(jìn)行說明。⑤用戶自定義庫。用戶自定義庫是用戶根據(jù)自己的需要,將開發(fā)的共用程序包和實體等匯集在一起,定義成一個庫。在使用用戶自定義庫時,需要按照格式進(jìn)行說明。項目2VHDL程序結(jié)構(gòu)及標(biāo)識符(2)庫的說明。在VHDL程序中,庫的說明通常放在實體描述的最前面。多數(shù)情況下,對庫進(jìn)行說明后,設(shè)計者才能使用庫集合中定義的數(shù)據(jù)。庫說明語句格式如下:library庫名;(3)庫的使用。庫說明語句與use語句一般同時使用,庫說明語句指明所使用的庫名,use語句指明使用庫中的程序包。說明了庫和程序包,整個設(shè)計實體就可以進(jìn)入訪問或調(diào)用,但其作用范圍僅限于所說明的設(shè)計實體。庫的調(diào)用格式:
library庫名;use庫名.程序包名.all;(或use庫名.程序包名.項目名;)項目2VHDL程序結(jié)構(gòu)及標(biāo)識符4.程序包為了使已定義的數(shù)據(jù)類型、數(shù)據(jù)對象等被更多的其它設(shè)計實體共享,可以將它們收集在一個VHDL程序包中,這樣可以提高設(shè)計的效率和程序的可讀性。常用的預(yù)定義程序包說明如下:(1)std_logic_1164程序包。std_logic_1164程序包是IEEE的標(biāo)準(zhǔn)程序包,其中用得最多的是滿足工業(yè)標(biāo)準(zhǔn)的兩個數(shù)據(jù)類型std_logic和std_logic_vector。該數(shù)據(jù)類型除具有“0”和“1”邏輯量以外,還有其他的邏輯量,如高阻態(tài)“z”、不定態(tài)“x”等,更能滿足實際數(shù)字系統(tǒng)設(shè)計仿真的需求。項目2VHDL程序結(jié)構(gòu)及標(biāo)識符(2)std_logic_arith程序包。std_logic_arith程序包,擴(kuò)展了3個數(shù)據(jù)類型,即unsigned、signed和small_int,并為其定義了相關(guān)的算術(shù)運(yùn)算符和轉(zhuǎn)換函數(shù)。unsigned數(shù)據(jù)類型不包含符號位,無法參與有符號的運(yùn)算;signed數(shù)據(jù)類型包含符號位,可以參與有符號的運(yùn)算。(3)std_logic_unsigned和std_loglc_signed程序包。std_logic_unsigned和std_logic_signed程序包定義了可用于integer型、std_logic型和std_logic_vector型混合運(yùn)算的運(yùn)算符,并定義了由std_logic_vector型到integer型的轉(zhuǎn)換函數(shù)。其中:std_logic_signed中定義的運(yùn)算符考慮到了符號,是有符號數(shù)的運(yùn)算;std_logic_unsigned程序包定義的運(yùn)算符沒有符號,為無符號運(yùn)算。項目2VHDL程序結(jié)構(gòu)及標(biāo)識符標(biāo)識符是用戶編程時為常量、變量、信號、端口、子程序或參數(shù)等定義的名字。1.VHDL程序字符集VHDL合法的字符集有兩大類:基本字符集與擴(kuò)張字符集。基本字符集是基本標(biāo)識符使用的字符集,包括以下4小類(1)26個大寫英文字母:A,B,C,D,E,…,X,Y,Z;(2)26個小寫英文字母:a,b,c,d,e,…,x,y,z;(3)10個阿拉伯?dāng)?shù)字:0,1,2,3,4,5,6,7,8,9;(4)下劃線:_。擴(kuò)張字符集是擴(kuò)張標(biāo)識符使用的字符集,除了基本字符集外,還包括圖形符號與空格等,為了保持程序的通用性并提高程序的可讀性,建議用基本標(biāo)識符設(shè)計VHDL程序。VHDL程序標(biāo)識符項目2VHDL程序結(jié)構(gòu)及標(biāo)識符2.VHDL程序標(biāo)識符VHDL程序基本標(biāo)識符的設(shè)計規(guī)則如下:(1)必須由基本字符集組成;(2)必須由基本字符集的26個大、小寫英文字母開頭;(3)基本字符集的下劃線不能作為基本標(biāo)識符的最后一個字符;(4)基本字符集的下劃線不能連續(xù)出現(xiàn)兩次或兩次以上;(5)VHDL程序的保留字不能單獨(dú)作為一個基本標(biāo)識符;(6)基本標(biāo)識符中的英文字母不區(qū)分大小寫項目2VHDL程序結(jié)構(gòu)及標(biāo)識符3.關(guān)鍵字關(guān)鍵字是VHDL程序預(yù)先定義的保留字,它們在程序中有不同的目的和作用。如entity(實體)、type(類型)、if、ednprocess(進(jìn)程)等都是VHDL程序的關(guān)鍵字。項目3四路搶答器設(shè)計制作方案基于FPGA的最小系統(tǒng)板,用VHDL程序設(shè)計制作四路搶答器。通過四路搶答器電路設(shè)計,理解VHDL程序的結(jié)構(gòu)及語言要素,熟悉VHDL程序的數(shù)據(jù)對象、數(shù)據(jù)類型及基本運(yùn)算符。教學(xué)目標(biāo)項目3四路搶答器設(shè)計制作方案技能目標(biāo)知識目標(biāo)素質(zhì)目標(biāo)(1)能使用QuartusPrime軟件,應(yīng)用文本輸入法設(shè)計數(shù)字電路。(2)能將數(shù)字電路轉(zhuǎn)化為硬件語言描述文件。(3)能用按鍵開關(guān)、數(shù)碼管、蜂鳴器設(shè)計數(shù)字電路的輸入與輸出部分。(4)能進(jìn)行VHDL程序與FPGA的在線聯(lián)合調(diào)試。(5)會設(shè)置信號數(shù)據(jù)對象的主要屬性。(6)能自定義數(shù)據(jù)類型。(1)了解常用硬件描述語言類型。(2)熟悉VHDL程序的基本格式和規(guī)范。(3)熟悉VHDL程序的數(shù)據(jù)對象。(4)知道信號數(shù)據(jù)對象的主要屬性。(5)熟悉VHDL程序的數(shù)據(jù)類型。(6)熟悉VHDL程序的基本運(yùn)算符。(1)訓(xùn)練程序語言編寫規(guī)范。(2)培養(yǎng)遵守電子設(shè)計的規(guī)范流程。(3)培養(yǎng)勤于動手、樂于實踐的習(xí)慣。任務(wù)描述項目3四路搶答器設(shè)計制作方案
四路搶答器功能要求:主持人控制開關(guān)可控制搶答起始時刻;四位參賽者的搶答按鍵按下時,搶答器能準(zhǔn)確的判斷出搶答者,用LED燈指示或數(shù)碼管顯示;搶答器應(yīng)具有互鎖功能,當(dāng)某位參賽者完成搶答后,其他各位參賽者搶答鍵無效。四路搶答器設(shè)計要求:在QuartusPrime20.1軟件平臺,基于VHDL程序設(shè)計四路搶答器控制器;通過ModelSim-Altera2020.1仿真軟件仿真檢查設(shè)計結(jié)果;選用FPGA-EP4CE6E22C8最小系統(tǒng)板,按鈕開關(guān)、LED燈、數(shù)碼管等元件進(jìn)行硬件測試。設(shè)計方案項目3四路搶答器設(shè)計制作方案
搶答信號通過輸入電路輸入四路搶答控制器,經(jīng)控制器鎖存對應(yīng)的搶答者信息并輸出顯示信號與提示信號,通過輸出電路顯示搶答信息與提示信息。四路搶答控制器的邏輯電路包括判斷、鎖存、譯碼等邏輯電路。四路搶答控制器根據(jù)輸出的復(fù)雜程度可設(shè)計為:用發(fā)光二極管指示搶答成功與否、用數(shù)碼管顯示搶答成功者的編號、用數(shù)碼管顯示搶答成功者編號的同時發(fā)出提示聲音等等。本項目設(shè)計的四路搶答器用數(shù)碼管顯示搶答成功者的編號。1.搶答信號輸入電路設(shè)計項目3四路搶答器設(shè)計制作方案
用按鈕開關(guān)控制搶答信號的輸入,當(dāng)按鈕開關(guān)閉合時,向FPGA輸入高電平,指示發(fā)光二極管發(fā)光;當(dāng)按鈕開關(guān)斷開時,向FPGA輸入低電平,指示二極管不發(fā)光。4個搶答輸入電路的原理圖,如圖3.1所示。圖3.1搶答信號輸入電路原理圖2.主持人控制信號輸入電路設(shè)計項目3四路搶答器設(shè)計制作方案用自鎖開關(guān)控制什么時候開始搶答。當(dāng)開關(guān)閉合時,向FPGA輸入高電平,指示發(fā)光二極管發(fā)光,四路搶答器處于搶答狀態(tài);當(dāng)開關(guān)斷開時,向FPGA輸入低電平,指示二極管不發(fā)光,四路搶答器處于搶答準(zhǔn)備狀態(tài)。主持人控制信號輸入電路的原理圖,如圖3.2所示。圖3.2主持人控制輸入電路原理圖3.輸出電路設(shè)計項目3四路搶答器設(shè)計制作方案(1)用發(fā)光二極管顯示搶答成功與否的輸出電路原理圖,如圖3.3所示圖3.3發(fā)光二極管顯示輸出電路原理圖項目3四路搶答器設(shè)計制作方案(2)用數(shù)碼管顯示搶答成功者編號的輸出電路原理圖,如圖3.4所示。圖3.4數(shù)碼管顯示輸出電路原理圖項目3四路搶答器設(shè)計制作方案(3)用數(shù)碼管顯示搶答者編碼的同時發(fā)出提示聲音,蜂鳴器提示音輸出電路原理圖,如圖3.5所示。圖3.5蜂鳴器輸出電路原理圖設(shè)計流程項目3四路搶答器設(shè)計制作方案1.VHDL程序數(shù)據(jù)對象VHDL程序使用的數(shù)據(jù)對象包括常量、變量、信號和文件4種類型。前3種屬于可綜合的數(shù)據(jù)對象,在硬件電路系統(tǒng)中通常有一定的物理含義。文件數(shù)據(jù)對象僅在行為仿真時使用。項目3VHDL程序的數(shù)據(jù)對象與基本運(yùn)算符(1)常量常量是一個固定的值,相當(dāng)于數(shù)字電路中的電源與地等。定義和設(shè)置常量是為了程序更易閱讀和修改。常量語句允許在實體、結(jié)構(gòu)體、程序包、進(jìn)程和子程序中定義,常量的適用范圍取決于它被定義的位置。常量定義的一般格式如下:
constant常量名:數(shù)據(jù)類型:=表達(dá)式;【例3.1】常量的定義constantDATA:integer:=50;constantVCC:real:=5.0;constantRISE:time:=25ns;項目3VHDL程序的數(shù)據(jù)對象與基本運(yùn)算符定義了一個名為“DATA”的整數(shù)常量,并且賦予初值50;定義了一個名為“VCC”的實數(shù)常量,并且賦予初值5.0;定義了一個名為“RISE”的時間常量,并且賦予初值25納秒。項目3VHDL程序的數(shù)據(jù)對象與基本運(yùn)算符(2)變量
變量是一種內(nèi)容可發(fā)生變化的數(shù)據(jù)對象,其主要作用是在進(jìn)程中作為臨時的數(shù)據(jù)存儲單元。變量只能在進(jìn)程語句和子程序中使用,它是一個局部量,在仿真過程中執(zhí)行到變量賦值語句后,變量就被即時賦值。變量定義語句的格式如下:variable變量名:數(shù)據(jù)類型[約束條件][:=初值表達(dá)式];變量數(shù)值的改變是通過變量賦值來實現(xiàn),變量賦值的一般形式:目標(biāo)變量名:=表達(dá)式;變量賦值符號為“:=”,變量賦值語句后的“表達(dá)式”必須與目標(biāo)變量名具有相同的數(shù)據(jù)類型,這個數(shù)值可以是運(yùn)算表達(dá)式,也可以是一個數(shù)值。項目3VHDL程序的數(shù)據(jù)對象與基本運(yùn)算符【例】二進(jìn)制計數(shù)器VHDL程序中變量的使用
libraryieee;useieee.std_logic_1164.all;entitybinary_counterisgeneric(MIN_COUNT:natural:=0;MAX_COUNT:natural:=255);port(clk:instd_logic;reset:instd_logic;enable:instd_logic;q:outintegerrangeMIN_COUNTtoMAX_COUNT);endentity;architecturertlofbinary_counterisbeginprocess(clk)variablecnt:integerrangeMIN_COUNTtoMAX_COUNT:=0;beginif(rising_edge(clk))thenifreset='1'thencnt:=0;elsifenable='1'thencnt:=cnt+1;endif;endif;q<=cnt;endprocess;endrtl;變量定義語句:在進(jìn)程內(nèi)定義變量cnt,整數(shù)類型,數(shù)值范圍限定在255-0內(nèi),賦初值0。變量賦值語句:cnt賦0值變量賦值語句:cnt賦cnt+1表達(dá)式,實現(xiàn)加1計數(shù)(3)信號信號信號相當(dāng)于組合電路中門與門之間的硬件連接線或數(shù)值寄存器。信號通常在結(jié)構(gòu)體、包集合和實體中說明,是個全局量。信號的定義語句格式:
Signal信號名:數(shù)據(jù)類型[約束條件][:=表達(dá)式];給信號賦初值用“:=”符號,在程序中,給信號賦值用“<=”符號,信號賦值語句形式:
目標(biāo)信號名<=表達(dá)式[after時間量];這里的“表達(dá)式”可以是一個運(yùn)算表達(dá)式,也可以是數(shù)據(jù)對象(變量、信號或常量),信號賦值時可附加延時。
項目3VHDL程序的數(shù)據(jù)對象與基本運(yùn)算符項目3VHDL程序的數(shù)據(jù)對象與基本運(yùn)算符【例】異步清零十進(jìn)制加法計數(shù)器VHDL程序中信號的使用
libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycnt10yisport(clr:in
std_logic;
clk:in
std_logic;
cnt:out
std_logic_vector(3downto0));endcnt10y;architectureexample9ofcnt10yissignalcnt_temp:std_logic_vector(3downto0):="0000";beginprocess(clr,clk)beginifclr='0'thencnt_temp<="0000";elsif
clk'eventandclk='1'thenif(cnt_temp="1001")thencnt_temp<="0000";elsecnt_temp<=cnt_temp+'1';endif;endif;endprocess;cnt<=cnt_temp;endexample9;信號定義語句:在結(jié)構(gòu)體內(nèi)定義變量cnt_temp,4位寬標(biāo)準(zhǔn)邏輯矢量數(shù)據(jù)類型,賦初值“0000”。信號賦值語句:cnt_temp賦”0000”值信號賦值語句:cnt_temp賦cnt_temp+’1’表達(dá)式,實現(xiàn)加1計數(shù)信號賦值語句:cnt_temp賦”0000”值信號賦值語句:端口信號cnt賦cnt_temp信號值(4)變量、信號的比較信號和變量是VHDL程序中重要的數(shù)據(jù)對象,它們間主要區(qū)別有:①物理意義不同:信號用于電路中的信號連接,變量用于進(jìn)程中局部數(shù)據(jù)存儲。②定義位置不同:信號的使用和定義位置在結(jié)構(gòu)體、程序包和實體中,不能在進(jìn)程、函數(shù)和子程序中使用,而變量只能在進(jìn)程、函數(shù)和子程序中定義。③賦值符號不同:變量用“:=”,信號用“<=。④附加延時不同:變量賦值語句一旦被執(zhí)行,其值立即被賦予變量。信號實際賦值過程和賦值語句的處理是分開進(jìn)行的,也即信號賦值語句執(zhí)行時附加了延時。
項目3VHDL程序的數(shù)據(jù)對象與基本運(yùn)算符2.VHDL程序數(shù)據(jù)類型VHDL程序的每個數(shù)據(jù)對象都有確定的數(shù)據(jù)類型,不同類型的數(shù)據(jù)間無法直接進(jìn)行操作,數(shù)據(jù)類型相同而位長不同時,也不能直接代入,數(shù)據(jù)類型不匹配時必須使用轉(zhuǎn)換函數(shù),VHDL程序提供了多種預(yù)定義的標(biāo)準(zhǔn)數(shù)據(jù)類型。
項目3VHDL程序的數(shù)據(jù)對象與基本運(yùn)算符(1)標(biāo)準(zhǔn)數(shù)據(jù)類型標(biāo)準(zhǔn)的數(shù)據(jù)類型有10種,這些數(shù)據(jù)類型及其含義如表3.1所示。10種標(biāo)準(zhǔn)數(shù)據(jù)類型中,實數(shù)、時間、錯誤等級和字符串等數(shù)據(jù)類型不可綜合,只可用于系統(tǒng)仿真。
項目3VHDL程序的數(shù)據(jù)對象與基本運(yùn)算符(2)用戶自定義數(shù)據(jù)類型VHDL程序允許用戶定義新的數(shù)據(jù)類型,用戶自定義數(shù)據(jù)類型書寫格式為:type數(shù)據(jù)類型名is數(shù)據(jù)類型定義of基本數(shù)據(jù)類型;或type數(shù)據(jù)類型名is數(shù)據(jù)類型定義;可以綜合的常用的用戶自定義數(shù)據(jù)類型。①枚舉類型枚舉類型是把類型中的各個可能的取值都列舉出來,枚舉類型可以用符號來代替數(shù)值,在使用狀態(tài)機(jī)時常采用枚舉類型來定義狀態(tài)參數(shù)。枚舉類型的定義格式:
type數(shù)據(jù)類型名is(元素1,元素2,…);例:typestatesis(s0,s1,s2,s3);--自定義數(shù)據(jù)類型“states”有4種狀態(tài)
項目3VHDL程序的數(shù)據(jù)對象與基本運(yùn)算符②數(shù)組類型數(shù)組是將相同的數(shù)據(jù)集合在一起所形成的一個新的數(shù)據(jù)類型。它可以是一維的,也可以是二維或多維的。數(shù)組的定義格式如下:
type數(shù)組名isarray(數(shù)組范圍)of數(shù)據(jù)類型;例:定義一個名為“ram”的一維數(shù)組表述如下: typeramisarray(0to63)ofstd_logic;定義一個名為“matrix”的二維數(shù)組表述如下: typematrixisarray(15downto0)ofstd_logic_vector(15downto0);項目3VHDL程序的數(shù)據(jù)對象與基本運(yùn)算符③紀(jì)錄類型記錄類型是將不同類型的數(shù)據(jù)和數(shù)據(jù)名組織在一起而形成的數(shù)據(jù)類型。記錄類型的一般書寫格式如下:type數(shù)據(jù)類型名isrecord元素名1:數(shù)據(jù)類型名;元素名2:數(shù)據(jù)類型名;…endrecord;項目3VHDL程序的數(shù)據(jù)對象與基本運(yùn)算符(3)數(shù)據(jù)類型轉(zhuǎn)換VHDL程序是一種強(qiáng)類型的語言,不同類型的數(shù)據(jù)之間不能直接進(jìn)行運(yùn)算和賦值操作,必須要對信號或者變量的數(shù)據(jù)類型進(jìn)行類型轉(zhuǎn)換。IEEE庫各程序包提供的數(shù)據(jù)類型的轉(zhuǎn)換函數(shù)如表3.2所示。
項目3VHDL程序的數(shù)據(jù)對象與基本運(yùn)算符(4)數(shù)值類屬性數(shù)值類屬性用于返回有關(guān)數(shù)據(jù)類型或數(shù)組類型的特定值,通常用單引號“'”指定屬性。常用的各數(shù)值類屬性的含義說明如下:①'left:返回數(shù)據(jù)類區(qū)間最左端值;②'right:返回數(shù)據(jù)類區(qū)間最右端值;③'high:返回數(shù)據(jù)類區(qū)間高端值;④'low:返回數(shù)據(jù)類區(qū)間低端值;⑤'length:返回限制性數(shù)組中的元素數(shù)。
項目3VHDL程序的數(shù)據(jù)對象與基本運(yùn)算符3.VHDL程序基本運(yùn)算符IEEE庫預(yù)定義的運(yùn)算符,主要有算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、移位運(yùn)算符、賦值運(yùn)算符、關(guān)聯(lián)運(yùn)算符、并置運(yùn)算符等。VHDL程序的各運(yùn)算符如表3.3所示
項目3VHDL程序的數(shù)據(jù)對象與基本運(yùn)算符3.VHDL程序基本運(yùn)算符IEEE庫預(yù)定義的運(yùn)算符,主要有算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、移位運(yùn)算符、賦值運(yùn)算符、關(guān)聯(lián)運(yùn)算符、并置運(yùn)算符等。VHDL程序的各運(yùn)算符如表3.3所示
項目3VHDL程序的數(shù)據(jù)對象與基本運(yùn)算符3.VHDL程序基本運(yùn)算符IEEE庫預(yù)定義的運(yùn)算符,主要有算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、移位運(yùn)算符、賦值運(yùn)算符、關(guān)聯(lián)運(yùn)算符、并置運(yùn)算符等。VHDL程序的各運(yùn)算符如表3.3所示
項目3VHDL程序的數(shù)據(jù)對象與基本運(yùn)算符3.VHDL程序基本運(yùn)算符IEEE庫預(yù)定義的運(yùn)算符,主要有算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、移位運(yùn)算符、賦值運(yùn)算符、關(guān)聯(lián)運(yùn)算符、并置運(yùn)算符等。VHDL程序的各運(yùn)算符如表3.3所示
項目3VHDL程序的數(shù)據(jù)對象與基本運(yùn)算符3.VHDL程序基本運(yùn)算符VHDL程序設(shè)計中的運(yùn)算符與其他程序設(shè)計語言一樣也有其優(yōu)先級,其優(yōu)先級的順序如表3.4所示。
項目3VHDL程序的數(shù)據(jù)對象與基本運(yùn)算符3.VHDL程序基本運(yùn)算符VHDL程序設(shè)計中的運(yùn)算符與其他程序設(shè)計語言一樣也有其優(yōu)先級,其優(yōu)先級的順序如表3.4所示。
項目3VHDL程序的數(shù)據(jù)對象與基本運(yùn)算符項目3四路搶答器編程下載編程下載的目的是將設(shè)計所生成的文件通過計算機(jī)下載到目標(biāo)器件,驗證設(shè)計是否滿足實際要求或能否在實際中應(yīng)用。四路搶答器硬件測試基于EP4CE6E22C8-FPGA最小系統(tǒng)板,用按鈕開關(guān)控制搶答信號的輸入,用自鎖開關(guān)控制主持人控制信號輸入,用共陰數(shù)碼管顯示搶答者編號。項目3四路搶答器編程下載1.四路搶答控制器
用VHDL程序設(shè)計的四路搶答控制器輸入輸出端口,如圖3.10所示。【clk】為系統(tǒng)時鐘信號輸入端,與FPGA最小系統(tǒng)板所提供的50MHz時鐘信號相連接;【answer[3..0]】為搶答信號輸入端;【host】為主持人控制信號輸入端;【smg[6..0]】為7段數(shù)碼管搶答編號顯示信號輸出端。硬件電路連接圖3.10四路搶答器輸入輸出端口項目3四路搶答器編程下載2.輸入電路4按鈕開關(guān)作為搶答信號輸入元件;可自鎖按鈕開關(guān)作為主持人控制信號輸入元件。四路搶答器輸入原理圖,如圖3.10所示。圖3.10四路搶答器輸入原理圖項目3四路搶答器編程下載圖3.11四路搶答器輸入PCB圖2.輸入電路4按鈕開關(guān)作為搶答信號輸入元件;可自鎖按鈕開關(guān)作為主持人控制信號輸入元件。四路搶答器輸入PCB圖,如圖3.11所示。項目3四路搶答器編程下載圖3.12四路搶答器輸入模塊實物圖2.輸入電路4按鈕開關(guān)作為搶答信號輸入元件;可自鎖按鈕開關(guān)作為主持人控制信號輸入元件。四路搶答器輸入模塊實物圖,如圖3.12所示。項目3四路搶答器編程下載3.輸出電路
共陰數(shù)碼管作為搶答編號顯示元件,輸出模塊原理圖、PCB圖及元件實物圖,如圖3.14所示。圖3.14四路搶答器輸出模塊項目3四路搶答器編程下載4.各元件連接搶答信號輸入按鈕開關(guān)、主持人控制信號輸入自鎖按鈕開關(guān)、數(shù)碼管與EP4CE6E22C8-FPGA最小系統(tǒng)板的20×2雙排直插針連接原理圖,如圖3.15所示。圖3.15四路搶答器各元件連接原理圖項目3四路搶答器編程下載圖3.16四路搶答器各元件連接4.各元件連接搶答信號輸入按鈕開關(guān)、主持人控制信號輸入自鎖按鈕開關(guān)、數(shù)碼管與EP4CE6E22C8-FPGA最小系統(tǒng)板的20×2雙排直插針實物連接圖,如圖3.16所示。項目3四路搶答器編程下載5.輸入輸出引腳根據(jù)輸入輸出元件與FPGA最小系統(tǒng)板相連的管腳可知,四路搶答器輸入輸出端口與目標(biāo)芯片引腳的連接關(guān)系見表3.5。項目3四路搶答器編程下載在QuartusPrime集成環(huán)境,單擊【Assignments】菜單的【PinPlanner】命令,彈出【PinPlanner】對話框;在【PinPlanner】對話框的【Location】列空白位置雙擊,根據(jù)表3.5輸入相對應(yīng)的引腳值。完成設(shè)置后的【PinPlanner】對話框如圖3.17所示。當(dāng)分配引腳完成以后,必須再次執(zhí)行編譯命令,這樣才能保存存儲引腳鎖定信息。輸入輸出引腳鎖定圖3.17四路搶答器引腳鎖定結(jié)果項目3四路搶答器編程下載下載電纜配置。下載設(shè)計文件到目標(biāo)芯片,需要專用下載電纜將PC機(jī)與目標(biāo)芯片相連接。將“USB-Blaster”下載電纜的一端連接到PC機(jī)的USB口,另一端接到FPGA最小系統(tǒng)板的JTAG口,然后,接通FPGA最小系統(tǒng)板的電源,進(jìn)行下載配置。完成下載電纜配置如圖3.18所示。下載設(shè)計文件圖3.18四路搶答器下載配置結(jié)果項目3四路搶答器編程下載配置文件下載。在【Programmer】對話框的【Mode】下拉列表框中選擇【JTAG】模式;選擇下載文件“QDQ.sof;單擊【Start】按鍵,編程下載開始,直到下載進(jìn)度為100%,下載完成,如圖3.19所示。下載設(shè)計文件圖3.19編程下載完成項目4簡易電子琴設(shè)計方案本項目介紹基于FPGA最小系統(tǒng)板,用VHDL程序設(shè)計制作簡易電子琴。通過簡易電子琴控制器電路的VHDL程序設(shè)計,熟悉VHDL程序平行語句的使用,實現(xiàn)多進(jìn)程間信號的通訊。教學(xué)目標(biāo)項目4簡易電子琴設(shè)計方案技能目標(biāo)知識目標(biāo)素質(zhì)目標(biāo)(1)能將實際的數(shù)字系統(tǒng)需求轉(zhuǎn)化為數(shù)字電子系統(tǒng)硬件語言描述。(2)能采用VHDL程序設(shè)計分頻電路。(3)能熟練使用ModelSim軟件對設(shè)計電路進(jìn)行功能仿真與時序仿真。(4)會創(chuàng)建與編輯功能仿真測試文件。(5)能用蜂鳴器、數(shù)碼管、開關(guān)等元件設(shè)計數(shù)字系統(tǒng)的輸入與輸出。(1)掌握VHDL程序平行語句的特點(diǎn)。(2)熟悉簡單信號賦值語句格式。(3)熟悉條件信號選擇語句的格式。(4)熟悉多進(jìn)程語句的格式。(5)掌握多進(jìn)程語句間信號的傳遞
。(1)培養(yǎng)通過書籍、網(wǎng)絡(luò)獲得相關(guān)信息開展自主學(xué)習(xí)的能力。(2)培養(yǎng)具制訂計劃及執(zhí)行計劃的能力。(3)培養(yǎng)勤于動手、樂于實踐的習(xí)慣。任務(wù)描述項目4簡易電子琴設(shè)計方案簡易電子琴功能要求:能夠?qū)崿F(xiàn)某一大調(diào)音樂的演奏功能,同時,在演奏時能夠顯示該大調(diào)每個音符的簡譜值及區(qū)分相同簡譜值的音高。設(shè)計要求:在QuartusPrime20.1軟件平臺上用VHDL程序設(shè)計簡易電子琴控制器電路,用ModelSim-Altera2020.1仿真軟件仿真檢查設(shè)計結(jié)果;選用FPGA最小系統(tǒng)板、按鈕開關(guān)、數(shù)碼管、LED燈、蜂鳴器等硬件資源進(jìn)行硬件驗證。設(shè)計方案項目4簡易電子琴設(shè)計方案
基于FPGA最小系統(tǒng)板的簡易電子琴用2個按鈕開關(guān)的組合控制大調(diào)的不同八度音輸入;7個按鈕開關(guān)控制同一八度音的7個音符輸入;用3LED表示發(fā)出音符不同八度音,用數(shù)碼管顯示音符的簡譜值,用蜂鳴器發(fā)聲。簡易電子琴工作過程:琴鍵信號通過輸入電路輸入基于FPGA設(shè)計的簡易電子琴控制器;簡易電子琴控制器將FPGA最小系統(tǒng)板的板載基頻,根據(jù)輸入信號不同,分頻為不同音符的頻率,通過輸出端驅(qū)動蜂鳴器發(fā)聲;同時,簡易電子琴控制器輸出驅(qū)動顯示簡譜數(shù)值的數(shù)碼管信號和區(qū)分不同八度音的3LED電平。1.輸入電路設(shè)計項目4簡易電子琴設(shè)計方案(1)琴鍵信號輸入電路設(shè)計:用按鈕開關(guān)控制“1234567”7個琴鍵信號的輸入,當(dāng)按鈕開關(guān)閉合時,向FPGA輸入高電平,指示發(fā)光二極管發(fā)光;當(dāng)按鈕開關(guān)斷開時,向FPGA輸入低電平,指示二極管不發(fā)光。7個琴鍵信號輸入電路的原理圖如圖4.1所示。圖4.1琴鍵信號輸入電路原理圖1.輸入電路設(shè)計項目4簡易電子琴設(shè)計方案(2)控制不同八度音信號輸入電路設(shè)計:用2個按鈕開關(guān)的組合來控制3個不同音高的八度音,如圖4.2所示。當(dāng)c1、c2均不閉合時,發(fā)低八度音;當(dāng)c1閉合、c2不閉合時,發(fā)原音;當(dāng)c1不閉合、c2閉合時,發(fā)高八度音。圖4.2控制不同八度音信號的輸入電路原理圖2.VHDL控制器設(shè)計項目4簡易電子琴設(shè)計方案(1)相同大調(diào)不同八度音頻率。鋼琴上每個琴鍵對應(yīng)一定的音名,每個音名對應(yīng)一定的頻率。本項目設(shè)計D大調(diào)具有3個八度音的簡易電子琴。表4.2列出了D大調(diào)3個八度音的音名、頻率及對應(yīng)的簡譜。項目4簡易電子琴設(shè)計方案(2)各音符頻率的產(chǎn)生
不同音符的頻率可通過對基準(zhǔn)頻率分頻產(chǎn)生。本設(shè)計輸入基準(zhǔn)頻率為FPGA最小系統(tǒng)板載晶振產(chǎn)生的50MHz頻率。考慮到預(yù)置數(shù)2進(jìn)制計數(shù)器分頻的位數(shù)關(guān)系,對50MHz基準(zhǔn)頻率先進(jìn)行50分頻,分頻為1MHz的基頻,然后用帶預(yù)置數(shù)的12位2進(jìn)制計數(shù)器分頻,帶預(yù)置數(shù)計數(shù)器分頻所產(chǎn)生的是非等占空比脈沖信號,該非等占空比脈沖信號,不具有驅(qū)動蜂鳴器的能力,故需對此脈沖信號再次進(jìn)行2分頻,使輸出頻率成為等占空比的信號,以推動蜂鳴器發(fā)聲。計算可控分頻器的分頻系數(shù)表達(dá)式,Tone=212-(50000000/50*2f),其中f值為音符的頻率。項目4簡易電子琴設(shè)計方案(2)各音符頻率的產(chǎn)生根據(jù)各音符的頻率及計算公式可計算出D大調(diào)3個八度各音符的分頻系數(shù),如表4.3所示。項目4簡易電子琴設(shè)計方案(2)各音符頻率的產(chǎn)生根據(jù)各音符的頻率及計算公式可計算出D大調(diào)3個八度各音符的分頻系數(shù),如表4.3所示。項目4簡易電子琴設(shè)計方案(2)各音符頻率的產(chǎn)生根據(jù)各音符的頻率及計算公式可計算出D大調(diào)3個八度各音符的分頻系數(shù),如表4.3所示。項目4簡易電子琴設(shè)計方案(3)控制器的VHDL程序設(shè)計根據(jù)前面的分析,簡易電子琴控制器的VHDL程序設(shè)計如下:進(jìn)程1:用琴鍵輸入電平,控制不同八度音,輸入信號轉(zhuǎn)換為對應(yīng)琴鍵的分頻系數(shù)、3LED電平、數(shù)碼管驅(qū)動信號。進(jìn)程2:將50MHZ的頻率分頻為1MHz頻率。進(jìn)程3:在進(jìn)程1分頻系數(shù)信號的控制下,通過可預(yù)置分頻系數(shù)的計數(shù)器,將1MHz的頻率分頻為各音符脈沖信號。進(jìn)程4:將進(jìn)程3各音符脈沖信號2分頻后輸出驅(qū)動蜂鳴器。3.輸出電路設(shè)計項目4簡易電子琴設(shè)計方案(1)顯示不同八度音發(fā)光二極管電路顯示不同八度音的發(fā)光二極管輸出電路原理圖,如圖4.3所示。圖4.3顯示不同八度音的發(fā)光二極管輸出電路項目4簡易電子琴設(shè)計方案(2)數(shù)碼管顯示驅(qū)動電路數(shù)碼管顯示驅(qū)動輸出電路原理圖,如圖4.4所示。圖4.4數(shù)碼管顯示輸出電路原理圖項目4簡易電子琴設(shè)計方案(3)蜂鳴器驅(qū)動電路蜂鳴器驅(qū)動電路原理圖,如圖4.5所示。圖4.5蜂鳴器輸出電路原理圖設(shè)計流程項目4簡易電子琴設(shè)計方案VHDL是硬件描述語言,其描述語句包括順序語句與并行語句,并行語句最能體現(xiàn)VHDL作為硬件設(shè)計語言的特點(diǎn)。各種并行語句在結(jié)構(gòu)體中是同時并發(fā)執(zhí)行的,其執(zhí)行順序與書寫的順序無關(guān)。結(jié)構(gòu)體中常見的并行語句有簡單信號賦值語句、條件信號選擇語句、進(jìn)程語句。項目4VHDL程序的平行語句1.簡單信號賦值語句簡單信號賦值語句,在進(jìn)程內(nèi)部使用時屬于順序語句,但是,在進(jìn)程外的結(jié)構(gòu)體中使用時屬于并行語句。簡單信號賦值語句的使用格式:
信號<=表達(dá)式;簡單信號賦值語句由4部分組成:左操作數(shù)信號、賦值操作符“<=”、表達(dá)式和分號“;”;左操作數(shù)必須是信號,不能是輸入端口信號;表達(dá)式可以是算術(shù)表達(dá)式,也可以是邏輯表達(dá)式,還可以是關(guān)系表達(dá)式,但表達(dá)式中不能含有輸出端口信號;目標(biāo)信號與信號的賦值源必須長度一致、類型一致。項目4VHDL程序的平行語句2.條件信號選擇語句條件信號選擇語句的作用是根據(jù)指定的條件表達(dá)式的多種可能進(jìn)行相應(yīng)的賦值。條件信號選擇語句有when/else與with/select/when兩種形式。(1)when/else條件信號選擇語句格式:信號<=表達(dá)式1when賦值條件1else表達(dá)式2when賦值條件2else …
表達(dá)式nwhen賦值條件nelse表達(dá)式n+1;項目4VHDL程序的平行語句【例4.1】when/else條件信號選擇語句應(yīng)用項目4VHDL程序的平行語句例4.1程序?qū)崿F(xiàn)了條件選擇的邏輯功能。當(dāng)sel="00"時,輸出q的波形與i0一樣;當(dāng)sel="01"時,輸出q的波形與i1一樣;當(dāng)sel="10"時,輸出q的波形與i2一樣;當(dāng)sel="11"時,輸出q的波形與i3一樣。libraryieee;useieee.std_logic_1164.all;entityuseselectisport(sel:instd_logic_vector(1downto0);i0,i1,i2,i3:instd_logic;q:outstd_logic);enduseselect;architecturebehaveofuseselectisbeginq<=i0whensel="00"else--注意else后沒有分號i1whensel="01"elsei2whensel="10"elsei3;endbehave;(2)with/select/when條件信號選擇語句with/sele
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 弛豫鐵電單晶水聲發(fā)射換能器的帶寬拓展研究
- 二零二五年度建筑項目消防安全責(zé)任協(xié)議書3篇
- 二零二五版管道工程鋼管供應(yīng)及安裝合同
- 水泥建材行業(yè)營業(yè)員工作總結(jié)
- 二零二五年度家庭矛盾離婚協(xié)議書2篇
- 二零二五年度商業(yè)項目地下車庫停車位租賃管理協(xié)議3篇
- 設(shè)定明確的工作崗位職責(zé)計劃
- 二零二五年度電梯智能化升級與物業(yè)管理服務(wù)合同3篇
- 二零二五年度教師編制外人員勞動合同范本2篇
- 2025版項目管理法律法規(guī)與國際慣例應(yīng)用指導(dǎo)與執(zhí)行合同3篇
- JB-T 8532-2023 脈沖噴吹類袋式除塵器
- 深圳小學(xué)英語單詞表(中英文)
- 護(hù)理質(zhì)量反饋內(nèi)容
- 山東省濟(jì)寧市2023年中考數(shù)學(xué)試題(附真題答案)
- 抖音搜索用戶分析報告
- 板帶生產(chǎn)工藝熱連軋帶鋼生產(chǎn)
- 鉆孔灌注樁技術(shù)規(guī)范
- 2023-2024學(xué)年北師大版必修二unit 5 humans and nature lesson 3 Race to the pole 教學(xué)設(shè)計
- 供貨進(jìn)度計劃
- 國際尿失禁咨詢委員會尿失禁問卷表
- 彌漫大B細(xì)胞淋巴瘤護(hù)理查房
評論
0/150
提交評論