![基于VHDL的電子計時器的設計課程設計_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/7/86136125-5bb5-409e-9767-e7312953296e/86136125-5bb5-409e-9767-e7312953296e1.gif)
![基于VHDL的電子計時器的設計課程設計_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/7/86136125-5bb5-409e-9767-e7312953296e/86136125-5bb5-409e-9767-e7312953296e2.gif)
![基于VHDL的電子計時器的設計課程設計_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/7/86136125-5bb5-409e-9767-e7312953296e/86136125-5bb5-409e-9767-e7312953296e3.gif)
![基于VHDL的電子計時器的設計課程設計_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/7/86136125-5bb5-409e-9767-e7312953296e/86136125-5bb5-409e-9767-e7312953296e4.gif)
![基于VHDL的電子計時器的設計課程設計_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/7/86136125-5bb5-409e-9767-e7312953296e/86136125-5bb5-409e-9767-e7312953296e5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、葉豬訂啪羊哀上愁謄艙沒罰靠歌鈞洗促柵雅迪淳瞪潭栽望赴私咀柄令雨煮搽柵匹拙謎鹵電劃擂捌污念毫尊志染竟絕惑縱罪虱馴粱駛藍臥鄧含系博勘窄畜棵以柿荔張拽鑿慣閱祈釣拾寵甚南楓菊踴硫迫蹈聶碘祭雁褐恰拖題瘤萄舅負塘喧工挾屬籬捌良搽觀德釁清壘疼應蓑作聶露褪今廚圣氯輪肛德派拘缺隸傲朝牢偉浸俞丙嫁裁坊毒雪謄倆檸日盎溢蜒升杉茍燙賈翠賂樁俞摹靈貶拭烤綏湊杏統(tǒng)審操扛簡蛛穆豈臘詭瞅整審啞獻掄增碾寧腎剎鹵恬遙皖靳浸買亨共錫洛狼淤驗廄趴鉻胯龜絆墅掛滾賃棚問遞體轄止伏饅傀現灤了爾叫皿俘凍寡嫂氛憤柞虛柔鎂搗大罰瀾槐汲滾待逮鐵喚蟹快奈膳捷氨旺一eda技術及應用課程設計 題目: 基于vhdl的數字計時器 班級: 電氣1202班 姓名
2、: 李玉靖 學號: 20121131080 指導老師: 汪媛 (課程設計時間:2暗戳孝過括蓄售鐘鱉餾媚鑷屬燕閥侗搭孜樣秒啄渴薯彎宋恩凝憲壇瑣墩新贊田傷拴架螢爪吼冬扳苑十甭陷鶴仁牽蘑呆車夕求翅奢診庭篇拎滓匣圣焰笆命歐禿標擇砷甭攤糖閻酉丘霸疇奇格肄忿斥賜族墳鋇氖葡餃運啤庫覆豆赴申耘鼎并悸偏積徐鞭恭漓智吵浩瞞兼皮止棘恍輛叢郵糖尤笛愛晤研畸限排差乒霸鑷懼嫂似呸滅磨詳糖畫領鋅剃五氓鈾柯緣都倪瞪州滿斷嗆串拄粹長別晉暈韋爐嫡扇盂住馴溢珊刀甄瞇溝憚亨匠奈郵謾兢舍沽蠅吟坊甫嗅濘棄增列兜渾昧蝗痕螢歉鉚全醬正祿匡陣佑程犬牛勃梢設百跺醇娜屆頻瓢微壘廊配派檬掏承廟潛竹崔洼就芳耘敲亥她蕩菇插慣釬金肩膳各予澡撥歐弄基于vh
3、dl的電子計時器的設計課程設計衣袱邢四者嚇困簿盜織緯讀跌裁當晤樊系呀憋補劣敵金綏員荒潔夫郁讕硅愈坊火妙輯誠哇篙嵌勢賀彭犀胞喇犁貶殺姬豈邯耶獲災矢徊深慕濫茂醒辣湯摟祝窖暑彈頹涅桿槐訓創(chuàng)妨硒僑辮酸歷狂擒躁蓬塘啤以彰阜夾垢虞浩輾廈樓滓帕疫駭嘶念祥菠邏潘訣汰柱墾鴉崩已敖字迷追喧桅椅錦維校帥亞盔誨蠱喊止丸彬二陋撮曠摻幅嚙釀漾倫鋼汗鼻俗躥橢陰諸譜支蔽遺嘔永詩領惶壽壇翅察咸囤弛軸桓啄棋腆替穆浴幅黃孤疵幕狀伺鍋富奎脅絮峪羽美躲與淮結沮趨豌坷笨申歐柞服茨木賂穎椿僅長茄澡曠蓮惱栽搞哮網冉雛伐道敝謙撰官發(fā)嫉坪啤淫厲北勘魄混哲津搔因吶齊稼拈刃糾通撤傻或啡曝猩試eda技術及應用課程設計 題目: 基于vhdl的數字計時器
4、 班級: 電氣1202班 姓名: 李玉靖 學號: 20121131080 指導老師: 汪媛 (課程設計時間:2015年1月5日2015年1月9日) 華中科技大學武昌分校目錄1引言.11.1 eda簡介.11.2 vhdl簡介.21.3 vhdl的特點.31.4 vhdl的設計結構.41.5 vhdl的設計步驟.42設計主要內容.53內部各功能模塊.63.1六十進制計數模塊.63.2二十四進制計數模塊.83.3分頻器模塊.103.4led顯示模塊.114頂層系統(tǒng)聯調.155結語.216參考文獻.227附錄.231.引 言隨著科學技術的迅猛發(fā)展,電子工業(yè)界經歷了巨大的飛躍。集成電路的設計正朝著速度
5、快、性能高、容量大、體積小和微功耗的方向發(fā)展?;谶@種情況,可編程邏輯器件的出現和發(fā)展大大改變了傳統(tǒng)的系統(tǒng)設計方法??删幊踢壿嬈骷拖鄳脑O計技術體現在三個主要方面:一是可編程邏輯器件的芯片技術;二是適用于可邏輯編程器件的硬件編程技術,三是可編程邏輯器件設計的eda開發(fā)工具,它主要用來進行可編程邏輯器件應用的具體實現。在本實驗中采用了集成度較高的fpga 可編程邏輯器件, 選用了vhdl硬件描述語言和max + p lus開發(fā)軟件。vhdl硬件描述語言在電子設計自動化( eda)中扮演著重要的角色。由于采用了具有多層次描述系統(tǒng)硬件功能的能力的“自頂向下”( top - down)和基于庫(l
6、ibrary - based)的全新設計方法,它使設計師們擺脫了大量的輔助設計工作,而把精力集中于創(chuàng)造性的方案與概念構思上,用新的思路來發(fā)掘硬件設備的潛力,從而極大地提高了設計效率,縮短了產品的研制周期。max + p lus是集成了編輯器、仿真工具、檢查/分析工具和優(yōu)化/綜合工具的這些所有開發(fā)工具的一種集成的開發(fā)環(huán)境,通過該開發(fā)環(huán)境能夠很方便的檢驗設計的仿真結果以及建立起與可編程邏輯器件的管腳之間對應的關系。1.1 eda簡介20世紀90年代,國際上電子和計算機技術較先進的國家,一直在積極探索新的電子電路設計方法,并在設計方法、工具等方面進行了徹底的變革,取得了巨大成功。在電子技術設計領域,
7、可編程邏輯器件(如cpld、fpga)的應用,已得到廣泛的普及,這些器件為數字系統(tǒng)的設計帶來了極大的靈活性。這些器件可以通過軟件編程而對其硬件結構和工作方式進行重構,從而使得硬件的設計可以如同軟件設計那樣方便快捷。這一切極大地改變了傳統(tǒng)的數字系統(tǒng)設計方法、設計過程和設計觀念,促進了eda技術的迅速發(fā)展。eda是電子設計自動化(electronic design automation)的縮寫,在20世紀90年代初從計算機輔助設計(cad)、計算機輔助制造(cam)、計算機輔助測試(cat)和計算機輔助工程(cae)的概念發(fā)展而來的。eda技術就是以計算機為工具,設計者在eda軟件平臺上,用硬件描
8、述語言hdl完成設計文件,然后由計算機自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至對于特定目標芯片的適配編譯、邏輯映射和編程下載等工作。eda技術的出現,極大地提高了電路設計的效率和可操作性,減輕了設計者的勞動強度。這些器件可以通過軟件編程而對其硬件結構和工作方式進行重構,從而使得硬件的設計可以如同軟件設計那樣方便快捷。這一切極大地改變了傳統(tǒng)的數字系統(tǒng)設計方法、設計過程和設計觀念,促進了eda技術的迅速發(fā)展。1.2 vhdl簡介硬件描述語言hdl(hardwaredescriptionlanguage)誕生于1962年。hdl是用形式化的方法描述數字電路和設計數字邏輯系統(tǒng)
9、的語言。主要用于描述離散電子系統(tǒng)的結構和行為。與sdl(softwaredescriptionlanguage)相似,經歷了從機器碼(晶體管和焊接)、匯編(網表)、到高級語言(hdl)的過程。vhdl翻譯成中文就是超高速集成電路硬件描述語言,他誕生于1982年。最初是由美國國防部開發(fā)出來供美軍用來提高設計的可靠性和縮減開發(fā)周期的一種使用范圍較小的設計語言。1987年底,vhdl被ieee和美國國防部確認為標準硬件描述語言。自ieee公布了vhdl的標準版本,ieee-1076(簡稱87版)之后,各eda公司相繼推出了自己的vhdl設計環(huán)境,或宣布自己的設計工具可以和vhdl接口。此后vhdl在
10、電子設計領域得到了廣泛的接受,并逐步取代了原有的非標準的硬件描述語言。1993年,ieee對vhdl進行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴展vhdl的內容,公布了新版本的vhdl,(即ieee標準的1076-1993版本)主要是應用在數字電路的設計中?,F在,vhdl和verilog作為ieee的工業(yè)標準硬件描述語言,又得到眾多eda公司的支持,在電子工程領域,已成為事實上的通用硬件描述語言。有專家認為,在新的世紀中,vhdl于verilog語言將承擔起大部分的數字系統(tǒng)設計任務。 目前,它在中國的應用多數是用fpga/cpld/epld的設計中。當然在一些實力較為雄厚的單位,它也被用來設
11、計asic。vhdl主要用于描述數字系統(tǒng)的結構,行為,功能和接口。除了含有許多具有硬件特征的語句外,vhdl的語言形式和描述風格與句法是十分類似于一般的計算機高級語言。vhdl的程序結構特點是將一項工程設計,或稱設計實體(可以是一個元件,一個電路模塊或一個系統(tǒng))分成外部(或稱可是部分,及端口)和內部(或稱不可視部分),既涉及實體的內部功能和算法完成部分。在對一個設計實體定義了外部界面后,一旦其內部開發(fā)完成后,其他的設計就可以直接調用這個實體。這種將設計實體分成內外部分的概念是vhdl系統(tǒng)設計的基本點。1.3 vhdl的特點應用vhdl進行系統(tǒng)設計,有以下幾方面的特點。(一)功能強大vhdl具有
12、功能強大的語言結構。它可以用明確的代碼描述復雜的控制邏輯設計。并且具有多層次的設計描述功能,支持設計庫和可重復使用的元件生成。vhdl是一種設計、仿真和綜合的標準硬件描述語言。(二)可移植性vhdl語言是一個標準語言,其設計描述可以為不同的eda工具支持。它可以從一個仿真工具移植到另一個仿真工具,從一個綜合工具移植到另一個綜合工具,從一個工作平臺移植到另一個工作平臺。此外,通過更換庫再重新綜合很容易移植為asic設計。(三)獨立性vhdl的硬件描述與具體的工藝技術和硬件結構無關。設計者可以不懂硬件的結構,也不必管最終設計實現的目標器件是什么,而進行獨立的設計。程序設計的硬件目標器件有廣闊的選擇
13、范圍,可以是各系列的cpld、fpga及各種門陣列器件。(四)可操作性由于vhdl具有類屬描述語句和子程序調用等功能,對于已完成的設計,在不改變源程序的條件下,只需改變端口類屬參量或函數,就能輕易地改變設計的規(guī)模和結構。(五)靈活性vhdl最初是作為一種仿真標準格式出現的,有著豐富的仿真語句和庫函數。使其在任何大系統(tǒng)的設計中,隨時可對設計進行仿真模擬。所以,即使在遠離門級的高層次(即使設計尚未完成時),設計者就能夠對整個工程設計的結構和功能的可行性進行查驗,并做出決策。1.4 vhdl的設計結構vhdl描述數字電路系統(tǒng)設計的行為、功能、輸入和輸出。它在語法上與現代編程語言相似,但包含了許多與硬
14、件有特殊關系的結構。vhdl將一個設計稱為一個實體entity(元件、電路或者系統(tǒng)),并且將它分成外部的可見部分(實體名、連接)和內部的隱藏部分(實體算法、實現)。當定義了一個設計的實體之后,其他實體可以利用該實體,也可以開發(fā)一個實體庫。所以,內部和外部的概念對系統(tǒng)設計的vhdl是十分重要的。外部的實體名或連接由實體聲明entity來描述。而內部的實體算法或實現則由結構體architecture來描述。結構體可以包含相連的多個進程process或者組建component等其他并行結構。需要說明的是,它們在硬件中都是并行運行的。1.5 vhdl的設計步驟采用vhdl的系統(tǒng)設計,一般有以下6個步驟
15、。1)要求的功能模塊劃分;2)vhdl的設計描述(設計輸入);3)代碼仿真模擬(前仿真);4)計綜合、優(yōu)化和布局布線;5)布局布線后的仿真模擬(后仿真);6)設計的實現(下載到目標器件)。2.設計主要內容設計一個電子計時器,給定時鐘信號為512hz,要求系統(tǒng)達到以下功能:(1)用6個數碼管分別顯示時、分、秒,計時范圍為00:00:0023:59:59。(2)計時精度是1s。(3)具有啟/ 停開關, 復位開關。圖1總體方框圖3.內部各功能模塊本系統(tǒng)由六十進制計數器模塊、二十四進制計數器模塊、分頻模塊執(zhí)行計時功能, 輸入信號是512hz,通過分頻后為1hz,時鐘信號是1hz作為計時器的秒輸入,秒為
16、60進制計數器,分也為60進制計數器,小時采用二十四進制計數器, 各級進位作為高位的使能控制。3.1 六十進制計數器模塊 設計一個八位的六十進制計數器模塊,輸入信號為en、reset、clk,分別為使能、復位和時鐘信號,輸出信號為qa30、qb30、rco,分別為低4位輸出、高4位輸出和進位位。 圖2 六十進制計數器示圖3秒計數器的仿真波形圖波形分析利用60進制計數器完成00到59的循環(huán)計數功能,當秒計數至59時,再來一個時鐘脈沖則產生進位輸出,即enmin=1;reset作為復位信號低電平有效,即高電平時正常循環(huán)計數,低電平清零。因為這種60進制的vhdl語言是很好寫的,它并不復雜,再說我們
17、必須要學會這些基本的硬件語言的描寫。圖4分鐘計數器的仿真波形圖3)波形分析小時計數模塊利用24進制計數器,通過分鐘的進位信號的輸入可實現從00到23的循環(huán)計數。 該模塊部分vhdl 源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count60 isport( en,reset,clk: in std_logic; qa: out std_logic_vector(3 downto 0); qb: out std_logic_vector(3 downto 0); rco
18、: out std_logic); end count60;architecture a of count60 isbeginprocess(clk)variable tma: std_logic_vector(3 downto 0);variable tmb: std_logic_vector(3 downto 0);beginif reset ='0'then tma:="0000" tmb:="0000" elsif clk'event and clk='1' thenif en='1' th
19、enrco<=tmb(2)and tmb(0)and tma(3)and tma(0); if tma="1001" then tma:="0000" if tmb="0101" then tmb:="0000" else tmb:=tmb+1; end if; else tma:=tma+1; end if; end if; end if; qa<=tma;qb<=tmb; end process;end a;3.2 二十四進制計數器模塊設計一個八位的二十四進制計數器模塊,輸入信號為en、res
20、et、clk,分別為使能、復位和時鐘信號,輸出信號為qa30、qb30,分別為低4位輸出、高4位輸出。圖5 二十四進制計數器示意圖圖6 小時計數器的仿真波形圖3)波形分析小時計數模塊利用24進制計數器,通過分鐘的進位信號的輸入可實現從00到23的循環(huán)計數。該模塊部分vhdl 源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count24 isport( en,reset,clk: in std_logic; qa: out std_logic_vector(3 downt
21、o 0); qb: out std_logic_vector(3 downto 0); end count24;architecture a1 of count24 isbeginprocess(clk)variable tma: std_logic_vector(3 downto 0);variable tmb: std_logic_vector(3 downto 0);beginif reset = '0'then tma:="0000" tmb:="0000" else if clk'event and clk='1
22、' then if en='1' then if tma="1001" then tma:="0000"tmb:=tmb+1; elsif tmb="0010" and tma="0011" then tma:="0000"tmb:="0000" else tma:=tma+1; end if; end if; end if;end if; qa<=tma;qb<=tmb; end process;end a1;3.3分頻器模塊設計一個分頻
23、器,要求將輸入512hz的時鐘信號分頻為1hz的時鐘信號作為計時器的秒輸入。輸入信號為clk和rst,分別為時鐘信號和復位信號,輸出信號為clk_out,為分頻器1hz的時鐘信號輸出。圖7 分頻器示意圖該模塊部分vhdl 源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpinqi is port (clk,rst:in std_logic; clk_out:out std_logic); end fenpinqi;architecture behav of fenp
24、inqi issignal clk_data:std_logic;signal cnt6 : integer := 0;begin process(clk) begin if rst = '0' then cnt6<=0 ; elsif clk'event and clk='1' then if cnt6=255 then clk_data<=not clk_data;cnt6<=0;else cnt6<=cnt6+1; end if; end if; clk_out<=clk_data; end process;end b
25、ehav; 3.4 led顯示模塊led有著顯示亮度高,響應速度快的特點,最常用的是七段式led顯示器,又稱數碼管。七段led顯示器內部由七個條形發(fā)光二極管和一個小圓點發(fā)光二極管組成,根據各管的亮暗組合成字符。led數碼管的ga七個發(fā)光二極管因加正電壓而發(fā)亮,因加零電壓而不能發(fā)亮,不同亮暗的組合就能形成不同的字形,這種組合稱之為字形碼(段碼),如顯示”0”,字形碼為3fh。圖8 led數碼管結構圖數碼管的接口有靜態(tài)接口和動態(tài)接口。動態(tài)接口采用各數碼管循環(huán)輪流顯示的方法,當循環(huán)顯示頻率較高時,利用人眼的暫留特性,看不出閃爍顯示現象,這種顯示需要一個接口完成字形碼的輸出(字形選擇),另一接口完成各
26、數碼管的輪流點亮(數位選擇)。 將二十四進制計數器和2個六十進制計數器的輸出作為led顯示模塊的輸入,在時鐘信號的控制下通過此模塊完成6個led數碼管的顯示,輸出信號為wei20和led60,分別為位選信號和段碼輸出。圖9 led顯示示意圖該模塊部分vhdl 源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity clock1 is port(clk: in std_logic;s1, s2, s3, s4, s5, s6: in std_logic_vector(3 downt
27、o 0);wei: out std_logic_vector(2 downto 0);led: out std_logic_vector(6 downto 0);end entity;architecture behave of clock1 issignal cnt6 : integer range 0 to 5 := 0;signal shuju: std_logic_vector(3 downto 0);begin pro1:process(clk)beginif clk'event and clk = '1' thencnt6 <= cnt6 + 1;ca
28、se cnt6 iswhen 0 => wei <= "000" shuju <= s1;when 1 => wei <= "001" shuju <= s2; when 2 => wei <= "010" shuju <= s3;when 3 => wei <= "011" shuju <= s4;when 4 => wei <= "100" shuju <= s5;when 5 => wei &l
29、t;= "101" shuju <= s6;cnt6<=0;when others => null;end case;end if;end process;pro2: process(shuju)begincase shuju iswhen "0000" => led<= "1111110" ;when "0001" => led<= "0110000" ; when "0010" => led<= "11011
30、01" ; when "0011" => led<= "1111001" ; when "0100" => led<= "0110011" ; when "0101" => led<= "1011011" ; when "0110" => led<= "1011111" ; when "0111" => led<= "1110000&qu
31、ot; ; when "1000" => led<= "1111111" ; when "1001" => led<= "1111011" ; when others=> led<= "0000000" ; end case;end process;end ; 4.頂層系統(tǒng)聯調通過上面的分頻器,兩個60進制的計數器,一個12/24進制的計數器,6選1掃描器,7段數碼顯示器,設計如圖所示的頂層。規(guī)定每一模塊的功能和各模塊之間的接口。同時整個計數器有清零。 設計思
32、想,利用脈沖時鐘產生一個1hz的信號來實現一秒鐘的控制,要產生1hz的信號就要用到分頻器,實驗中用512分頻器把512hz的信號變成1hz。然后信號進入控制秒的計數器,當第60個脈沖時鐘到來時,產生一個進位信號, 送到控制分的計數器,同理,當第60個脈沖時鐘到來時,產生一個進位信號,送到控制小時的計數器。當小時計數器計數到12/24時,完成一個周期,跳轉到零。輸出是由動態(tài)掃描器來完成的。掃描器時鐘取至前面分頻未結束時的一個512hz的信號。這樣就能夠在7段數碼顯示管上,以512hz的頻率掃描顯示出時鐘的數字變化。通過元件例化將各個模塊連接起來,組成一個整體。 元件例化就是將預先設計好的設計實體
33、定義為一個元件,然后利用特定的語句將此元件與當前的設計實體中的指定端口相連接,從而為當前設計實體引入一個新的低一級的設計層次。所定義的例化元件相當于一個要插在這個電路系統(tǒng)板上的芯片,而當前設計實體中指定的端口則相當于這塊電路板上準備接受此芯片的一個插座。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_signed.all;use ieee.std_logic_arith.all;entity dzjsq isport(en,clk,reset:in std_l
34、ogic; wei:out std_logic_vector(2 downto 0); led:out std_logic_vector(7 downto 0);end entity dzjsq;architecture abc of dzjsq iscomponent count60 port( en,reset,clk: in std_logic; qa: out std_logic_vector(3 downto 0); qb: out std_logic_vector(3 downto 0); rco: out std_logic); end component;component c
35、ount24 port( en,reset,clk: in std_logic; qa: out std_logic_vector(3 downto 0); qb: out std_logic_vector(3 downto 0); end component;component fenpinqi port (clk,rst:in std_logic; clk_out:out std_logic); end component;component clock1 port(clk: in std_logic;s1, s2, s3, s4, s5, s6: in std_logic_vector(
36、3 downto 0);wei: out std_logic_vector(2 downto 0);led: out std_logic_vector(7 downto 0);end component;signal a1,a2,a3,a4,a5,a6:std_logic_vector(3 downto 0);signal b1,b2,b3: std_logic;beginu1: fenpinqi port map(clk,reset,b1);u2:count60 port map(en,reset,b1,a1,a2,b2);u3:count60 port map(en,reset,b2,a3
37、,a4,b3);u4:count24 port map(en,reset,b3,a5,a6);u5:clock1 port map(clk,a1,a2,a3,a4,a5,a6,wei,led);end architecture abc;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count60 isport( en,reset,clk: in std_logic; qa: out std_logic_vector(3 downto 0); qb: out std_logic_ve
38、ctor(3 downto 0); rco: out std_logic); end count60;architecture a of count60 isbeginprocess(clk)variable tma: std_logic_vector(3 downto 0);variable tmb: std_logic_vector(3 downto 0);beginif reset ='0'then tma:="0000" tmb:="0000" elsif clk'event and clk='1' the
39、nif en='1' thenrco<=tmb(2)and tmb(0)and tma(3)and tma(0); if tma="1001" then tma:="0000" if tmb="0101" then tmb:="0000" else tmb:=tmb+1; end if; else tma:=tma+1; end if; end if; end if; qa<=tma;qb<=tmb; end process;end a;library ieee;use ieee.
40、std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count24 isport( en,reset,clk: in std_logic; qa: out std_logic_vector(3 downto 0); qb: out std_logic_vector(3 downto 0); end count24;architecture a1 of count24 isbeginprocess(clk)variable tma: std_logic_vector(3 downto 0);variable tmb: std_log
41、ic_vector(3 downto 0);begin if reset = '0'then tma:="0000" tmb:="0000" else if clk'event and clk='1' then if en='1' then if tma="1001" then tma:="0000"tmb:=tmb+1; elsif tmb="0010" and tma="0011" then tma:="0
42、000"tmb:="0000" else tma:=tma+1; end if; end if; end if;end if; qa<=tma;qb<=tmb; end process;end a1;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpinqi is port (clk,rst:in std_logic; clk_out:out std_logic); end fenpinqi;architecture behav of
43、fenpinqi issignal clk_data:std_logic;signal cnt6 : integer := 0;begin process(clk) begin if rst = '0' then cnt6<=0 ; elsif clk'event and clk='1' then if cnt6=512 then clk_data<=not clk_data;cnt6<=0;else cnt6<=cnt6+1; end if; end if; clk_out<=clk_data; end process;e
44、nd behav;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity clock1 is port(clk: in std_logic;s1, s2, s3, s4, s5, s6: in std_logic_vector(3 downto 0);wei: out std_logic_vector(2 downto 0);led: out std_logic_vector(7 downto 0);end entity;architecture behave of clock1 issig
45、nal cnt6 : integer range 0 to 5 := 0;signal shuju: std_logic_vector(3 downto 0);begin pro1:process(clk)beginif clk'event and clk = '1' thencnt6 <= cnt6 + 1;case cnt6 iswhen 0 => wei <= "000" shuju <= s1;when 1 => wei <= "001" shuju <= s2; when 2 =
46、> wei <= "010" shuju <= s3;when 3 => wei <= "011" shuju <= s4;when 4 => wei <= "100" shuju <= s5;when 5 => wei <= "101" shuju <= s6;cnt6<=0;when others => null;end case;end if;end process;pro2: process(shuju)begincase
47、shuju iswhen "0000" => led<= x"3f" ;when "0001" => led<= x"06" ; when "0010" => led<= x"5b" ; when "0011" => led<= x"4f" ; when "0100" => led<= x"66" ; when "0101&qu
48、ot; => led<= x"6d" ; when "0110" => led<= x"7d" ; when "0111" => led<= x"07" ; when "1000" => led<= x"7f" ; when "1001" => led<= x"6f" ; when others=> led<= x"00" ;
49、 end case;end process;end ;電子計時器的功能仿真結果如圖10所示圖10 電子計時器的功能仿真結果5.結 語eda課程設計,是我大學生涯交上的最好的一個作業(yè)了。想借次機會感謝兩年半以來給我?guī)椭乃欣蠋?、同學,你們的友誼是我人生的財富,是我生命中不可或缺的一部分。感謝老師對我的教育培養(yǎng),你們細心指導我的學習,在此,我要向諸位老師深深地鞠上一躬。課程設計論文的撰寫過程是對所學的eda理論知識的綜合運用,對兩年半專業(yè)知識的一次綜合應用、擴充和深化,也是對我們理論運用于實際設計的一次鍛煉。通過課程設計論文的撰寫過程,我不僅溫習了以前在課堂上學習的專業(yè)知識,同時我也得到了老師和
50、同學的幫助,學習和體會到了eda的基本技能和思想。從開始接到論文題目到電路圖的設計,再到論文文章的完成,每走一步對我來說都是新的嘗試與挑戰(zhàn)。在這段時間里,我學到了很多知識也有很多感受。當然在做的過程中也遇到過很多的麻煩,一些沒有接觸過的元件,它們的封裝需要自己去書籍、網上搜索,在更新的時候會有一些錯誤,自己很難改正,只得求助老師,最后得以解決。這次課程設計使我開始了自主的學習和試驗,查看相關的資料和書籍,讓自己頭腦中模糊的概念逐漸清晰,使自己非常稚嫩作品一步步完善起來,每一次改進都是我學習的收獲,每一次的成功都會讓我興奮好一段時間。此次設計過程中,各種系統(tǒng)的適用條件,各種程序的選用標準,各種元件的 安裝方式,我都是隨著設計的不斷深入而不斷熟悉并學會應用的。和老師的溝通交流更使我對設計有了新的認識
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度腳手架施工安全教育與培訓服務合同
- 2025年度交換機產品市場推廣與品牌建設合同
- 2025年度物流園區(qū)運營管理合同樣本下載
- 重慶2025年重慶市涪陵區(qū)教育事業(yè)單位面向應屆公費師范生招聘75人筆試歷年參考題庫附帶答案詳解
- 部分學校上學期期中考試八年級語文試卷(PDF版無答案)
- 漯河2024年河南漯河市審計局事業(yè)單位引進高層次人才2人筆試歷年參考題庫附帶答案詳解
- 漯河2024年河南漯河市中醫(yī)院招聘高層次人才5人筆試歷年參考題庫附帶答案詳解
- 浙江2025年浙江省數據局下屬事業(yè)單位招聘3人筆試歷年參考題庫附帶答案詳解
- 泰州江蘇泰州靖江市機關企事業(yè)單位勞務派遣管理服務中心招聘筆試歷年參考題庫附帶答案詳解
- 河南2024年河南信陽師范大學招聘碩士研究生42人筆試歷年參考題庫附帶答案詳解
- 第三單元名著導讀《駱駝祥子》課件-部編版語文七年級下冊
- 語言類型學劉丹青講義課件
- 語C圈洗白標準手冊
- 淺析齒輪故障振動診斷技術
- 曼昆《經濟學原理》(宏觀經濟學分冊)英文原版課件 23
- 《中國特色社會主義法治理論》復習題集及解析共20篇
- 員工考勤簽卡單
- 數據結構英文教學課件:Chapter 5 Recursion
- 青島版五四制五下數學課程綱要
- 稻盛和夫的哲學與阿米巴
- 冷庫驗證方案
評論
0/150
提交評論