版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
數字鐘實驗教案第1頁,共73頁,2023年,2月20日,星期六實驗目的1.掌握計數器的基本設計方法;2.對利用VHDL硬件描述語言設計相關模塊有一定的了解;3.ALTERAMAXPLUSII軟件的使用。第2頁,共73頁,2023年,2月20日,星期六用FPGA設計并實現(xiàn)數字鐘一、EDA技術基礎知識二、數字鐘設計原理三、VHDL語言四、軟件開發(fā)環(huán)境MAXPLUSII五、實驗系統(tǒng)簡介具備基礎:數字邏輯第3頁,共73頁,2023年,2月20日,星期六一、EDA技術的基礎知識EDA——ElectronicDesignAutomation
以大規(guī)模可編程邏輯器件為設計載體,以硬件描述語言為系統(tǒng)邏輯描述的主要表達方式,以計算機、大規(guī)模可編程器件的開發(fā)軟件及實驗開發(fā)系統(tǒng)為設計工具,自動完成用軟件方式描述的電子系統(tǒng)到硬件系統(tǒng)的邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合及優(yōu)化、布局布線、邏輯仿真,直至完成對于特定目標芯片的適配編譯、邏輯映射、編程下載等工作,最終形成集成電子系統(tǒng)或專用集成芯片的一門多學科融合的新技術。
第4頁,共73頁,2023年,2月20日,星期六傳統(tǒng)方法與EDA方法比較
傳統(tǒng)方法1.自下至上(BottomUp)2.通用的邏輯元、器件3.系統(tǒng)硬件設計的后期進行仿真和調試4.主要設計文件是電原理圖5.手工實現(xiàn)
EDA方法1.自上至下(TopDown)2.PLD(可編程邏輯器件)3.系統(tǒng)設計的早期進行仿真和修改4.多種設計文件,發(fā)展趨勢以HDL描述文件為主5.自動實現(xiàn)
EDA技術極大地降低硬件電路設計難度,提高設計效率,是電子系統(tǒng)設計方法的質的飛躍。第5頁,共73頁,2023年,2月20日,星期六1.EDA技術的主要內容實現(xiàn)載體:大規(guī)模可編程邏輯器件(PLD__ProgrammableLogicDevice)描述方式:硬件描述語言(HDL__HarddescripationLauguage)VHDL、VerlogHDL等設計工具:開發(fā)軟件、開發(fā)系統(tǒng)硬件驗證:實驗開發(fā)系統(tǒng)第6頁,共73頁,2023年,2月20日,星期六大規(guī)??删幊踢壿嬈骷?/p>
(PLD__ProgrammableLogicDevice)FPGA__FieldProgrammableGatesArray——現(xiàn)場可編程門陣列CPLD__ComplexProgrammableLogicDevice——復雜可編程邏輯器件主流公司:Xilinx、Altera、LatticeFPGA/CPLD顯著優(yōu)點:開發(fā)周期短、投資風險小、產品上市速度快、市場適應能力強、硬件修改升級方便。第7頁,共73頁,2023年,2月20日,星期六2.硬件描述語言VHDL
VHDL:
VHSIC(VeryHighSpeedIntegratedCircuit)
Hardware
Description
Language第8頁,共73頁,2023年,2月20日,星期六VHDL語言特點①VHDL具有強大的語言結構,系統(tǒng)硬件抽象描述能力強、設計效率高。②VHDL語言可讀性強,易于修改和發(fā)現(xiàn)錯誤。③VHDL具有豐富的仿真語句和庫函數,可進行早期行為仿真,利于大系統(tǒng)的設計與驗證。④VHDL設計與硬件電路關系不大。⑤VHDL設計不依賴于器件,與工藝無關。⑥移植性好。⑦VHDL體系符合TOP-DOWN和CE設計思想。⑧VHDL設計效率高,產品上市時間快,成本低。⑨易于ASIC實現(xiàn)。第9頁,共73頁,2023年,2月20日,星期六二、數字鐘設計原理要求:能夠自動計時,并下載到實驗箱中用七段數碼管顯示出時、分、秒第10頁,共73頁,2023年,2月20日,星期六時鐘的概念系統(tǒng)時鐘:幾乎所有數字系統(tǒng)都需要時鐘產生:晶體振蕩器,能夠產生較為精確的方波脈沖信號,可以達到10-7甚至更高。時鐘頻率:單位時間內的方波脈沖信號的個數振蕩器的時鐘頻率有32.768kHz,2MHz,10MHz,40MHz等。周期:頻率的倒數,即一個方波脈沖信號的持續(xù)時間一個周期第11頁,共73頁,2023年,2月20日,星期六數制的概念數制:二進制、十進制、十二進制、十六進制、六十進制等。如日常生活用十進制,秒到分為六十進制十進制數(整數)與二進制數(整數)的轉換十進制數除2取余倒序排,如(23)10=(10111)2(10101)2=124+023+122+021+120=(21)102223211余15212余1余1余0余1低位第12頁,共73頁,2023年,2月20日,星期六計數器原理計數:對輸入方波脈沖信號進行數個數的過程計數的作用:產生周期更長(持續(xù)時間)的脈沖信號計數器的種類:二進制計數器、二十四進制計數器、六十進制計數器等第13頁,共73頁,2023年,2月20日,星期六BCD碼BCD碼:用二進制數對十進制數字符號進行編號后所對應的0、1序列編碼方法:十進制數有0~9共10個數字符號。而1個二進制位可以表示0、1兩種狀態(tài);2個二進制位可以表示為00、01、10、11四種狀態(tài);3個二進制可以表示八種狀態(tài)。因此要表示十個數字符號,就需要4個二進制位。但是4個二進制位共有16種狀態(tài)。規(guī)定使用前10種。十進制0123456789BCD碼0000000100100011010001010110011110001001第14頁,共73頁,2023年,2月20日,星期六二進制數與BCD碼的區(qū)別7的BCD碼是0111;但7的二進制是011116的BCD碼是00010110;但16的二進制數是10000因此數值大于等于10后,BCD碼與二進制數完全不相同!已知十進制數求BCD時,只需寫出每個十進制數的BCD碼就可以了,但求二進制數時要按照前面的方法求解。本設計中的時、分、秒用BCD碼表示第15頁,共73頁,2023年,2月20日,星期六七段數碼管結構七段顯示數碼管是由發(fā)光二極管按照一定的規(guī)則排列而成的電路結構排列形狀abcfegd第16頁,共73頁,2023年,2月20日,星期六七段數碼管的顯示原理公共極接低電平(電壓)!非公共極接高電平(1)時,發(fā)光二極管點亮發(fā)光,顯示筆畫;非公共極也接低電平(0)時,發(fā)光二極管的電壓差不夠,不發(fā)光,筆畫不顯示。abcfegd第17頁,共73頁,2023年,2月20日,星期六時分秒的顯示BCD碼表示的時、分、秒需要用七段數碼管顯示出來如“39”秒其BCD碼是00111001要求顯示的形狀是“”因此要2個數碼管,且第1個數碼管的abcdg為高電平;第2個數碼管的abcfg為高電平。其他為低電平第18頁,共73頁,2023年,2月20日,星期六100001101000BCD碼-七段顯示碼譯碼器gfedcbaDCBA七段數碼輸出BCD碼輸入001111110000310011111100411001100010511011011010611111010110700001111110811111110001911011111001210110110100第19頁,共73頁,2023年,2月20日,星期六實現(xiàn)方案電路框圖系統(tǒng)時鐘秒計數器數據選擇器六十進制計數器六十進制計數器譯碼器顯示碼數碼管數碼管數碼管秒分時秒脈沖分脈沖時脈沖BCD碼BCD碼BCD碼掃描碼產生第20頁,共73頁,2023年,2月20日,星期六數字鐘電路圖秒計數器分計數器時計數器顯示譯碼器數據選擇器第21頁,共73頁,2023年,2月20日,星期六“秒計數”硬件描述語言(VHDL)程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitynewsecondisport(clk,reset:instd_logic;sec1,sec2:outstd_logic_vector(3downto0);carry:outstd_logic);endnewsecond;architecturet1ofnewsecondissignalsect1,sect2:std_logic_vector(3downto0);begin第22頁,共73頁,2023年,2月20日,星期六續(xù)process(reset,clk)beginifreset='1'thensect1<="0000";sect2<="0000";elsif(clk'eventandclk='1')thenifsect1="1001"thensect1<="0000";ifsect2="0101"thensect2<="0000";else sect2<=sect2+1;endif;else sect1<=sect1+1;endif;第23頁,共73頁,2023年,2月20日,星期六續(xù)if(sect1="1001"andsect2="0101")thencarry<='1';elsecarry<='0';endif; endif;endprocess;sec1<=sect1;sec2<=sect2;endt1;第24頁,共73頁,2023年,2月20日,星期六三、VHDL語言
VHDL:
VHSIC(VeryHighSpeedIntegratedCircuit)
Hardware
Description
LanguageVHDL是一種IEEE工業(yè)標準硬件描述語言,是用于仿真和綜合的高級別描述語言第25頁,共73頁,2023年,2月20日,星期六3.1VHDL程序結構VHDL程序包括實體(Entity)聲明結構體(Architecture)聲明庫(Library)、程序包(Package)聲明第26頁,共73頁,2023年,2月20日,星期六庫、程序包實體(Entity)結構體(Architecture)進程或其它并行結構配置(Configuration)VHDL程序結構第27頁,共73頁,2023年,2月20日,星期六3.1.1庫VHDL庫可分為5種:1、IEEE庫:定義了四個常用的程序包:?
std_logic_1164(std_logictypes&relatedfunctions)?std_logic_arith(arithmeticfunctions)?std_logic_signed(signedarithmeticfunctions)?std_logic_unsigned(unsignedarithmeticfunctions)
2、STD庫(默認庫)庫中程序包為:standard,定義的數據類型:Bit,bit_vector,Boolean,Integer,Real,andTime3、面向ASIC的庫4、WORK庫(默認庫)5、用戶定義庫第28頁,共73頁,2023年,2月20日,星期六庫的使用庫及程序包的使用語法:
library庫名;
use庫名.程序包名.All;例:時鐘秒的庫定義libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;第29頁,共73頁,2023年,2月20日,星期六3.1.2實體聲明ENTITY<實體名>IS
類屬聲明
端口聲明END<entity_name>;(87版本)ENDENTITY<entity_name>;(93版本)端口聲明:確定輸入輸出端口的數目和類型。Port(
端口名稱{,端口名稱}:端口方式端口類型;…端口名稱{,端口名稱}:端口方式端口類型);第30頁,共73頁,2023年,2月20日,星期六端口方式與端口類型端口方式:
in輸入型,此端口為只讀型。
out輸出型,此端口只能在實體內部對其賦值。
inout輸入輸出型,既可讀也可賦值。
buffer緩沖型,與out相似,但可讀。端口類型:預先定義好的數據類型。如:bit、integer、std_logic等第31頁,共73頁,2023年,2月20日,星期六例:時鐘秒的實體說明entitynewsecondisport(clk,reset:instd_logic;sec1,sec2:outstd_logic_vector(3downto0);carry:outstd_logic);endnewsecond;第32頁,共73頁,2023年,2月20日,星期六3.1.3結構體聲明architecture結構體名稱of實體名稱is[定義語句]內部信號、常數、數據類型、進程、子程序(函數、過程)、組件等的聲明;begin[并行處理語句];end[結構體名稱];第33頁,共73頁,2023年,2月20日,星期六例:秒的結構體聲明architecturet1ofnewsecondissignalsect1,sect2:std_logic_vector(3downto0);Beginprocess(reset,clk)
……endt1;第34頁,共73頁,2023年,2月20日,星期六3.2VHDL中的數據數據對象:常量(Constant)、變量(Variable)、信號(Signal)格式:名稱:數據類型約束條件:=表達式;例:constantwidth:integer:=8;variablecount:integerrange0to255:=10;signalinit:integer:=-1;VHDL數據類型:布爾量(boolean)、位(bit)、位矢量(bit_vector)、字符(character)、整數(integer)、字符串(string)、std_logic類型、std_logic_vector類型例:signalsect1,sect2:std_logic_vector(3downto0);第35頁,共73頁,2023年,2月20日,星期六3.3VHDL中的描述語句順序(Sequential)描述語句賦值語句;if語句;case語句;loop語句;next語句;exit語句;子程序;return語句;wait語句;null語句。并發(fā)(Concurrent)描述語句進程(process)語句、塊(block)語句、順序描述語句的并行版本、組件例化語句、生成語句。第36頁,共73頁,2023年,2月20日,星期六3.3.1順序(Sequential)描述語句賦值語句變量:=表達式;信號<=表達式;例:sect1<="0000";sect2<="0000";
temp:=‘0’;第37頁,共73頁,2023年,2月20日,星期六2、IF語句if條件then
順序處理語句;elsif條件then
順序處理語句;else
順序處理語句;endif;例:ifreset='1'thensect1<="0000";sect2<="0000";elsif(clk'eventandclk='1')thenifsect1="1001"thensect1<="0000";ifsect2="0101"thensect2<="0000";else sect2<=sect2+1;endif;else sect1<=sect1+1;endif;第38頁,共73頁,2023年,2月20日,星期六3、CASE語句case表達式iswhen分支條件=>順序處理語句;
when分支條件=>順序處理語句;
when分支條件=>順序處理語句;
endcase;例:casecountiswhen"000"=>data<=in1;when"001"=>data<=in2;when"010"=>data<=in3;when"011"=>data<=in4;when"100"=>data<=in5;whenothers=>data<=in6;endcase;第39頁,共73頁,2023年,2月20日,星期六3.3.2并發(fā)(Concurrent)描述語句[標記:]process[(敏感信號表)] begin{順序語句}endprocess[標記];敏感信號表:進程內要讀取的所有敏感信號(包括端口)的列表。每個敏感信號的變化,都將啟動進程。1、同步進程的敏感信號表中只有時鐘信號。例:process(clk)2、異步進程敏感信號表中除時鐘信號外,還有其它信號。例:process(clk,reset)第40頁,共73頁,2023年,2月20日,星期六例process(reset,clk)beginifreset='1'thensect1<="0000";sect2<="0000";…… sec1<=sect1;sec2<=sect2; endif;endprocess;第41頁,共73頁,2023年,2月20日,星期六數字鐘電路圖秒計數器分計數器時計數器顯示譯碼器數據選擇器第42頁,共73頁,2023年,2月20日,星期六“分計數”VHDL程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityAAAAisport(clk,reset:instd_logic;xxxx,yyyy:outstd_logic_vector(3downto0);bl:outstd_logic);endAAAA;architecturet1ofAAAAissignalcccc,dddd:std_logic_vector(3downto0);begin第43頁,共73頁,2023年,2月20日,星期六
以下程序略第44頁,共73頁,2023年,2月20日,星期六“時計數”VHDL程序
略第45頁,共73頁,2023年,2月20日,星期六六選一數據選擇器VHDL程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitym6_1scanisport(clkscan,reset:instd_logic;in1,in2,in3,in4,in5,in6:instd_logic_vector(3downto0);data:outstd_logic_vector(3downto0);sel:outstd_logic_vector(2downto0));endm6_1scan;architecturet1ofm6_1scanissignalcount:std_logic_vector(2downto0);begin第46頁,共73頁,2023年,2月20日,星期六顯示譯碼VHDL程序libraryieee;useieee.std_logic_1164.all;entityclk7is
port(data:instd_logic_vector(3downto0);doute:outstd_logic_vector(6downto0));endclk7;architecturebehaveofclk7isbegin第47頁,共73頁,2023年,2月20日,星期六四、軟件開發(fā)環(huán)境MAXPLUSII創(chuàng)建新目錄“E:\XX”運行MAXPLUSII軟件第48頁,共73頁,2023年,2月20日,星期六建立VHDL新文件
打開AlteraMAX+plus軟件后,首先選擇“File”中的“New”,建立一個新的VHDL文件;第49頁,共73頁,2023年,2月20日,星期六選擇待編輯的文件類型編輯VHDL源程序選擇“TextEditorfile”第50頁,共73頁,2023年,2月20日,星期六輸入源程序第51頁,共73頁,2023年,2月20日,星期六將源程序存為VHDL文件格式選擇“FileSaveAs…”,出現(xiàn)右邊窗口點擊“Drivers:”,選擇“E”驅動器點擊“Directories:”,選擇“XX”目錄點擊“AutomaticExtension”,選擇“.vhd”在“FileName:”后輸入文件名“second.vhd”點擊“OK”按扭,即可保存寫好的VHDL語言程序第52頁,共73頁,2023年,2月20日,星期六建立并輸入其他VHDL源文件按照上述方法,依次輸入并建立各個VHDL源程序,得到下列所示各個文件。第53頁,共73頁,2023年,2月20日,星期六設置VHDL文件為當前工程選擇“FileProjectSetProjecttoCurrentFile”第54頁,共73頁,2023年,2月20日,星期六編譯VHDL源文件點擊“MAX+plusIICompilerStart”進行編譯如果警告和錯誤不為0,要改正錯誤直至全部正確第55頁,共73頁,2023年,2月20日,星期六建立仿真文件
選擇“FileNew”,建立一個新的仿真文件第56頁,共73頁,2023年,2月20日,星期六建立仿真文件選擇“WaveformEditorfile”,并選擇文件擴展名為“.scf”,得到仿真波形窗口第57頁,共73頁,2023年,2月20日,星期六添加仿真波形名稱點擊“NodeEnterNodesfromSNF…”,出現(xiàn)下面窗口點擊右上方“List”,左邊窗口顯示全部信號名稱,將待仿真的信號添加到右邊窗口點擊“OK”。第58頁,共73頁,2023年,2月
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版高端婚禮場地租賃合同提供婚禮策劃及婚慶服務6篇
- 2025年度路燈亮化工程承包合同示范文本4篇
- 2025年度吹填工程合同履行進度與質量驗收合同4篇
- 2025年度留學簽證逾期處理合同4篇
- 2025年度醫(yī)療美容超聲刀銷售與市場分析合作合同4篇
- 2025年度智慧城市建設項目綠化養(yǎng)護服務合同范本8篇
- 2025版停車場物業(yè)管理服務外包合同6篇
- 二零二五版智能語音識別技術服務續(xù)簽合同范本2篇
- 2025版民宿布草租賃及洗滌配送服務合同4篇
- 2025版兄妹共同財產分割及遺產繼承合同范本3篇
- 天津市武清區(qū)2024-2025學年八年級(上)期末物理試卷(含解析)
- 《徐霞客傳正版》課件
- 江西硅博化工有限公司年產5000噸硅樹脂項目環(huán)境影響評價
- 高端民用航空復材智能制造交付中心項目環(huán)評資料環(huán)境影響
- 量子醫(yī)學成像學行業(yè)研究報告
- DB22T 3268-2021 糧食收儲企業(yè)安全生產標準化評定規(guī)范
- 辦事居間協(xié)議合同范例
- 正念減壓療法詳解課件
- GB 30254-2024高壓三相籠型異步電動機能效限定值及能效等級
- 重大事故隱患判定標準與相關事故案例培訓課件
- 藥物制劑工(三級)理論試題題庫及答案
評論
0/150
提交評論