欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      FPGA可調(diào)數(shù)字時鐘實驗報告

      時間:2019-05-12 01:09:29下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《FPGA可調(diào)數(shù)字時鐘實驗報告》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《FPGA可調(diào)數(shù)字時鐘實驗報告》。

      第一篇:FPGA可調(diào)數(shù)字時鐘實驗報告

      浙江大學(xué)城市學(xué)院

      實驗報告紙

      一、實驗要求

      1、用vhdl編程,實現(xiàn)10進(jìn)制計數(shù)器

      2、用vhdl編程,實現(xiàn)60進(jìn)制計數(shù)器

      3、用vhdl編程,實現(xiàn)數(shù)字時鐘,時、分、秒、毫秒分別顯示在數(shù)碼管上。

      4、實現(xiàn)可調(diào)數(shù)字時鐘的程序設(shè)計,用按鍵實現(xiàn)時、分、秒、毫秒的調(diào)整。

      二、實驗原理

      用VHDL,行為級描述語言實現(xiàn)實驗要求。思路如下:

      1、分頻部分:由50MHZ分頻實現(xiàn)1ms的技術(shù),需要對50MHZ采取500000分頻。

      2、計數(shù)部分:采用低級影響高級的想法,類似進(jìn)位加1的思路。對8個寄存器進(jìn)行計數(shù),同步數(shù)碼管輸出。

      3、數(shù)碼管輸出部分:用一個撥碼開關(guān)控制顯示,當(dāng)sw0=0時,四位數(shù)碼管顯示秒、毫秒的計數(shù)。當(dāng)sw0=1時,四位數(shù)碼管顯示時、分得計數(shù)。

      4、調(diào)整部分:分別用四個按鍵控制時、分、秒、毫秒的數(shù)值。先由一個開關(guān)控制計數(shù)暫停,然后,當(dāng)按鍵按下一次,對應(yīng)的數(shù)碼管相對之前的數(shù)值加1,,通過按鍵實現(xiàn)時間控制,最后開關(guān)控制恢復(fù)計數(shù),完成時間調(diào)整。

      5、整個實現(xiàn)過程由一個文件實現(xiàn)。

      三、實驗過程

      各個引腳說明: Clk:50MHZ SW:數(shù)碼管切換,SW=’0’時,數(shù)碼管顯示為秒,毫秒。SW=’1’時,數(shù)碼管顯示為時,分。

      SW1:暫停與啟動。SW1=’0’時,時鐘啟動,SW=’1’時,時鐘暫停。

      SW2:時鐘調(diào)整接通按鈕,當(dāng)SW2=’0’時,不進(jìn)行調(diào)整,當(dāng)SW=’1’時,通過按鍵調(diào)整時間。

      KEY0: 毫秒調(diào)整,按一次實現(xiàn)+1功能 KEY1:秒調(diào)整,按一次實現(xiàn)+1功能

      浙江大學(xué)城市學(xué)院 實 驗 報 告 紙

      KEY2:分調(diào)整,按一次實現(xiàn)+1功能 KEY3:時調(diào)整,按一次實現(xiàn)+1功能 Q0;第一個數(shù)碼管 Q1;第二個數(shù)碼管 Q2: 第三個數(shù)碼管 Q3: 第四個數(shù)碼管

      1、源代碼如下:

      library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity paobiao is port(clk,sw,key0,key1,key2,key3,sw1,sw2:in std_logic;

      q0:out std_logic_vector(6 downto 0);

      q1:out std_logic_vector(6 downto 0);

      q2:out std_logic_vector(6 downto 0);

      q3:out std_logic_vector(6 downto 0));end paobiao;architecture behave of paobiao is signal cntt1 :integer range 0 to 10;signal cntt2 :integer range 0 to 10;signal cntt3 :integer range 0 to 10;signal cntt4 :integer range 0 to 6;signal cntt5 :integer range 0 to 10;signal cntt6 :integer range 0 to 10;signal cntt7 :integer range 0 to 10;signal cntt8 :integer range 0 to 6;浙江大學(xué)城市學(xué)院 實 驗 報 告 紙

      signal cntttt1 :integer range 0 to 10;signal cntttt2 :integer range 0 to 10;signal cntttt3 :integer range 0 to 10;signal cntttt4 :integer range 0 to 6;signal cntttt5 :integer range 0 to 10;signal cntttt6 :integer range 0 to 10;signal cntttt7 :integer range 0 to 10;signal cntttt8 :integer range 0 to 6;

      begin

      process(clk)--,key0,key1,key2,key3)

      variable cnt :integer range 0 to 500000;

      --variable cnt9 :integer range 0 to 3000000000;

      variable cnt1 :integer range 0 to 10;

      variable cnt2 :integer range 0 to 10;

      variable cnt3 :integer range 0 to 10;

      variable cnt4 :integer range 0 to 6;

      variable cnt5 :integer range 0 to 10;

      variable cnt6 :integer range 0 to 10;

      variable cnt7 :integer range 0 to 10;

      variable cnt8:integer range 0 to 6;

      begin if(clk'event and clk='1')then

      if(sw1='0')then if(cnt>=2)then

      cnt:=0;

      cnt1:=cnt1+1;浙江大學(xué)城市學(xué)院 實 驗 報 告 紙

      if(cnt1=10)then

      cnt1:=0;

      cnt2:=cnt2+1;

      if(cnt2=10)then

      cnt1:=0;

      cnt2:=0;

      cnt3:=cnt3+1;

      if(cnt3=10)then

      cnt1:=0;

      cnt2:=0;

      cnt3:=0;

      cnt4:=cnt4+1;

      if(cnt4=6)then

      cnt1:=0;

      cnt2:=0;

      cnt3:=0;

      cnt4:=0;

      cnt5:=cnt5+1;

      if(cnt5=10)then

      cnt5:=0;

      cnt6:=cnt6+1;

      if(cnt6=6)then

      cnt5:=0;

      cnt6:=0;

      cnt7:=cnt7+1;

      if(cnt7=4)then

      cnt5:=0;

      cnt6:=0;

      cnt7:=0;浙江大學(xué)城市學(xué)院 實 驗 報 告 紙

      cnt8:=cnt8+1;

      if(cnt8=3)then

      cnt5:=0;

      cnt6:=0;

      cnt7:=0;

      cnt8:=0;

      end if;

      end if;

      end if;

      end if;

      end if;

      end if;

      end if;

      end if;

      else cnt:=cnt+1;

      end if;

      if(sw2='0')then

      cntt1<=cnt1;

      cntt2<=cnt2;

      cntt3<=cnt3;

      cntt4<=cnt4;

      cntt5<=cnt5;

      cntt6<=cnt6;

      cntt7<=cnt7;

      cntt8<=cnt8;

      else

      cnt1:=cntttt1;

      cnt2:=cntttt2;

      cnt3:=cntttt3;浙江大學(xué)城市學(xué)院 實 驗 報 告 紙

      cnt4:=cntttt4;

      cnt5:=cntttt5;

      cnt6:=cntttt6;

      cnt7:=cntttt7;

      cnt8:=cntttt8;

      cntt1<=cnt1;

      cntt2<=cnt2;

      cntt3<=cnt3;

      cntt4<=cnt4;

      cntt5<=cnt5;

      cntt6<=cnt6;

      cntt7<=cnt7;

      cntt8<=cnt8;

      end if;

      end if;end if;end process;

      process(key0)variable cnttt1 :integer range 0 to 10;variable cnttt2 :integer range 0 to 10;begin if(key0'event and key0='0')then

      cnttt1:=cnttt1+1;

      if(cnttt1=10)then

      cnttt1:=0;

      cnttt2:=cnttt2+1;

      if(cnttt2=10)then 浙江大學(xué)城市學(xué)院 實 驗 報 告 紙

      cnttt2:=0;

      end if;

      end if;

      cntttt1<=cnttt1;

      cntttt2<=cnttt2;end if;

      end process;process(key1)variable cnttt3 :integer range 0 to 10;variable cnttt4 :integer range 0 to 10;begin if(key1'event and key1='0')then

      cnttt3:=cnttt3+1;

      if(cnttt3=10)then

      cnttt3:=0;

      cnttt4:=cnttt4+1;

      if(cnttt4=6)then

      cnttt4:=0;

      end if;

      end if;cntttt3<=cnttt3;

      cntttt4<=cnttt4;end if;end process;process(key2)variable cnttt5 :integer range 0 to 10;variable cnttt6 :integer range 0 to 10;begin

      if(key2'event and key2='0')then 浙江大學(xué)城市學(xué)院 實 驗 報 告 紙

      cnttt5:=cnttt5+1;

      if(cnttt5=10)then

      cnttt5:=0;

      cnttt6:=cnttt6+1;

      if(cnttt6=6)then

      cnttt6:=0;

      end if;

      end if;cntttt5<=cnttt5;

      cntttt6<=cnttt6;

      end if;end process;process(key3)variable cnttt7 :integer range 0 to 10;variable cnttt8 :integer range 0 to 10;begin

      if(key3'event and key3='0')then

      cnttt7:=cnttt7+1;

      if(cnttt7=4)then

      cnttt7:=0;

      cnttt8:=cnttt8+1;

      if(cnttt8=3)then

      cnttt8:=0;

      end if;

      end if;

      cntttt7<=cnttt7;

      cntttt8<=cnttt8;

      end if;浙江大學(xué)城市學(xué)院 實 驗 報 告 紙

      end process;

      --end if;--end process;

      process(cntt1,cntt5)

      begin

      if(sw='0')then

      case cntt1 is

      when 0=>q0<=“1000000”;

      when 1=>q0<=“1111001”;

      when 2=>q0<=“0100100”;

      when 3=>q0<=“0110000”;

      when 4=>q0<=“0011001”;

      when 5=>q0<=“0010010”;

      when 6=>q0<=“0000010”;

      when 7=>q0<=“1011000”;

      when 8=>q0<=“0000000”;

      when 9=>q0<=“0010000”;

      when others=>q0<=NULL;end case;else

      case cntt5 is

      when 0=>q0<=“1000000”;

      when 1=>q0<=“1111001”;

      when 2=>q0<=“0100100”;

      when 3=>q0<=“0110000”;

      when 4=>q0<=“0011001”;

      when 5=>q0<=“0010010”;

      when 6=>q0<=“0000010”;

      浙江大學(xué)城市學(xué)院 實 驗 報 告 紙

      when 7=>q0<=“1011000”;

      when 8=>q0<=“0000000”;

      when 9=>q0<=“0010000”;

      when others=>q0<=NULL;end case;

      end if;

      end process;

      process(cntt2,cntt6)

      begin if(sw='0')then

      case cntt2 is

      when 0=>q1<=“1000000”;

      when 1=>q1<=“1111001”;

      when 2=>q1<=“0100100”;

      when 3=>q1<=“0110000”;

      when 4=>q1<=“0011001”;

      when 5=>q1<=“0010010”;

      when 6=>q1<=“0000010”;

      when 7=>q1<=“1011000”;

      when 8=>q1<=“0000000”;

      when 9=>q1<=“0010000”;

      when others=>q1<=NULL;end case;else

      case cntt6 is

      when 0=>q1<=“1000000”;

      when 1=>q1<=“1111001”;

      when 2=>q1<=“0100100”;浙江大學(xué)城市學(xué)院 實 驗 報 告 紙

      when 3=>q1<=“0110000”;

      when 4=>q1<=“0011001”;

      when 5=>q1<=“0010010”;

      when 6=>q1<=“0000010”;

      when 7=>q1<=“1011000”;

      when 8=>q1<=“0000000”;

      when 9=>q1<=“0010000”;

      when others=>q1<=NULL;end case;end if;

      end process;process(cntt3,cntt7)

      begin

      if(sw='0')then

      case cntt3 is

      when 0=>q2<=“1000000”;

      when 1=>q2<=“1111001”;

      when 2=>q2<=“0100100”;

      when 3=>q2<=“0110000”;

      when 4=>q2<=“0011001”;

      when 5=>q2<=“0010010”;

      when 6=>q2<=“0000010”;

      when 7=>q2<=“1011000”;

      when 8=>q2<=“0000000”;

      when 9=>q2<=“0010000”;

      when others=>q2<=NULL;end case;else

      case cntt7 is 浙江大學(xué)城市學(xué)院 實 驗 報 告 紙

      when 0=>q2<=“1000000”;

      when 1=>q2<=“1111001”;

      when 2=>q2<=“0100100”;

      when 3=>q2<=“0110000”;

      when 4=>q2<=“0011001”;

      when 5=>q2<=“0010010”;

      when 6=>q2<=“0000010”;

      when 7=>q2<=“1011000”;

      when 8=>q2<=“0000000”;

      when 9=>q2<=“0010000”;

      when others=>q2<=NULL;end case;end if;

      end process;

      process(cntt4,cntt8)

      begin if(sw='0')then

      case cntt4 is

      when 0=>q3<=“1000000”;

      when 1=>q3<=“1111001”;

      when 2=>q3<=“0100100”;

      when 3=>q3<=“0110000”;

      when 4=>q3<=“0011001”;

      when 5=>q3<=“0010010”;

      when others=>q3<=NULL;end case;else

      case cntt8 is

      when 0=>q3<=“1000000”;浙江大學(xué)城市學(xué)院 實 驗 報 告 紙

      when 1=>q3<=“1111001”;

      when 2=>q3<=“0100100”;

      when 3=>q3<=“0110000”;

      when 4=>q3<=“0011001”;

      when 5=>q3<=“0010010”;

      when 6=>q3<=“0000010”;

      --when 7=>q3<=“1011000”;--when 8=>q3<=“0000000”;--when 9=>q3<=“0010000”;

      when others=>q3<=NULL;end case;end if;

      end process;end behave;

      2、原理圖如下:

      浙江大學(xué)城市學(xué)院 實 驗 報 告 紙

      3、功能仿真如下

      1、秒、毫秒計數(shù)仿真

      2、分、時計數(shù)仿真

      注釋:由于仿真時間限制,小時不能顯示。注意SW由0變成1;

      浙江大學(xué)城市學(xué)院 實 驗 報 告 紙

      3、暫停的仿真,數(shù)碼管顯示用秒,毫秒。

      4、按鍵調(diào)整的仿真,主要仿真毫秒的仿真

      四、實驗結(jié)果

      實驗結(jié)果均完成所有要求,但有一個bug,在實現(xiàn)調(diào)整功能的時候,不能實時調(diào)整數(shù)碼管暫停下來的數(shù)字,只能從之前調(diào)整過的數(shù)值起開始調(diào)整,不過能實現(xiàn)調(diào)整之后,開啟時鐘,時鐘即在設(shè)定的時間開始跑。當(dāng)然找到解決的方法,當(dāng)由于思路和已經(jīng) 寫好的程序沖突性較大,所以此處不再修改。

      五、心得體會

      本次實驗在分頻的基礎(chǔ)上進(jìn)行拓展,同時應(yīng)用數(shù)碼管顯示,開關(guān)和按鍵的控制,比較系統(tǒng)的做了一個實驗,對自身的提高還是很有幫助的。

      說到心得,此次實驗告訴我一下經(jīng)驗:

      1、在開始寫程序之前最好先評估好自己的思路,簡易畫出想象中的原理圖,再進(jìn)行編程,對之后的修改有很大的幫助。

      2、程序?qū)戦L了,發(fā)現(xiàn)錯得時候,修改比較麻煩,所有注意編程習(xí)慣很重要,適當(dāng)?shù)募右恍┳⑨?,提高程序的可讀性。

      3、程序最好分模塊寫,比較清晰。

      浙江大學(xué)城市學(xué)院 實 驗 報 告 紙

      第二篇:數(shù)字電子時鐘實驗報告

      華大計科學(xué)院

      數(shù)字邏輯課程設(shè)計說明書

      題目:

      多功能數(shù)字鐘

      專業(yè):

      計算機(jī)科學(xué)與技術(shù)

      班級:

      網(wǎng)絡(luò)工程1班

      姓名:

      劉群 學(xué)號:

      1125111023

      完成日期:

      2013-9

      一、設(shè)計題目與要求

      設(shè)計題目:多功能數(shù)字鐘 設(shè)計要求:

      1.準(zhǔn)確計時,以數(shù)字形式顯示時、分、秒的時間。2.小時的計時可以為“12翻1”或“23翻0”的形式。

      3.可以進(jìn)行時、分、秒時間的校正。

      二、設(shè)計原理及其框圖 1.數(shù)字鐘的構(gòu)成

      數(shù)字鐘實際上是一個對標(biāo)準(zhǔn)頻率1HZ)進(jìn)行計數(shù)的計數(shù)電路。由于計數(shù)的起始時間不可能與標(biāo)準(zhǔn)時間(如北京時間)一致,故需要在電路上加一個校時電路。圖 1 所示為數(shù)字鐘的一般構(gòu)成框圖。

      圖1 數(shù)字電子時鐘方案框圖 ⑴多諧振蕩器電路

      多諧振蕩器電路給數(shù)字鐘提供一個頻率1Hz 的信號,可保證數(shù)字鐘的走時準(zhǔn)確及穩(wěn)定。⑵時間計數(shù)器電路

      時間計數(shù)電路由秒個位和秒十位計數(shù)器、分個位和分十位計數(shù)器及時個位和時十位計數(shù)器電路構(gòu)成。其中秒個位和秒十位計數(shù)器、分個位和分十位計數(shù)器為60 進(jìn)制計數(shù)器。而根據(jù)設(shè)計要求,時個位和時十位計數(shù)器為24 進(jìn)制計數(shù)器。⑶譯碼驅(qū)動電路

      譯碼驅(qū)動電路將計數(shù)器輸出的8421BCD 碼轉(zhuǎn)換為數(shù)碼管需要的邏輯狀態(tài),并且為保證數(shù)碼管正常工作提供足夠的工作電流。⑷數(shù)碼管

      數(shù)碼管通常有發(fā)光二極管(LED)數(shù)碼管和液晶(LCD)數(shù)碼管。本設(shè)計提供的為LED數(shù)碼管。2.數(shù)字鐘的工作原理 ⑴多諧振蕩器電路

      555 定時器與電阻R1、R2,電容C1、C2 構(gòu)成一個多諧振蕩器,利用電容的充放電來調(diào)節(jié)輸出V0,產(chǎn)生矩形脈沖波作為時鐘信號,因為是數(shù)字鐘,所以應(yīng)選擇的電阻電容值使頻率為1HZ。⑵時間計數(shù)單元

      六片74LS90 芯片構(gòu)成計數(shù)電路,按時間進(jìn)制從右到左構(gòu)成從低位向高位的進(jìn)位電路,并通過譯碼顯示。在六位LED 七段顯示起上顯示對應(yīng)的數(shù)值。⑶校時電源電路

      當(dāng)重新接通電源或走時出現(xiàn)誤差時都需要對時間進(jìn)行校正。通常,校正時間的方法是:首先截斷正常的計數(shù)通路,然后再進(jìn)行人工出觸發(fā)計數(shù)或?qū)㈩l率較高的方波信號加到需要校正的計數(shù)單元的輸入端,校正好后,再轉(zhuǎn)入正常計時狀態(tài)即可。

      根據(jù)要求,數(shù)字鐘應(yīng)具有分校正和時校正功能。因此,應(yīng)截斷分個位和時個位的直接計數(shù)通路,并采用正常計時信號與校正信號可以隨時切換的電路接入其中。圖8所示即為帶有基本RS 觸發(fā)器的校時電路。

      三、元器件

      1.實驗中所需的器材 單刀雙擲開關(guān)4 個.5V 電源.共陰七段數(shù)碼管 6 個.74LS90D 集成塊 6 塊.74HC00D 6個 LM555CM 1個 電阻 6個 10uF 電容 2個

      2.芯片內(nèi)部結(jié)構(gòu)及引腳圖

      圖2 LM555CM集成塊

      圖3 74LS90D集成塊

      五、各功能塊電路圖

      1秒脈沖發(fā)生器主要由555 定時器和一些電阻電容構(gòu)成,原理是利用555 定時器的特性,通過電容的充放電使VC 在高、低電平之間轉(zhuǎn)換。其中555 定時器的高、低電平的門閥電壓分別是2/3VCC 和1/3VCC電容器充電使VC 的電壓大于2/3VCC 則VC 就為高電平,然

      而由于反饋作用又會使電容放電。當(dāng)VC 小于1/3VCC 時,VC 就為低電平。同樣由于反饋作用又會使電容充電。通過555 定時器的這一性質(zhì)我們就可以通過計算使他充放電的周期剛好為1S這樣我們就會得到1HZ 的信號。其中555 定時器的一些功能對照后面目錄。其中 555 定時器組成的脈沖發(fā)生器電路見附圖4.圖4 555 定時器組成的脈沖發(fā)生器

      由于我們要得到1HZ 的信號,所以我們就可以通過555 定時器充放電一次所需的時間的公式。將那時間設(shè)為1S然后設(shè)定兩個電阻計算出另外那個電容值.在設(shè)定電阻值時我們要記住將電阻值設(shè)為比較常用的那種電阻值,得到的電容值也盡可能讓它是比較普遍使用 的。這樣就避免了在實際組裝過程中很難買到當(dāng)初設(shè)定的那電阻和計算出 的電容值。

      在這次設(shè)定中我們設(shè)定的電阻值RA=10KΩ,RB=62kΩ,C=10uF 經(jīng)公式

      f = 1.43 ÷【(RA + 2RB)×C 】 可得近似為1HZ。

      2、利用一個LED 數(shù)碼管一塊74LS90D 連接成一個十進(jìn)制計數(shù)器,電路在晶振的作用下數(shù)碼管從0—9 顯示見圖5。

      圖5、利用2 片74LS90D 芯片連接成一個六十進(jìn)制電路,電路可從0—59 顯示。第一片74LS90D芯片構(gòu)成10 進(jìn)制計數(shù)器,第二片74LS90D 芯片構(gòu)成6 進(jìn)制計數(shù)器。74LS90D 具有異步清零功能。

      在第一片74ls90 構(gòu)成的十進(jìn)制計數(shù)器中,當(dāng)?shù)谑畟€脈沖來到時。此時他的四級觸發(fā)器的狀態(tài)為“1001”。這時他就會自動清零。同時給第二片74ls90 構(gòu)成的6 進(jìn)制計數(shù)器進(jìn)一,第六個脈沖進(jìn)位到來時,此時第二片74ls90 芯片的觸發(fā)器的狀態(tài)為“0110”,這時QB,QC 均為高電平。將QB 與RO1 相連,將Ro2 與Qc 相連,就會進(jìn)行異步清零。如此循環(huán)就會構(gòu)成60 進(jìn)制計數(shù)器.見附圖6.圖6 十六進(jìn)制電路

      4、利用2 片74LS90D 芯片構(gòu)成24 進(jìn)制計數(shù)器。一片構(gòu)成二進(jìn)制計數(shù)器,一片構(gòu)成四進(jìn)制計數(shù)器。由于74LS90D 芯片清零是由兩個清零端控制的,所以當(dāng)?shù)?4 個脈沖到來時,第一片74lLS90D芯片的Qc 為高電平。第二片74LS90D 芯片的Qb 為高電平,讓第一片74LS90D 芯片的Qc 與兩片芯片的Ro1 相連.讓第二片74ls90 芯片的QB 與兩片芯片的Ro2 相連。當(dāng)?shù)?4 個脈沖到來時就會進(jìn)行異步清零。如此循環(huán)就會構(gòu)成24 進(jìn)制計數(shù)器。見附圖7.圖7 24進(jìn)制電路

      5、數(shù)字鐘電路由于秒信號的精確性和穩(wěn)定性不可能坐到完全準(zhǔn)確無誤,又因為電路中其他的原因數(shù)字鐘總會產(chǎn)生走時誤差的現(xiàn)象。所以,電路中就應(yīng)該有校準(zhǔn)時間功能的電路。在這次設(shè)計中教時電路用的是一個RS 基本觸發(fā)器的單刀雙置開關(guān),每搬動開關(guān)一次產(chǎn)生一個計數(shù)脈沖.實現(xiàn)校時功能。見附圖8。

      7、利用兩個六十進(jìn)制和一個二十四進(jìn)制連接成一個時、分、秒都會進(jìn)位的電路總圖。見附圖8

      圖8 總電路圖

      六、心得體會

      在這次設(shè)計中我們深深地體會到了理論跟實踐的不同,理論學(xué)的再好不會動手那也只能是紙上談兵。我們了解了集成電路芯片的型號命名規(guī)律,懂得了沒有某種芯片時的替代方法,以及在網(wǎng)上查找電子電路資料的方法,掌握了各芯片的邏輯功能及使用方法,進(jìn)一步熟悉了集成電路的引腳安排,掌握了數(shù)字鐘的設(shè)計方法,明白了數(shù)字鐘的組成原理以及工作原理。掌握了計數(shù)器的工作原理,以及計數(shù)器進(jìn)制的組成方法和級聯(lián)方法,實現(xiàn)了一次理論指導(dǎo)實踐、理論向?qū)嵺`過渡的跨越,雖然期間遇到一些困難,但這些困難卻增強(qiáng)了我們分析問題、解決問題的能力,使我們以后不僅只學(xué)習(xí)書本中的理論知識,而且知道學(xué)以致用,動過動手實踐是我們對書本中的理論知識掌握地跟牢固、理解地跟深刻,這對我們今后的工作及學(xué)習(xí)有積極的影響。這次課程設(shè)計不僅再次復(fù)習(xí)了數(shù)字電子和模擬電子,而且讓我對于芯片的使用更加了解。增加了我的動手操作能力,加深了對該軟件的了解。這就是這次課程設(shè)計的成果,相信這些實際的操作經(jīng)驗會是我們以后的寶貴財富。

      第三篇:數(shù)字時鐘的設(shè)計實驗報告

      實驗報告

      數(shù)字時鐘的設(shè)計

      一、實驗?zāi)康?/p>

      1、掌握數(shù)字鐘的設(shè)計方法。

      2、掌握計數(shù)器相互級聯(lián)的方法。學(xué)號:14040120049 姓名:陶澤

      二、實驗設(shè)備和器件

      1、數(shù)字邏輯電路實驗板2、74HC(LS)20(二四輸入與非門)

      3、74HC(LS)160(4位十進(jìn)制計數(shù)器)

      1塊 2片 4片、三、實驗原理

      1、設(shè)計總框圖:

      2、各部分單元的設(shè)計提示與分析: 1)時鐘源

      它是數(shù)字式時鐘的核心,它保證了時鐘的走時準(zhǔn)確及穩(wěn)定。1Hz的脈沖信號由CPLD輸出的信號得到。

      2)時間計數(shù)單元

      時間計數(shù)單元有分計數(shù)和秒計數(shù)等幾個部分。分計數(shù)和秒計數(shù)單元為60進(jìn)制計數(shù)器,其輸出為8421BCD碼。

      3)譯碼驅(qū)動及顯示單元 計數(shù)器實現(xiàn)了對時間的累計并以8421BCD碼形式輸出,顯示譯碼電路將計數(shù)器的輸出數(shù)碼轉(zhuǎn)換為數(shù)碼顯示器件所需要的輸出邏輯和一定的電流。4)校時電路

      當(dāng)重新接通電源或走時出現(xiàn)誤差時都需要對時間進(jìn)行校正。通常,校正時間的方法是:首先截斷正常的計數(shù)通路,然后再進(jìn)行人工出觸發(fā)計數(shù)或?qū)㈩l率較高的方波信號加到需要校正的計數(shù)單元的輸入端,校正好后,再轉(zhuǎn)入正常計時狀態(tài)即可。5)鬧鐘電路

      一般時鐘都應(yīng)具備鬧鐘功能,即在到達(dá)某預(yù)定時間時,時鐘會發(fā)出連續(xù)的或有節(jié)奏的音頻聲波,較復(fù)雜的也可以是實時語音提示,以示提醒。實驗用器件管腳介紹:

      四、實驗內(nèi)容與步驟

      1、用兩片74HC(LS)160連接構(gòu)成秒計數(shù)器,并連接數(shù)碼管顯示(基本命題)

      例如采用整體置零法。實現(xiàn)計數(shù)范圍為0000 0000--0101 1001。電路連接完成后,檢驗其功能。

      2、在實驗內(nèi)容與步驟1的基礎(chǔ)上再用兩片74 HC(LS)160實現(xiàn)分的計數(shù)(基本命題)

      分計數(shù)器的個位和十位之間的連接類同于秒計數(shù)器。需實現(xiàn)從秒到分的進(jìn)位。電路連接完成后檢驗其功能。

      3、實現(xiàn)校時功能(擴(kuò)展命題)

      檢驗功能

      4、實現(xiàn)鬧鐘功能(擴(kuò)展命題)

      連接電路,檢驗其功能。

      五、實驗注意事項 集成電路要輕插輕拔!

      六.實驗電路圖

      1.用兩片74HC(LS)160連接構(gòu)成秒計數(shù)器,并連接數(shù)碼管顯示

      2.在實驗內(nèi)容與步驟1的基礎(chǔ)上再用兩片74 HC(LS)160實現(xiàn)分的計數(shù)

      七.其他(實驗過程中出現(xiàn)的問題或心得體會)這次實驗增加了我對計數(shù)器的了解,增強(qiáng)了我的動手能力。這次實驗我們插錯了一根線,結(jié)果成了模100的計數(shù)器,經(jīng)過仔細(xì)的檢查才發(fā)現(xiàn)。

      第四篇:數(shù)字時鐘設(shè)計實驗報告

      電 子 課 程 設(shè) 計

      目:數(shù)字時鐘

      數(shù)字時鐘設(shè)計實驗報告

      一、設(shè)計要求:

      設(shè)計一個 24 小時制的數(shù)字時鐘。

      要求:計時、顯示精度到秒;有校時功能。采用中小規(guī)模集成電路設(shè)計。

      發(fā)揮:增加鬧鐘功能。

      二、設(shè)計方案:

      由秒時鐘信號發(fā)生器、計時電路和校時電路構(gòu)成電路。

      秒時鐘信號發(fā)生器可由振蕩器和分頻器構(gòu)成。

      計時電路中采用兩個 60 進(jìn)制計數(shù)器分別完成秒計時和分計時;24 進(jìn)制計數(shù)器完成時計時;采用譯碼器將計數(shù)器的輸出譯碼后送七段數(shù)碼管顯示。

      校時電路采用開關(guān)控制時、分、秒計數(shù)器的時鐘信號為校時脈沖以完成校時。

      三、電路框圖:

      圖一 數(shù)字時鐘電路框圖

      四、電路原理圖:

      (一)秒脈沖信號發(fā)生器 秒脈沖信號發(fā)生器是數(shù)字電子鐘的核心部分,它的精度和穩(wěn)定度決定了數(shù)字鐘的質(zhì)量。由振蕩器與分頻器組合產(chǎn)生秒脈沖信號。

      ? 振蕩器: 通常用 555 定時器與 RC 構(gòu)成的多諧振蕩器,經(jīng)過調(diào)整輸出 1000Hz 脈沖。

      ? 分頻器: 分頻器功能主要有兩個,一是產(chǎn)生標(biāo)準(zhǔn)秒脈沖信號,一是提供功能 擴(kuò)展電路所需要的信號,選用三片 74LS290 進(jìn)行級聯(lián),因為每片為 1/10 分頻器,三片級聯(lián)好獲得 1Hz 標(biāo)準(zhǔn)秒脈沖。其電路圖如下:

      譯碼器 譯碼器 譯碼器 時計數(shù)器(24 進(jìn)制)分計數(shù)器(60 進(jìn)制)秒計數(shù)器(60 進(jìn)制)校 時 電 路 秒信號發(fā)生器

      圖二 秒脈沖信號發(fā)生器

      (二)秒、分、時計時器電路設(shè)計 秒、分計數(shù)器為 60 進(jìn)制計數(shù)器,小時計數(shù)器為 24 進(jìn)制計數(shù)器。

      ? 60 進(jìn)制——秒計數(shù)器 秒的個位部分為逢十進(jìn)一,十位部分為逢六進(jìn)一,從而共同完成 60 進(jìn)制計數(shù)器。當(dāng)計數(shù)到 59 時清零并重新開始計數(shù)。秒的個位部分的設(shè)計:利用十進(jìn)制計數(shù)器 CD40110 設(shè)計 10 進(jìn)制計數(shù)器顯示秒的個位。個位計數(shù)器由 0 增加到 9 時產(chǎn)生進(jìn)位,連在十位部計數(shù)器脈沖輸入端 CP,從而實現(xiàn) 10 進(jìn)制計數(shù)和進(jìn)位功能。利用 74LS161 和 74LS11 設(shè)計 6 進(jìn)制計數(shù)器顯示秒的十位,當(dāng)十位計數(shù)器由 0 增加到 5 時利用 74LS11 與門產(chǎn)生一個高電平接到個位、十位的 CD40110 的清零端,同時產(chǎn)生一個脈沖給分的個位。其電路圖如下:

      圖三 60 進(jìn)制--秒計數(shù)電路

      ? 60 進(jìn)制——分計數(shù)電路 分的個位部分為逢十進(jìn)一,十位部分為逢六進(jìn)一,從而共同完成 60 進(jìn)制計數(shù)器。當(dāng)計數(shù)到 59 時清零并重新開始計數(shù)。秒的個位部分的設(shè)計:來自秒計數(shù)電路的進(jìn)位脈沖使分的個位加 1,利用十進(jìn)制計數(shù)器 CD40110 設(shè)計 10 進(jìn)制計數(shù)器顯示秒的個位。個位計數(shù)器由 0 增加到 9 時產(chǎn)生進(jìn)位,連在十位部計數(shù)器脈沖輸入端 CP,從而實現(xiàn) 10 進(jìn)制計數(shù)和進(jìn)位功能。利用 74LS161 和 74LS11 設(shè)計 6 進(jìn)制計數(shù)器顯示秒的十位,當(dāng)十位計數(shù)器由 0增加到 5 時利用 74LS11 與門產(chǎn)生一個高電平接到個位、十位的 CD40110 的清零端,同時產(chǎn)生一個脈沖給時的個位。其電路圖如下:

      圖四 60 進(jìn)制--分計數(shù)電路

      ? 24 進(jìn)制——時計數(shù)電路 來自分計數(shù)電路的進(jìn)位脈沖使時的個位加,個位計數(shù)器由 0 增加到 9 是產(chǎn)生進(jìn)位,連在十位計數(shù)器脈沖輸入端 CP,當(dāng)十位計到 2 且個位計到 3 是經(jīng)過 74LS11 與門產(chǎn)生一個清零信號,將所有 CD40110 清零。其電路圖如下:

      圖五 24 進(jìn)制--時計數(shù)電路

      ? 譯碼顯示電路 譯碼電路的功能是將秒、分、時計數(shù)器的輸出代碼進(jìn)行翻譯,變成相應(yīng)的數(shù)字。用以驅(qū)動 LED 七段數(shù)碼管的譯碼器常用的有 74LS148。74LS148 是 BCD-7 段譯碼器/驅(qū)動器,輸出高電平有效,專用于驅(qū)動 LED 七段共陰極顯示數(shù)碼管。若將秒、分、時計數(shù)器的每位輸出分別送到相應(yīng)七段數(shù)碼管的輸入端,便可以進(jìn)行不同數(shù)字的顯示。在譯碼管輸出與數(shù)碼管之間串聯(lián)電阻 R 作為限流電阻。其電路圖如下:

      圖六 譯碼顯示電路

      ?

      校時電路

      校時電路是數(shù)字鐘不可缺少的部分,每當(dāng)數(shù)字鐘與實際時間不符時,需要根據(jù)標(biāo)準(zhǔn)時間進(jìn)行校時。一般電子表都具有時、分、秒等校時功能。為了使電路簡單,在此設(shè)計中只進(jìn)行分和小時的校時?!翱煨r”是通過開關(guān)控制,使計數(shù)器對 1Hz 校時脈沖計數(shù)。圖中

      S1 為校正用的控制開關(guān),校時脈沖采用分頻器輸出的 1Hz 脈沖,當(dāng) S1 為“0”時可以進(jìn)行“快校時”。

      其電路圖如下:

      圖七 校隊電路

      五、實驗方法:

      1、秒脈沖產(chǎn)生部分

      采用555多諧振蕩器產(chǎn)生1HZ頻率信號,作為秒脈沖及整體電路的信號輸入部分。其仿真電路圖如下圖所示:

      圖八 秒脈沖發(fā)生器仿真電路

      2、計數(shù)電路 電子鐘計時分為小時、分鐘和秒,其中小時為二十四進(jìn)制,分鐘和秒均為六十進(jìn)制,輸出可以用數(shù)碼管顯示,所以要求二十四進(jìn)制為 00000000~00100100 計數(shù),六十進(jìn)制為 00000000~01100000 計數(shù),并且均為 8421 碼編碼形式。

      (1)

      小時計數(shù)——二十四進(jìn)制電路仿真

      用兩片 74LS160N(分 A 片、B 片)設(shè)計一個一百進(jìn)制的計數(shù)器,在 24(00100100)處直接取出所有為 1 的端口,經(jīng)過輸入與非門 74LS00D,再給兩個清零端 CLR。使用 74LS160N 異步清零功能完成二十四進(jìn)制循環(huán),計數(shù)范圍為 0~23。然后用七段顯示譯碼器 74LS47D 將 A、B 兩片8

      U1074LS01

      U1174LS0112

      U1074LS00

      R3.3 C0.01uS1

      GN10

      1U8E

      74LS01HZ

      S2/M2 +5

      74LS160N 的輸出譯碼給 LED 數(shù)碼管。仿真電路如圖九所示。

      圖九 24 進(jìn)制——時計數(shù)器仿真電路(2)分鐘、秒計數(shù)——六十進(jìn)制電路仿真

      此電路類似于二十四進(jìn)制計數(shù)器,采用 74LS160N 設(shè)計出一百進(jìn)制的計數(shù)器,在 60(01100000)處直接取出所有為 1 的端口,經(jīng)過輸入與非門 74LS00D,再給兩個清零端 CLR。使用 74LS160N異步清零功能完成六十進(jìn)制循環(huán),計數(shù)范圍為 0~59。然后用七段顯示譯碼器 74LS47D 將 A、B兩片 74LS160N 的輸出譯碼給 LED 數(shù)碼管。仿真電路如圖所示:

      圖十 60 進(jìn)制——秒計數(shù)器仿真電路

      圖十一 60 進(jìn)制——分計數(shù)器仿真電路

      (四)校時校分(秒)電路。

      數(shù)字鐘應(yīng)具有分校正和時校正功能,因此,應(yīng)截斷分個位和時個位的直接計數(shù)通路,并采用正常計時信號與校正信號可以隨時切換的電路接入其中。這里利用兩個與非門加一個單刀雙擲開關(guān)來實現(xiàn)校時功能。第一個 74LS00D 與非門的輸入端一端接清零信號,另一端接第二個與非門的輸入端,第二個 74LS00D 的輸入端一端接計數(shù)脈沖,另一端接一個單刀雙擲開關(guān)。開關(guān)接通的一段接地,另一端接高電平。當(dāng)開關(guān)打到另一端時,時或分的個位就單獨開始計數(shù),這樣就能實現(xiàn)校時功能。其電路圖如圖所示:

      圖十二 校分仿真電路

      六、實驗結(jié)果和結(jié)論:

      數(shù)字時鐘仿真電路圖如下圖所示,在 Multisim11.0 中進(jìn)行仿真,可以實現(xiàn)數(shù)字時鐘的顯示功能、校時功能。顯示功能中,小時實現(xiàn)的是 24 進(jìn)制,分和秒實現(xiàn)的是 60 進(jìn)制,通過校時電路能夠分別校對時和分。

      圖十三 數(shù)字時鐘仿真電路

      七、設(shè)計體會:

      在本次 Multisim 仿真過程,從安裝軟件、選定課題、設(shè)計電路、進(jìn)行仿真、運行結(jié)果都自己實際操作完成。在數(shù)字時鐘設(shè)計中,根據(jù)老師上課所講的內(nèi)容,可以用兩片集成十進(jìn)制同步計數(shù)器 74LS160D 級聯(lián)為 100 進(jìn)制,再利用其異步清零功能,可以分別實現(xiàn)小時的 24 進(jìn)制和分秒的 60 進(jìn)制。當(dāng)然,在仿真過程中也遇到了很多困難和問題。比如說,無法直接從秒進(jìn)位到分和分進(jìn)位到時,并且在仿真中總是出錯。于是自己請教了一些也做數(shù)字時鐘的同學(xué),同時在網(wǎng)上查找了相關(guān)資料,最后終于用兩個與非門和單刀雙擲開關(guān)實現(xiàn)了從秒到分的進(jìn)位、分到時的進(jìn)位功能及校準(zhǔn)功能。

      通過本次實驗對數(shù)電知識有了更深入的了解,將其運用到了實際中來,明白了學(xué)習(xí)電子技術(shù)基礎(chǔ)的意義,也達(dá)到了其培養(yǎng)的目的。也明白了一個道理:成功就是在不斷摸索中前進(jìn)實現(xiàn)的,遇到問題我們不能灰心、煩躁,甚至放棄,而要靜下心來仔細(xì)思考,分部檢查,找出最終的原因進(jìn)行改正,這樣才會有進(jìn)步,才會一步步向自己的目標(biāo)靠近,才會取得自己所要追求的成功。

      當(dāng)然,自己的仿真技術(shù)和應(yīng)用能力還是很欠缺的,雖然完成了基本的設(shè)計要求,但是很多自己想要的擴(kuò)展功能還未能實現(xiàn)。而且很多時候會走過很多彎路,浪費了很多不必要的時間。不過,這次設(shè)計經(jīng)歷必將使我受益終身,讓我明白如何更好的獲取知識,如何更好的理論聯(lián)系實際。今后的學(xué)習(xí)更需要不斷努力,在獲得知識的同時獲得快樂,真正的主動探索,主動學(xué)習(xí),形成自己的思維方式,不斷應(yīng)用,不斷進(jìn)取。

      第五篇:基于FPGA的數(shù)字電子時鐘設(shè)計與實現(xiàn)(范文模版)

      《數(shù)字電子技術(shù)》課程設(shè)計

      設(shè)計題目:基于FPGA的數(shù)字電子時鐘設(shè)計與實現(xiàn)

      系 部: 電子與信息工程系 專業(yè)班級: 電子信息工程08秋(1)班 小組成員: 胡修遠(yuǎn) 學(xué) 號: 08031145 指導(dǎo)教師 : 陶亞雄 周麗婕

      完成日期: 2012年 1 月

      目錄

      一、所用設(shè)備與器材................................................1 1.1儀器設(shè)備...................................................1 二.系統(tǒng)方案......................................................1 2.1 設(shè)計思想..................................................1 2.1.1課題背景........................................1 2.1.2 Quartus II軟件.................................3 2.2工作原理及系統(tǒng)框圖.........................................8 三.軟件方案......................................................9 3.1 程序流程圖................................................9 3.1.1 24進(jìn)制........................................9 3.1.2 10進(jìn)制流程圖.................................10 3.1.3 6進(jìn)制........................................11 3.1.4 60進(jìn)制.......................................11 3.1.5 from0to9......................................12 3.1.6 分頻模塊.......................................12 3.1.7 總流程圖.......................................13 3.2 程序清單.................................................14 3.2.1頭文件complete_clock程序......................14 3.2.2 counter24程序.................................15 3.2.3 counter60程序.................................15 3.2.4 from0to9程序..................................16 3.2.5 counter6程序..................................17 3.2.6 counter10程序.................................17 3.2.7 分頻程序.......................................17 3.2.8 校時模塊程序...................................18 四.調(diào)試及結(jié)果...................................................18

      4.1 模塊仿真.................................................18 4.1.1 counter10模塊仿真.............................18 4.1.2 counter24模塊仿真.............................19 4.1.3 counter60模塊仿真.............................19 4.1.4 分頻模塊仿真...................................19 4.1.5 top_clock計時模塊仿真.........................19 4.2 程序下載.................................................20 4.3分析運行結(jié)果..............................................21 4.3.1 設(shè)計總結(jié).......................................21 4.3.2 心得體會.......................................21 4.3.3 致謝...........................................22

      2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計

      一、所用設(shè)備與器材

      1.1儀器設(shè)備

      使用儀器設(shè)備有FPGA DE2-70開發(fā)板、PC機(jī)、信號發(fā)生器。

      圖1 FPGA DE2-70開發(fā)板圖

      二.系統(tǒng)方案

      2.1 設(shè)計思想

      利用數(shù)字電子技術(shù)、EDA設(shè)計方法、FPGA等技術(shù),設(shè)計、仿真并實現(xiàn)一個基于FPGA的數(shù)字電子時鐘基本功能,其基本組成框圖如圖1所示,振蕩器采用ALTERA的DE2-70實驗板的50MHz輸出,分頻器將50MHz的方波進(jìn)行分頻進(jìn)而得到1Hz的標(biāo)準(zhǔn)秒脈沖,時、分、秒計時模塊分別由二十四進(jìn)制時計數(shù)器、六十進(jìn)制分計數(shù)器和六十進(jìn)制秒計數(shù)器完成,校時模塊完成時和分的校正。擴(kuò)展功能設(shè)計為倒計時功能,從59分55秒至59分59秒,每秒亮一盞燈報時。

      2.1.1課題背景

      20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各個領(lǐng)域,有力的推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產(chǎn)品性能更進(jìn)一步,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。

      20世紀(jì)80年代末,出現(xiàn)了FPGA(Field Progrommable Gate Array),CAE和CAD技術(shù)的應(yīng)用更為廣泛,它們在PCB設(shè)計的原理圖輸入,自動布局布線及PCB分析,以及邏輯設(shè)計,邏輯仿真布爾綜合和化簡等方面擔(dān)任了重要的角色,2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計

      為電子設(shè)計自動化必須解決的電路建模,標(biāo)準(zhǔn)文檔及仿真測試奠定了基礎(chǔ)。硬件描述語言是EDA技術(shù)的重要組成部分,VHDL是作為電子設(shè)計主流硬件的描述語言。本論文就是應(yīng)用VHDL語言來實現(xiàn)秒表的電路設(shè)計。VHDL語言是標(biāo)準(zhǔn)硬件描述語言,它的特點就是能形式化抽樣表示電路結(jié)構(gòu)及行為,支持邏輯設(shè)計中層次領(lǐng)域的描述,借用了高級語言的精巧結(jié)構(gòu)簡化電路描述,具有電路模擬與驗證及保證設(shè)計的正確性,支持電路由高層向底層的綜合變換,便于文檔管理,易于理解和設(shè)計重用。

      EDA技術(shù)是在電子CAD技術(shù)基礎(chǔ)上發(fā)展起來的計算機(jī)軟件系統(tǒng),是指以計算機(jī)為工作平臺,融合了應(yīng)用電子技術(shù)、計算機(jī)技術(shù)、信息處理及智能化技術(shù)的最新成果,進(jìn)行電子產(chǎn)品的自動設(shè)計。

      利用EDA工具,電子設(shè)計師可以從概念、算法、協(xié)議等開始設(shè)計電子系統(tǒng),大量工作可以通過計算機(jī)完成,并可以將電子產(chǎn)品從電路設(shè)計、性能分析到設(shè)計出IC版圖或PCB版圖的整個過程在計算機(jī)上自動處理完成。

      現(xiàn)在對EDA的概念或范疇用得很寬。包括在機(jī)械、電子、通信、航空航天、化工、礦產(chǎn)、生物、醫(yī)學(xué)、軍事等各個領(lǐng)域,都有EDA的應(yīng)用。目前EDA 技術(shù)已在各大公司、企事業(yè)單位和科研教學(xué)部門廣泛使用。例如在飛機(jī)制造過程中,從設(shè)計、性能測試及特性分析直到飛行模擬,都可能涉及到EDA技術(shù)。本文所指的EDA技術(shù),主要針對電子電路設(shè)計、PCB設(shè)計和IC設(shè)計。EDA 設(shè)計可分為系統(tǒng)級、電路級和物理實現(xiàn)級。

      用VHDL語言開發(fā)的流程:(1)文本編輯:用任何文本編輯器都可以進(jìn)行,也可以用專用的HDL編輯環(huán)境。通常VHDL文件保存為.vhd文件。

      (2)功能仿真:將文件調(diào)入HDL仿真軟件進(jìn)行功能仿真,檢查邏輯功能是否正確(也叫前仿真,對簡單的設(shè)計可以跳過這一步,只在布線完成以后,進(jìn)行時序仿真)。

      (3)邏輯綜合:將源文件調(diào)入邏輯綜合軟件進(jìn)行綜合,即把語言綜合成最簡的布爾表達(dá)式和信號的連接關(guān)系。邏輯綜合軟件會生成.edf(edif)的EDA工業(yè)標(biāo)準(zhǔn)文件。

      (4)布局布線:將.edf文件調(diào)入PLD廠家提供的軟件中進(jìn)行布線,即把設(shè)計好的邏輯安放到PLD/FPGA內(nèi)。2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計

      3(5)編程下載:確認(rèn)仿真無誤后,將文件下載到芯片中。

      本設(shè)計為一個多功能的數(shù)字鐘,具有時、分、秒計數(shù)顯示功能,以24小時的循環(huán)計數(shù):具有校對功能。本設(shè)計采用EDA技術(shù),以硬件描述語言VHDL為系統(tǒng)邏輯描述手段設(shè)計文件,在Quartus ?工具軟件下,采用自頂向下的設(shè)計方式,由各個基本模塊共同構(gòu)建了一個基本FPGA的數(shù)字鐘。

      系統(tǒng)主芯片采用EP2C70F896C6,有時鐘模塊、控制模塊、計時模塊、數(shù)據(jù)譯碼模塊、顯示以及報時模塊組成。經(jīng)編譯和仿真所設(shè)計的程序,在可編程邏輯器件上下載驗證,本系統(tǒng)能夠完成時、分、秒的分別顯示,由按鍵輸入進(jìn)行數(shù)字鐘的校時、清零、啟停功能。

      隨著電子技術(shù)的發(fā)展,數(shù)字電路朝著速度快、容量大、體積小、重量輕的方向發(fā)展。人們對時間計量的精度要求越來越高,鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便。數(shù)字鐘是一種用數(shù)字電路技術(shù)實現(xiàn)時、分、秒計時的裝置,與機(jī)械式時鐘相比具有更高的準(zhǔn)確性和直觀性,且無機(jī)械裝置,具有更更長的使用壽命,因此得到了廣泛的使用。

      本次設(shè)計以數(shù)字電子為主,實現(xiàn)對時、分、秒數(shù)字顯示的計時裝置,周期為24小時,顯示滿刻度為23時59分59秒,并具有校時功能和報時功能的數(shù)字電子鐘。課程設(shè)計所采用的開發(fā)平臺:Quartus II是可編程片上系統(tǒng)的綜合性設(shè)計環(huán)境,它支持CPLD和FPGA器件的開發(fā)。FPGA(Field Programmable Gate Array)現(xiàn)場可編程門陣列,內(nèi)部主要由許多可編程邏輯模塊組成,靠縱橫交錯的分布式可編程互連線連接起來,可構(gòu)成極其復(fù)雜的邏輯電路。本次課程設(shè)計所采用的FPGA芯片 Cyclone II系列的EP2C70F896C6。

      2.1.2 Quartus II軟件

      Quartus II 是Altera公司的綜合性PLD開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設(shè)計輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計輸入到硬件配置的完整PLD設(shè)計程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設(shè)計流程外,提供了完善的用戶圖形界面設(shè)計方式。具有運行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點。

      Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設(shè)計的復(fù)雜性、加快了 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計

      設(shè)計速度。對第三方EDA工具的良好支持也使用戶可以在設(shè)計流程的各個階段使用熟悉的第三方EDA工具。

      Quartus II使用基本流程如下: 1.打開Quartus II軟件,創(chuàng)建工程

      a.點擊工具欄File,利用創(chuàng)建工程向?qū)В∟ew Project Wizard)創(chuàng)建新工程。

      圖2 新建工程圖

      b.工程目錄為c:altera71sp1quartus(路徑中不能包含中文,不能建立在桌面上),工程名稱以及頂層設(shè)計實體為counter10(以英文字母開頭)。

      圖3 創(chuàng)建路徑圖

      c.選擇與開發(fā)板上芯片型號對應(yīng)的器件。硬件選cycloneⅡ EP2C70F896C6。

      圖4 芯片選擇圖

      d.進(jìn)入第三方EDA工具選擇窗口,在此可以選擇使用第三方的EDA工具,如一些布局布線、綜合、仿真軟件。

      e.確認(rèn)無誤后,單擊Finsh完成工程創(chuàng)建。2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計

      f.工程創(chuàng)建成功后,在【Project Navigator】(資源管理窗口)顯示當(dāng)前工程的層次、文件和設(shè)計單元。

      g.執(zhí)行File—New—Design Files—verilog HDL File,建立原理圖文件。

      圖5 原理圖文件建立圖

      h.完成后點擊File----save as,保存到c:altera71sp1quartus目錄下。i.使用文本編輯器輸入源碼,完成原理圖編譯。

      j.編譯工程,執(zhí)行Processing—start—start Analysis&Elaboration進(jìn)行編譯,分析檢查輸入文件是否有錯誤。2.創(chuàng)建仿真波形文件

      a.點擊New—Vector Waveform File—save as

      圖6 新建仿真波形文件圖

      b.在Name框圖中右擊鼠標(biāo),Insert—Insert Node or Bus—Node Finder—在Filter中選擇Pinns:all,點擊list,點擊“》”將左側(cè)列表中的內(nèi)容移動到右側(cè)列表中。2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計

      圖7 插入管腳圖

      c.在CP上右擊選擇value,選擇時鐘脈沖信號clock(周期可自行設(shè)置)。EN和nCR都選擇高電平(Forcing High)。

      圖8 輸入信號賦值

      d.選擇Assignments—Settings設(shè)置—simulater settings—模式mode選擇功能型Functional e.選擇Processing—generate functional simulation netlist生成功能網(wǎng)表

      圖9 生成功能網(wǎng)表圖

      f.點擊波形仿真的快捷鍵,進(jìn)行波形的仿真。

      g.分別給EN和nCR不同的電平信號,觀察分析波形的變化。2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計

      圖10 EN=1 nCR=1

      圖11 EN=0 nCR=1

      圖12 EN=1 nCR=0 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計

      圖13 EN=0 nCR=0

      圖14 EN脈沖 nCR=1

      2.2工作原理及系統(tǒng)框圖

      利用數(shù)字電子技術(shù)、EDA設(shè)計方法、FPGA等技術(shù),設(shè)計、仿真并實現(xiàn)一個基于FPGA的數(shù)字電子時鐘基本功能,其基本組成框圖如圖1所示,振蕩器采用ALTERA的DE2-70實驗板的50MHz輸出,分頻器將50MHz的方波進(jìn)行分頻進(jìn)而得到1Hz的標(biāo)準(zhǔn)秒脈沖,時、分、秒計時模塊分別由二十四進(jìn)制時計數(shù)器、六十進(jìn)制分計數(shù)器和六十進(jìn)制秒計數(shù)器完成,校時模塊完成時和分的校正。電子時鐘擴(kuò)展功能為倒計時流水燈。數(shù)字電子鐘的電路組成框圖片如下圖: 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計

      多功能數(shù)字鐘頂層模塊振蕩器校時電路倒計時模塊分頻器CP 1Hz時計數(shù)器(24進(jìn)制)分計數(shù)器(60進(jìn)制)秒計數(shù)器(60進(jìn)制)時譯碼顯示6計數(shù)器10計數(shù)器分譯碼顯示6計數(shù)器10計數(shù)器分譯碼顯示 圖15 系統(tǒng)框圖

      1.數(shù)字鐘電路系統(tǒng)由主體電路和擴(kuò)展電路兩大部分所組成。

      2.數(shù)字電子時鐘電路具有時、分、秒計時,秒計數(shù)器計滿60后向分計數(shù)器進(jìn)位,分計數(shù)器計滿60后向小時計數(shù)器進(jìn)位,小時計數(shù)器按照“24進(jìn)制”規(guī)律計數(shù)。

      3.準(zhǔn)確計時,以數(shù)字形式顯示時、分、秒的時間,計數(shù)器的輸出經(jīng)譯碼器送顯示器。

      4.具有分、時校正功能,校正輸入脈沖頻率為1Hz 5.復(fù)位功能,時、分、秒計時清零。

      6.擴(kuò)展功能為:具有仿廣播電臺整點報時的功能,即每逢59分51秒、52秒、53秒、54秒、55秒及57秒,LED綠燈依此點亮,59分59秒時,LED紅燈亮,形成倒計時流水燈報時。

      三.軟件方案

      3.1 程序流程圖

      3.1.1 24進(jìn)制

      小時采用24進(jìn)制計時,當(dāng)CP↑,EN和nCR為高電平時計數(shù),計數(shù)范圍為[0,23],使能信號EN等于0時,計時器保持。當(dāng)高位大于2或高位等于2且低位大于3時,計時器清零,否則繼續(xù)計時。流程圖見下圖。2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計

      開始CP↑or nCR↓YnCR=0 ?YNNEN=0 ?YNNQH>2 or Q>23Y清零保持清零Q=Q+1 圖16 24進(jìn)制程序流程圖

      3.1.2 10進(jìn)制流程圖

      當(dāng)CP↑,EN和nCR為高電平時計數(shù),計數(shù)范圍為[0,9],使能信號EN等于0時,計時器保持。當(dāng)計時到9的時候,計時器清零,否則繼續(xù)計時。流程圖見下圖。

      開始CP↑or nCR↓YnCR=0 ?YNNNEN=0 ?YQ=9 ?Y清零保持清零NQ=Q+1

      圖17 10進(jìn)制流程圖 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計

      3.1.3 6進(jìn)制

      當(dāng)CP↑,EN和nCR為高電平時計數(shù),計數(shù)范圍為[0,5],使能信號EN等于0時,計時器保持。當(dāng)計時到5的時候,計時器清零,否則繼續(xù)計時。流程圖見下圖。

      開始CP↑or nCR↓YnCR=0 ?YNNNNEN=0 ?YQ=5 ?Y清零保持清零Q=Q+1 圖18 6進(jìn)制流程圖

      3.1.4 60進(jìn)制

      分、秒采用60進(jìn)制計時,當(dāng)CP↑,EN和nCR為高電平時計數(shù),計數(shù)范圍為[0,59],使能信號EN等于0時,計時器保持。當(dāng)個位等于9時向十位進(jìn)位;當(dāng)個位等于9十位等于5,計時器清零,否則繼續(xù)計時。流程圖見下圖。

      開始CP↑or nCR↓NnCR=0?NEN=0?Y個位Q1=9?NYQ2=Q2+1Q2=5?YQ1=9?NNN清零保持Q1=Q1+1Y清零Q1=Q1+1 圖19 60進(jìn)制流程圖 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計

      3.1.5 from0to9

      數(shù)碼管有7段組成,分共陽極和共陰極,本次設(shè)計采用共陽極數(shù)碼管。當(dāng)輸入為低電平時,數(shù)碼管顯示;當(dāng)輸入為高電平時,數(shù)碼管不顯示。用這樣的方法輸入不同的高低信號控制數(shù)碼管的顯示。

      HEX=7'b0000001HEX=1001111HEX=b0010010HEX=7'b0000110HEX=7'b1001100開始Case DNHEX=7'b0100000HEX=7'b1111111HEX=7'b0001111HEX=7'b0000000HEX=7'b0000100顯示7顯示8顯示9顯示6YHEX=7'b0100100顯示5顯示0顯示1顯示2顯示3顯示4 圖20 from0to9流程圖

      3.1.6 分頻模塊

      開始50MHz方波10^2分頻500KHz方波10^2分頻5KHz方波10^2分頻50Hz方波10^2分頻0.5Hz方波

      圖21 分頻模塊流程圖 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計

      3.1.7 總流程圖

      開始開始NCPCP↑↑or nCRor nCR↓↓Y分頻模塊YYNYAdjHrkey=1?AdjHrkey=1?NNN時低位時低位=9?=9?NYYAdjMinKey=1?AdjMinKey=1?YY低位清零高位進(jìn)位低位清零高位進(jìn)位N高位高位>2or>2or時時>23>23YNN分低位分低位=9=9??NN清零清零YY秒低位秒低位=9=9??NNNY低位清零高位進(jìn)位低位清零高位進(jìn)位YY低位計數(shù)低位計數(shù)低位計數(shù)低位計數(shù)YNY秒高位秒高位=5=5??低位清零高位進(jìn)位低位清零高位進(jìn)位低位計數(shù)低位計數(shù)NYY高位高位=5=5??NN秒高位清零,分低位進(jìn)位秒高位清零,分低位進(jìn)位高位計數(shù)高位計數(shù)清零清零Y高位計數(shù)高位計數(shù)N低位計數(shù)低位計數(shù)Y低位清零高位進(jìn)位低位清零高位進(jìn)位N分低位分低位=9=9??NN分高位分高位=5=5??YY高位計數(shù)高位計數(shù)Y分清零,時低位位進(jìn)位分清零,時低位位進(jìn)位低位清零高位進(jìn)位低位清零高位進(jìn)位Y時低位時低位=9=9??NNNNYY高位高位>2or>2or時時>23>23清零清零低位計數(shù)低位計數(shù)

      圖22 總流程圖 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計

      3.2 程序清單

      3.2.1頭文件complete_clock程序

      module complete_clock(HEX0,HEX1,HEX2,HEX3,HEX4,HEX5,_50MHzIn,_1Hz,_50Hz, _5KHz,_500KHz,AdjMinkey,AdjHrkey,nCR,Alarm,LED0,LED10,LED3,LED4,LED5,LED6,LED7,LED8,LED9);

      output [7:0] HEX0,HEX1,HEX2,HEX3,HEX4,HEX5;output Alarm,_1Hz,_50Hz,_5KHz,_500KHz;output LED0;output LED10;output LED3;output LED4;output LED5;output LED6;output LED7;output LED8;output LED9;wire [7:0] HEX0,HEX1,HEX2,HEX3,HEX4,HEX5;input nCR,_50MHzIn;wire _1Hz,_50Hz,_5KHz,_500KHz;wire LED0;wire LED10;wire LED3;wire LED4;wire LED5;wire LED6;wire LED7;wire LED8;wire LED9;input AdjMinkey,AdjHrkey;wire [7:0] Second,Minute,Hour;Divided_Frequency C1(_5KHz,_500KHz,nCR,_50MHzIn);//調(diào)用分頻模塊,輸入50MHz的頻率,經(jīng)兩次分頻后變?yōu)?KHz Divided_Frequency U0(_1Hz,_50Hz,nCR,_5KHz);//調(diào)用分頻模塊,輸入5KHz的頻率,經(jīng)

      兩次分頻后變?yōu)?Hz top_clock U1(Hour,Minute,Second,_1Hz,nCR,AdjMinkey,AdjHrkey);//調(diào)用校時模塊,對時、分模塊進(jìn)行校時 baoshi U2(Alarm_Ring,Minute,Second,_50Hz,_5KHz);assign Alarm=Alarm_Ring;assign LED0=({Minute,Second}==16'h5951);//定義LED0為59分51秒時燈亮 assign LED10=({Minute,Second}==16'h5952);//定義LED10為59分52秒時燈亮 assign LED3=({Minute,Second}==16'h5953);//定義LED3為59分53秒時燈亮 assign LED4=({Minute,Second}==16'h5954);//定義LED4為59分54秒時燈亮 assign LED5=({Minute,Second}==16'h5955);//定義LED5為59分55秒時燈亮 assign LED6=({Minute,Second}==16'h5956);//定義LED6為59分56秒時燈亮 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計

      assign LED7=({Minute,Second}==16'h5957);//定義LED7為59分57秒時燈亮 assign LED8=({Minute,Second}==16'h5958);//定義LED8為59分58秒時燈亮 assign LED9=({Minute,Second}==16'h5959);//定義LED9為59分59秒時燈亮 from0to9 U10(HEX0,Second[3:0]);//個位秒調(diào)用譯碼 from0to9 U9(HEX1,Second[7:4]);//十位秒調(diào)用譯碼 from0to9 U3(HEX2,Minute[3:0]);//個位分調(diào)用譯碼 from0to9 U4(HEX3,Minute[7:4]);//個位分調(diào)用譯碼 from0to9 U5(HEX4,Hour[3:0]);//個位時調(diào)用譯碼 from0to9 U6(HEX5,Hour[7:4]);//十位時調(diào)用譯碼 endmodule 3.2.2 counter24程序

      module counter24(CntH,CntL,nCR,EN,CP);input CP,nCR,EN;output [3:0] CntH,CntL;reg [3:0] CntH,CntL;always @(posedge CP or negedge nCR)begin if(~nCR){CntH,CntL}<=8'h00;//當(dāng)nCR=0時,計時器清零

      else if(~EN){CntH,CntL}<={CntH,CntL};//當(dāng)EN=0時,停止計時,保持 else if((CntH>2)||(CntH>9)||((CntH==2)&&(CntL>=3))){CntH,CntL}<=8'h00;else if((CntH==2)&&(CntL<3))begin CntH<=CntH;CntL<=CntL+1'b1;end else if(CntL==9)begin CntH<=CntH+1'b1;CntL<=4'b0000;end else begin CntH<=CntH;CntL<=CntL+1'b1;end end Endmodule 3.2.3 counter60程序

      module counter60(Q1,Q2,Q3,Q4,Q5,Q6,Cnt,Cnt1,Cnt24,nCR,EN,CP,LED,LED1,LED2);input CP,nCR,EN;output [7:0] Cnt;output [7:0] Cnt1;output [7:0] Cnt24;output [6:0] Q1;output [6:0] Q2;output [6:0] Q3;output [6:0] Q4;output [6:0] Q5;output [6:0] Q6;output LED;output LED1;output LED2;wire [7:0] Cnt;2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計

      wire [7:0] Cnt1;wire [7:0] Cnt24;wire [6:0] Q1;wire [6:0] Q2;wire [6:0] Q3;wire [6:0] Q4;wire [6:0] Q5;wire [6:0] Q6;wire LED;wire LED1;wire LED2;wire ENP;wire ENP1;wire ENP2;wire ENP3;counter10 UC0(Cnt[3:0],nCR,EN,CP);counter6 UC1(Cnt[7:4],nCR,ENP,CP);counter10 UC2(Cnt1[3:0],nCR,ENP1,CP);counter6 UC3(Cnt1[7:4],nCR,ENP2,CP);counter24 UC4(Cnt24[7:4],Cnt24[3:0],nCR,ENP3,CP);assign ENP=(Cnt[3:0]==4'h9);assign ENP1=(Cnt==8'h59);assign ENP2=((Cnt1[3:0]==4'h9)&&(Cnt==8'h59));assign ENP3=((Cnt1==8'h59)&&(Cnt==8'h59));assign LED=~CP;assign LED1=~CP;assign LED2=~CP;from0to9 UC5(Q1,Cnt[3:0]);from0to9 UC6(Q2,Cnt[7:4]);from0to9 UC7(Q3,Cnt1[3:0]);from0to9 UC8(Q4,Cnt1[7:4]);from0to9 UC9(Q5,Cnt24[3:0]);from0to9 UC10(Q6,Cnt24[7:4]);Endmodule 3.2.4 from0to9程序

      module from0to9(HEX,D);output [6:0] HEX;input [3:0] D;reg [6:0] HEX;always @(D)begin case(D)4'd0:{HEX[0],HEX[1],HEX[2],HEX[3],HEX[4],HEX[5],HEX[6]}=7'b0000001;4'd1:{HEX[0],HEX[1],HEX[2],HEX[3],HEX[4],HEX[5],HEX[6]}=7'b1001111;4'd2:{HEX[0],HEX[1],HEX[2],HEX[3],HEX[4],HEX[5],HEX[6]}=7'b0010010;2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計

      4'd3:{HEX[0],HEX[1],HEX[2],HEX[3],HEX[4],HEX[5],HEX[6]}=7'b0000110;4'd4:{HEX[0],HEX[1],HEX[2],HEX[3],HEX[4],HEX[5],HEX[6]}=7'b1001100;4'd5:{HEX[0],HEX[1],HEX[2],HEX[3],HEX[4],HEX[5],HEX[6]}=7'b0100100;4'd6:{HEX[0],HEX[1],HEX[2],HEX[3],HEX[4],HEX[5],HEX[6]}=7'b0100000;4'd7:{HEX[0],HEX[1],HEX[2],HEX[3],HEX[4],HEX[5],HEX[6]}=7'b0001111;4'd8:{HEX[0],HEX[1],HEX[2],HEX[3],HEX[4],HEX[5],HEX[6]}=7'b0000000;4'd9:{HEX[0],HEX[1],HEX[2],HEX[3],HEX[4],HEX[5],HEX[6]}=7'b0000100;default:{HEX[0],HEX[1],HEX[2],HEX[3],HEX[4],HEX[5],HEX[6]}=7'b1111111;endcase end endmodule 3.2.5 counter6程序

      module counter6(Q,nCR,EN,CP);input CP,nCR,EN;output [3:0] Q;reg [3:0] Q;always @(posedge CP or negedge nCR)begin if(~nCR)Q<=4'b0000;//當(dāng)nCR=0時,計時器清零 else if(~EN)Q<=Q;//當(dāng)EN=0時,停止計時,保持 else if(Q==4'b0101)Q<=4'b0000;else Q<=Q+1'b1;//計時器正常計時 end Endmodule 3.2.6 counter10程序

      module counter10(Q,nCR,EN,CP);input CP,nCR,EN;output [3:0] Q;reg [3:0] Q;always @(posedge CP or negedge nCR)begin if(~nCR)Q<=4'b0000;//當(dāng)nCR=0時,計時器清零 else if(~EN)Q<=Q;//當(dāng)EN=0時,停止計時,保持 else if(Q==4'b1001)Q<=4'b0000;else Q<=Q+1'b1;//計時器正常計時 end Endmodule 3.2.7 分頻程序

      module Divided_Frequency(_1HzOut,nCR,_5kHzIN);input _5kHzIN,nCR;output _1HzOut;supply1 Vdd;//定義 Vdd 是高電平

      wire [15:0] Q;//計時器的輸出信號(中間變量)wire EN1,EN2,EN3;// 計時器的使能信號(中間變量)counter10 DU0(Q[3:0],nCR,Vdd,_5kHzIN);//調(diào)用十進(jìn)制 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計

      counter10 DU1(Q[7:4],nCR,EN1,_5kHzIN);counter10 DU2(Q[11:8],nCR,EN2,_5kHzIN);counter10 DU3(Q[15:12],nCR,EN3,_5kHzIN);assign EN1=(Q[3:0]==4'h9);assign EN2=(Q[7:4]==4'h9)&(Q[3:0]==4'h9);assign EN3=(Q[11:8]==4'h9)&(Q[7:4]==4'h9)&(Q[3:0]==4'h9);assign _1HzOut=Q[15];//assign _500HzOut=Q[0];endmodule 3.2.8 校時模塊程序

      module top_clock(Second,Minute,Hour,_1Hz,nCR,AdjMinKey,AdjHrkey);input _1Hz,nCR,AdjMinKey,AdjHrkey;output [7:0] Second,Minute,Hour;wire [7:0] Hour,Minute,Second;supply1 Vdd;wire MinCP,HrCP;counter60 UT1(Second,nCR,Vdd,_1Hz);//調(diào)用counter60,對秒計時 counter60 UT2(Minute,nCR,Vdd,~MinCP);// 調(diào)用counter60,對分校時

      counter24 UT3(Hour[7:4],Hour[3:0],nCR,Vdd,~HrCP);//調(diào)用counter24,對時校時 assign MinCP=AdjMinKey ? _1Hz:(Second==8'h59);//當(dāng)MinCP=AdjMinKey時,執(zhí)行校時,當(dāng)MinCP≠AdjMinKey時,秒計時至59 時向分進(jìn)位 assign HrCP=AdjHrkey?_1Hz:({Minute,Second}==16'h5959);//當(dāng)HrCP=AdjHrkey時,執(zhí)

      行校時,當(dāng)HrCP≠AdjHrkey時,分

      秒計時至59分59秒時向時進(jìn)位 Endmodule 四.調(diào)試及結(jié)果

      4.1 模塊仿真

      4.1.1 counter10模塊仿真

      CP為時鐘脈沖;當(dāng)CP↑,EN和nCR為高電平時Q計數(shù);Q的計數(shù)范圍為[0,9]

      圖counter10仿真波形圖 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計

      4.1.2 counter24模塊仿真

      CP為時鐘脈沖;當(dāng)CP↑,EN和nCR為高電平時Q計數(shù);Q的計數(shù)范圍為[0,23]

      圖24 counter24仿真波形圖

      4.1.3 counter60模塊仿真

      CP為時鐘脈沖;當(dāng)CP↑,EN和nCR為高電平時Q計數(shù);Q的計數(shù)范圍為[0,59]

      圖25 counter60仿真波形圖

      4.1.4 分頻模塊仿真

      分頻器是將輸入的基本時鐘信號分頻為其他模塊需要的5kHZ 和1HZ 的信號.其中CLK 輸入為5kHZ , CLK2 輸出1HZ 信號,分頻實際也是用了計數(shù)器的原理。

      圖26 分頻模塊仿真波形圖

      4.1.5 top_clock計時模塊仿真 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計

      當(dāng)秒計時到59時,向分進(jìn)一位,當(dāng)秒計時到59且分計時到59時向時進(jìn)一位。當(dāng)時分秒計時到23’59’59時,計時器清零。

      圖27 top_clock計時模塊仿真波形圖

      4.2 程序下載

      圖28 時測試校時,時至23 圖29 時測試校時,時進(jìn)位至00

      圖30 分測試校時分至59

      圖31 分測試校時,分進(jìn)位至00 圖32 59分52秒,LEDG1亮 圖33 59分55秒,LEDG4亮 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計

      圖34 59分57秒,LEDG6亮

      圖35 59分59秒,LEDR0亮

      4.3分析運行結(jié)果

      4.3.1 設(shè)計總結(jié)

      本次大型作業(yè)我們所研究的課題是基于FPGA的數(shù)字電子時鐘的設(shè)計與實現(xiàn)。時鐘設(shè)計的方法是通過計時模塊、分頻模塊、校時模塊、譯碼顯示模塊和倒計時報時模塊來構(gòu)成該電子時鐘。計時模塊為時分秒計時,采用24進(jìn)制計時。因此該模塊中調(diào)用了24進(jìn)制和60進(jìn)制兩個程序,其中60進(jìn)制采用的是調(diào)用6進(jìn)制和10進(jìn)制的方法來實現(xiàn)。

      分頻模塊輸入一頻率為50MHz的信號,經(jīng)過四次10^2分頻,將信號逐次分為500KHz、5KHz、50Hz直至0.5Hz。計時模塊就由分頻器分頻出來的標(biāo)準(zhǔn)秒脈沖進(jìn)行計時,時、分、秒計時模塊分別由二十四進(jìn)制時計數(shù)器、六十進(jìn)制分計數(shù)器和六十進(jìn)制秒計數(shù)器完成,校時模塊完成時和分的校正。我們還進(jìn)行了擴(kuò)展功能設(shè)計——倒計時流水燈功能,從59分55秒至59分59秒,每秒亮一盞燈報時,55秒至58秒,依此亮綠燈,59秒亮紅燈。

      通過這兩周的課程設(shè)計,我們熟悉了基于FPGA的數(shù)字電子時鐘的設(shè)計與實現(xiàn)的整個流程,文本編輯,功能仿真,邏輯綜合,布局布線,編程下載,每一步剛開始或多或少有些問題,但在我們不斷努力學(xué)習(xí)補(bǔ)充修改后,最終圓滿完成數(shù)字電子時鐘的時、分、秒的計時和校時功能,復(fù)位功能,還設(shè)計實現(xiàn)了倒計時流水燈擴(kuò)展功能。

      4.3.2 心得體會

      為期兩周的大型作業(yè),我們組順利完成了基于FPGA的數(shù)字電子時鐘設(shè)計與實現(xiàn)的課程設(shè)計。從剛開始對Verilog語言非常陌生,到最后接近熟練地掌握Verilog語言的程度,期間花費不少時間和精力,同時也收獲了很多,學(xué)會了 2012.1

      上海師范大學(xué)天華學(xué)院電信系數(shù)字集成器件與應(yīng)用專業(yè)課程設(shè)計

      使用Verilog語言編程仿真電路實驗,掌握了可編程邏輯器件的應(yīng)用開發(fā)技術(shù),熟悉了一種EDA軟件使用,掌握了Verilog設(shè)計方法,即分模塊分層次的設(shè)計方法。

      在設(shè)計的過程中,因為剛剛接觸這種編程語言,我們也遇到了很多問題。但是我們沒有放棄過,不斷檢查糾正錯誤。Verilog源程序的編寫很容易出現(xiàn)錯誤,這就需要耐心的調(diào)試。因為很多情況下,一長串的錯誤往往是由一個不經(jīng)意的小錯誤引起的。有時程序一直出錯找不到原因的時候,我們也會去虛心向別的組的同學(xué)請教,或者和他們一起討論問題,從中得到一些啟發(fā)。

      由于設(shè)備和時間的限制,我們還有一部分?jǐn)U展內(nèi)容沒能夠完成,即數(shù)字鐘的整點蜂鳴報時功能。但本次設(shè)計實驗已使我們對Verilog語言產(chǎn)生了濃厚的興趣,在以后的學(xué)習(xí)生活中會主動去了解更多有關(guān)這方面的知識及其在實踐中的應(yīng)用。

      這次大型作業(yè),不僅讓我們又掌握了一些新的知識,也提高了我們的動手能力和科學(xué)嚴(yán)謹(jǐn)?shù)木?。其次也培養(yǎng)了我們自學(xué)的能力,遇到不明白的地方可以通過思考、查資料、與同學(xué)交流多種方式解決問題。這些對于我們以后的學(xué)習(xí)和工作都有極大的幫助。

      4.3.3 致謝

      最后,我們要感謝系里提供這一次的機(jī)會讓我們學(xué)到更多知識,并且提供了這么好的學(xué)習(xí)條件,設(shè)備、學(xué)習(xí)環(huán)境、師資等方面都非常好。同時也要感謝周麗婕老師和陶亞雄老師兩周以來耐心的指導(dǎo),在我們遇到問題的時候,是她們悉心的指導(dǎo)幫助和不厭其煩的講解下我們才得以順利的完成這次的設(shè)計,我們再次表示由衷的感謝!

      下載FPGA可調(diào)數(shù)字時鐘實驗報告word格式文檔
      下載FPGA可調(diào)數(shù)字時鐘實驗報告.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        FPGA交通燈實驗報告

        交通燈實驗報告 一, 實驗?zāi)康?實現(xiàn)兩路信號燈交替亮起,并利用兩組數(shù)碼管分別對兩路信號進(jìn)行倒計時。 兩路信號時間分別為: V:綠燈(30S) H:紅燈(35S) 黃燈(5s) 綠燈(30S) 紅燈(35S) 黃燈......

        FPGA秒表實驗報告

        課程設(shè)計報告 專業(yè)班級 課 程 題 目 秒表的設(shè)計 學(xué) 號 姓 名 同 組 人 成 績 2013年5月 一、設(shè)計目的 1.進(jìn)一步熟悉七段碼譯碼器的硬件接口。 2.掌握用掃描方法驅(qū)動多個數(shù)碼......

        FPGA實驗報告5篇

        FPGA實驗報告 專業(yè):XXX 姓名:XXX 學(xué)號:XX 一:實驗?zāi)康? 1.熟悉Modelsim和Quartus II軟件的運行環(huán)境和使用2.熟練使用Quartus II仿真軟件生成網(wǎng)表。3.熟悉FPGA前仿真和后仿真的......

        數(shù)字時鐘課程設(shè)計

        數(shù)字電子技術(shù)課程設(shè)計報告 一、設(shè)計目的 數(shù)字鐘是一種用數(shù)字電路技術(shù)實現(xiàn)時、分、秒計時的裝置,與機(jī)械式時鐘相比具有更高的準(zhǔn)確性和直觀性,且無機(jī)械裝置,具有更更長的使用壽......

        EDA課程設(shè)計 數(shù)字時鐘

        EDA課程設(shè)計報告 一·設(shè)計任務(wù) 使用硬件描述語言,在CPLD/FPGA上實現(xiàn)一個多功能數(shù)字鐘。 二·設(shè)計要求 除按鍵、LED、揚(yáng)聲器、時鐘信號外,整個數(shù)字鐘的功能要求在一塊芯片上......

        EDA課程設(shè)計——數(shù)字時鐘

        Hefei University EDA課程綜述 論文題目: EDA課程綜述專 業(yè): 09通信(2)班姓 名: 唐吉祥 學(xué) 號: 0905072035 指導(dǎo)老師: 查長軍前 言 隨著基于PLD的EDA技術(shù)的發(fā)展和應(yīng)用領(lǐng)域的擴(kuò)......

        數(shù)字時鐘課程設(shè)計論文

        目錄 1. 序論?????????????????????????3 2. 本論?????????????????????????4 ——設(shè)計說明????????????......

        數(shù)字電子時鐘設(shè)計

        (電子技術(shù)課程) 設(shè)計說明書 數(shù)字電子時鐘 起止日期: 2016 年11月23日 至2016年 11月 27 日 學(xué)生姓名 班級 學(xué)號 成績 指導(dǎo)教師(簽字) 交通工程學(xué)院(部) 2016年11月29日 數(shù)字......