




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、目錄一、 課程設計任務:2二、 課程設計原理:2三、 課程設計所需儀器:2四、 課程設計使用的硬件資源及原理框圖:2五、 設計過程及操作:31、 FTCTRL測頻控制模塊:32、 計數(shù)器模塊:33、 REG32B鎖存器模塊34、 DECL7S譯碼器模塊45、 分頻器模塊46、 MUX多路選擇器模塊。47、 器件連接:48、 操作過程:4六、 設計各個模塊代碼:51:FTCTRL模塊52:CNT_10計數(shù)器模塊53:REG32B鎖存器模塊64:DECL7S譯碼器模塊65:any_10 10分頻器模塊76:any_5 5分頻器模塊77:any_16 16分頻模塊88:MUX多路選擇器模塊99:頂層
2、例化代碼9七、總電路:12八、管腳配置:13九、設計結(jié)果:141、 課程設計任務:設計8位十進制頻率計2、 課程設計原理: 根據(jù)頻率的定義和頻率測量的基本原理,測定信號的頻率必須有一個脈寬為1秒的對輸入信號脈沖計數(shù)允許的信號;1秒計數(shù)結(jié)束后,計數(shù)值鎖入鎖存器的鎖存信號和為下一測頻計數(shù)周期作準備的計數(shù)器清0信號。這清0個信號可以由一個測頻控制信號發(fā)生器TESTCTL產(chǎn)生,它的設計要求是,TESTCTL的計數(shù)使能信號CNT_EN能產(chǎn)生一個1秒脈寬的周期信號,并對頻率計的每一計數(shù)器CNT10的EN使能端進行同步控制。當CNT_EN高電平時,允許計數(shù);低電平時停止計數(shù),并保持其所計的脈沖數(shù)。在停止計數(shù)
3、期間,首先需要一個鎖存信號LOAD 的上跳沿將計數(shù)器在前1秒鐘的計數(shù)值鎖存進各鎖存器REG4B中,并由外部的7段譯碼器譯出,顯示計數(shù)值。設置鎖存器的好處是,顯示的數(shù)據(jù)穩(wěn)定,不會由于周期性的清零信號而不斷閃爍。鎖存信號之后,必須有一清零信號RST_CNT對計數(shù)器進行清零,為下1秒鐘的計數(shù)操作作準備。 3、 課程設計所需儀器:Altrea DE2-115實驗箱;quartusII 12.1;modelsim仿真軟件。4、 課程設計使用的硬件資源及原理框圖:1、50MHz時鐘源兩個2、撥動開關(guān)3、7段數(shù)碼管/液晶顯示屏5、 設計過程及操作:1、FTCTRL測頻控制模塊: 頻率計的核心控制部分為FTC
4、TRL,該模塊的技術(shù)是能信號CNT_EN能產(chǎn)生一個1s脈寬的周期信號(由于實驗箱提供的是50MHz的高頻信號,所以需要通過分頻器獲得1s脈寬信號),并對頻率計中的計數(shù)器的EN使能端進行同步測控。當CNT_EN高電平時允許計數(shù);低電平時停止計數(shù),并保持其所設計的脈沖數(shù)。在停止計數(shù)期間,首先需要一個鎖存信號LOAD的上升沿將計數(shù)器在前一秒鐘的計數(shù)器的計數(shù)值鎖存進鎖存器REG32B中,并由外部的十六進制7段譯碼器譯出,顯示計數(shù)值。鎖存信號后,必須有一清零信號RST_CNT對計數(shù)器清零,為下一秒的計數(shù)操作做準備。2、 計數(shù)器模塊: 由于設計要求為8位十進制輸出,所以采用的是十進制加法帶進位的計數(shù)器級聯(lián)
5、的形式完成計數(shù)功能,每個單獨的計數(shù)器有4位的十進制DOUT(3 DOWNTO 0)輸出和一個進位COUT輸出,輸入的RST復位端、EN使能端和計數(shù)信號CLK端。級聯(lián)時,將被測信號接入第一個各位的CNT_10計數(shù)器的CLK端,并且將每上一個的進位端與下一個的計數(shù)器CNT_10的計數(shù)CLK相連。3、REG32B鎖存器模塊 鎖存器為32位,包括一個鎖存信號LK,32位的輸入和輸出。4、 DECL7S譯碼器模塊因為每個計數(shù)器輸出的是二進制數(shù),所以轉(zhuǎn)化到七段數(shù)碼管上需要通過4-7譯碼器譯碼。實驗箱的數(shù)碼管為共陽極。需要8個數(shù)碼管同時顯示,所以需要8個譯碼器。5、 分頻器模塊由于實驗箱只提供50MHz的信
6、號,所以需要分頻得到1Hz的信號以及不同的頻率進行測試,所以需要分頻器。本設計分頻器采用的是5分頻器any_5、10分頻器any_10和16分頻器any_16。6、 MUX多路選擇器模塊。由于實驗箱提供的信號源有限,所以要進行測試,必須使用多路選擇器來進行對不同的分頻信號進行測試來驗證頻率計的功能是否完成。本次設計采用的是4選1多路選擇器。7、 器件連接:以上各部份器件已經(jīng)完善。需要將這些器件連接起來完成最終的設計,所以本次設計采取了元件例化,用例化語句將各個器件連接起來。頂層文件見代碼段。8、 操作過程: A建立項目 B選擇器件: 器件系列(Device Family) Cyclone IV
7、 E 器件型號(Available Devices) EP4CE115F29C7 C建立設計文檔,new vhdl file,并編輯保存。 D點擊按鍵欄(或Processing菜單中)的Start compilation 進行編譯 E編譯正確完成后,點擊按鍵欄(或Assignments菜單中)的Pin Planner進行引腳鎖定 F雙擊Location欄,在下拉菜單中選擇需要鎖定的引腳(EP4C115F芯片引腳分布詳見附錄) G再次編譯項目 H連接實驗箱 I 程序下載 點擊按鍵欄(或Tools菜單)的Programmer,此時沒有添加硬件,點擊Hardware Setup選擇硬件。在Curre
8、ntly selected hardware下拉菜單中選擇USB-Blaster后,點擊Close,回到Programmer頁面。在Hardware Setup欄中可看到USB-Blaster。注意Mode為缺省的JTAG接口硬件選擇完畢。點擊Start開始下載。Progress進度完成后下載完畢。6、 設計各個模塊代碼:1:FTCTRL模塊LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FTCTRL ISPORT ( CLKK :IN STD_LOGIC; CNT_EN,RST_C
9、NT :OUT STD_LOGIC; LOAD: OUT STD_LOGIC );END FTCTRL;ARCHITECTURE behav of FTCTRL ISSIGNAL DIV2CLK :STD_LOGIC :='0'BEGINPROCESS (CLKK) BEGINIF CLKK 'EVENT AND CLKK='1' THEN DIV2CLK<=NOT DIV2CLK;END IF;END PROCESS;PROCESS (CLKK,DIV2CLK) BEGINIF CLKK='0' AND DIV2CLK='
10、0' THEN RST_CNT<='1'ELSE RST_CNT<='0'END IF;END PROCESS;LOAD <=NOT DIV2CLK;CNT_EN <=DIV2CLK;END behav;2:CNT_10計數(shù)器模塊LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 IS PORT( RST ,EN,CLK: IN STD_LOGIC; COUT :OUT STD_LOGIC; DOUT :OUT
11、STD_LOGIC_VECTOR(3 DOWNTO 0);END CNT10;ARCHITECTURE BHV OF CNT10 ISBEGINPROCESS(CLK,RST,EN)VARIABLE Q1 :STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN IF RST='1' THEN Q1:=( OTHERS =>'0');ELSIF CLK'EVENT AND CLK='1' THEN IF EN='1' THEN IF Q1<9THEN Q1:=Q1+1; ELSE Q1:=(OTH
12、ERS=>'0'); END IF; END IF;END IF;IF Q1="1001" THEN COUT<='0' ELSE COUT<='1'END IF;DOUT <= Q1;END PROCESS;END BHV; 3:REG32B鎖存器模塊LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG32B IS PORT(LK:IN STD_LOGIC; DIN:IN STD_LOGIC_VECTOR(31 DOWNTO 0); Q:OUT STD
13、_LOGIC_VECTOR(31 DOWNTO 0);END;ARCHITECTURE BHV OF REG32B IS BEGIN PROCESS(LK,DIN) BEGIN IF LK 'EVENT AND LK='1' THEN Q <=DIN; END IF;END PROCESS;END BHV;4:DECL7S譯碼器模塊LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DECL7S ISPORT ( A :IN STD_LOGIC_VECTOR (3 DOWNTO 0); LED7S: OUT STD_LO
14、GIC_VECTOR (6 DOWNTO 0);END;ARCHITECTURE ONE OF DECL7S ISBEGIN PROCESS(A) BEGIN CASE A IS WHEN "0000" =>LED7S <="1000000" WHEN "0001" =>LED7S <="1111001" WHEN "0010" =>LED7S <="0100100" WHEN "0011" =>LED7S <
15、;="0110000" WHEN "0100" =>LED7S <="0011001" WHEN "0101" =>LED7S <="0010010" WHEN "0110" =>LED7S <="0000010" WHEN "0111" =>LED7S <="1111000" WHEN "1000" =>LED7S <="00
16、00000" WHEN "1001" =>LED7S <="0010000" WHEN OTHERS => NULL; END CASE; END PROCESS; END; 5:any_10 10分頻器模塊library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity any_10 isport (clk10:in std_logic; k:out std_logic);end;architecture bhv of any_10
17、 is signal s : std_logic; signal c : std_logic_vector(3 downto 0);beginprocess(clk10,c)beginif rising_edge(clk10) thenif (c="1001") then c<="0000" else c<=c+1;end if;if (c="0101") then s<=not s;elsif(c="0000") then s<=not s;end if;end if;end proces
18、s;k<=s;end bhv;6:any_5 5分頻器模塊library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ANY_5 isport(clk5:in std_logic; kf:out std_logic);end;architecture bhv of ANY_5 is signal c1,c2: std_logic_vector(2 downto 0); signal m1,m2: std_logic;beginprocess(clk5,c1) begin if rising
19、_edge(clk5) then if(c1="100") then c1<="000" else c1<=c1+1;end if; if(c1="001") then m1<=not m1;elsif(c1="011") then m1<=not m1;end if; end if;end process;process(clk5,c2) begin if falling_edge(clk5) then if(c2="100") then c2<="00
20、0"else c2<=c2+1;end if; if(c2="001") then m2<=not m2;elsif(c2="011") then m2<=not m2;end if; end if;end process;kf<=m1 or m2;end bhv;7:any_16 16分頻模塊library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity any_16
21、 is port( clk_in : in std_logic; clk_out : out std_logic);end entity any_16; architecture div1 of any_16 is signal clk_outQ : std_logic ; signal coutQ : std_logic_vector (15 downto 0);beginprocess(clk_in) begin if clk_in'event and clk_in = '1' then if coutQ <15 then coutQ <= coutQ
22、+ 1; else coutQ <= (others => '0'); end if; end if; end process;process(coutQ) begin if coutQ < 16/2 then clk_outQ <= '0' else clk_outQ <= '1' end if; end process;clk_out <= clk_outQ;end architecture div1; 8:MUX多路選擇器模塊library ieee;use ieee.std_logic_1164.all
23、;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity MUX is port(AIN,BIN,CIN,DIN,S0,S1 : in std_logic; Y : out std_logic);end entity MUX; architecture A of MUX is signal S : std_logic_vector (1 downto 0);beginS <= S1&S0;process(S1,S0) begin CASE(S) IS WHEN "00" =>
24、 Y<=AIN; WHEN "01" => Y<=BIN; WHEN "10" => Y<=CIN; WHEN "11" => Y<=DIN; END CASE; end process;end architecture A; 9:頂層例化代碼LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY pinlvji ISPORT( CLK,FFIN,S0,S1:IN STD_LOGIC; QOUT:OUT STD_LOGIC_VECTOR(55 DOWNT
25、O 0);END ENTITY pinlvji;ARCHITECTURE BHV OF pinlvji ISCOMPONENT FTCTRL PORT ( CLKK :IN STD_LOGIC; CNT_EN,RST_CNT :OUT STD_LOGIC; LOAD: OUT STD_LOGIC );END COMPONENT ;COMPONENT REG32B PORT( LK :IN STD_LOGIC; DIN:IN STD_LOGIC_VECTOR(31 DOWNTO 0); Q:OUT STD_LOGIC_VECTOR(31 DOWNTO 0);END COMPONENT ;COMP
26、ONENT CNT10 PORT( RST ,EN,CLK: IN STD_LOGIC; COUT :OUT STD_LOGIC; DOUT :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END COMPONENT ;COMPONENT DECL7S PORT( A :IN STD_LOGIC_VECTOR (3 DOWNTO 0); LED7S: OUT STD_LOGIC_VECTOR (6 DOWNTO 0);END COMPONENT;COMPONENT any_16 port(clk_in : in std_logic; clk_out : out std_lo
27、gic);END COMPONENT;COMPONENT any_5 port(clk5:in std_logic; kf:out std_logic);END COMPONENT;COMPONENT any_10 port (clk10:in std_logic; k:out std_logic);END COMPONENT;COMPONENT MUX port(AIN,BIN,CIN,DIN,S0,S1 : in std_logic; Y : out std_logic);END COMPONENT;SIGNAL NR,NE,NL,M1,M2,M3,M4,M5,M6,M7,M8:STD_L
28、OGIC;SIGNAL N1,N2,N3,N4,N5,N6,N7,N8:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL L1,L2,L3,L4,L5,L6,L7,L8:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL C1,C2,C3,C4,C5,C6,C7,C8:STD_LOGIC;SIGNAL Y1,Y2,Y3,YY:STD_LOGIC;BEGINU1:FTCTRL PORT MAP(CLKK=>C8,CNT_EN=>NE,RST_CNT=>NR,LOAD=>NL);U2:REG32B PORT MAP(LK=>N
29、L, DIN(3 DOWNTO 0)=>N1,DIN(7 DOWNTO 4)=>N2, DIN(11 DOWNTO 8)=>N3,DIN(15 DOWNTO 12)=>N4, DIN(19 DOWNTO 16)=>N5,DIN(23 DOWNTO 20)=>N6, DIN(27 DOWNTO 24)=>N7,DIN(31 DOWNTO 28)=>N8, Q(3 DOWNTO 0)=>L1,Q(7 DOWNTO 4)=>L2, Q(11 DOWNTO 8)=>L3,Q(15 DOWNTO 12)=>L4, Q(19 DOWN
30、TO 16)=>L5,Q(23 DOWNTO 20)=>L6, Q(27 DOWNTO 24)=>L7,Q(31 DOWNTO 28)=>L8);U3:CNT10 PORT MAP(RST=>NR,EN=>NE,CLK=>YY,DOUT=>N1,COUT=>M1);-U4:CNT10 PORT MAP(RST=>NR,EN=>NE,CLK=>M1,DOUT=>N2,COUT=>M2);U5:CNT10 PORT MAP(RST=>NR,EN=>NE,CLK=>M2,DOUT=>N3,CO
31、UT=>M3);U6:CNT10 PORT MAP(RST=>NR,EN=>NE,CLK=>M3,DOUT=>N4,COUT=>M4);U7:CNT10 PORT MAP(RST=>NR,EN=>NE,CLK=>M4,DOUT=>N5,COUT=>M5);U8:CNT10 PORT MAP(RST=>NR,EN=>NE,CLK=>M5,DOUT=>N6,COUT=>M6);U9:CNT10 PORT MAP(RST=>NR,EN=>NE,CLK=>M6,DOUT=>N7,CO
32、UT=>M7);U10:CNT10 PORT MAP(RST=>NR,EN=>NE,CLK=>M7,DOUT=>N8);U11:DECL7S PORT MAP(A => L1,LED7S=>QOUT(6 DOWNTO 0);U12:DECL7S PORT MAP(A => L2,LED7S=>QOUT(13 DOWNTO 7);U13:DECL7S PORT MAP(A => L3,LED7S=>QOUT(20 DOWNTO 14);U14:DECL7S PORT MAP(A => L4,LED7S=>QOUT(27
33、 DOWNTO 21);U15:DECL7S PORT MAP(A => L5,LED7S=>QOUT(34 DOWNTO 28);U16:DECL7S PORT MAP(A => L6,LED7S=>QOUT(41 DOWNTO 35);U17:DECL7S PORT MAP(A => L7,LED7S=>QOUT(48 DOWNTO 42);U18:DECL7S PORT MAP(A => L8,LED7S=>QOUT(55 DOWNTO 49);U19:any_10 PORT MAP(CLK,C1);U20:any_10 PORT MAP(
34、C1,C2);U21:any_10 PORT MAP(C2,C3);U22:any_10 PORT MAP(C3,C4);U23:any_10 PORT MAP(C4,C5);U24:any_10 PORT MAP(C5,C6);U25:any_10 PORT MAP(C6,C7);U26:any_5 PORT MAP(C7,C8);U27:MUX PORT MAP(Y1,Y2,Y3,FFIN,S0,S1,YY);U28:any_5 PORT MAP(FFIN,Y1);U29:any_16 PORT MAP(FFIN,Y2);U30:any_10 PORT MAP(FFIN,Y3);END A
35、RCHITECTURE;七、總電路:12348、 管腳配置:CLOCK2_50 Input PIN_AG14 CLKCLOCK3_50 Input PIN_AG15 FFINHEX06 Output PIN_H22 QOUT6HEX05 Output PIN_J22 QOUT5HEX04 Output PIN_L25 QOUT4HEX03 Output PIN_L26 QOUT3HEX02 Output PIN_E17 QOUT2HEX01 Output PIN_F22 QOUT1HEX00 Output PIN_G18 QOUT0HEX16 Output PIN_U24 QOUT13HEX15 Output PIN_U23 QOUT12HEX14 Output PIN_W25 QOUT11HEX13 Output PIN_W22 QOUT10HEX12 Output PIN_W21 QOUT9HEX11 Output PIN_Y22 QOUT8HEX10 Output PIN_M24 QOUT7HEX26 Output PIN_W28 QOUT20HEX25 Output PIN_W27 QOUT19HEX
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 礦山設備鈑金件加工定制采購合同模板
- 車間生產(chǎn)知識產(chǎn)權(quán)保護承包合同范本
- 旅游度假區(qū)場地運營管理與服務合同
- 采礦權(quán)抵押與礦產(chǎn)資源勘探合同
- 水務設施拆遷補償協(xié)議書范本
- 公共設施拆除與臨時替代措施合同
- 教育行業(yè)項目實施的配合措施
- 科技公司農(nóng)民工工資支付保障措施
- 活動場所蟲害防治措施
- 鋼結(jié)構(gòu)廠房節(jié)能設計的挑戰(zhàn)及應對措施
- 2025年安徽宣城郎溪開創(chuàng)控股集團有限公司招聘筆試參考題庫附帶答案詳解
- 中醫(yī)針灸推拿操作規(guī)范
- 冷卻塔維修施工方案及報價清單
- 物聯(lián)網(wǎng)設備接入技術(shù)規(guī)范手冊
- 余秋雨散文《西湖夢》
- 服務售后方案及保障措施
- 消毒供應中心器械管理制度
- 醫(yī)療歧視培訓課件
- 2025年度工地渣土運輸與道路清掃保潔合同
- 二手設備轉(zhuǎn)讓合同(2024版)
- 《低中高頻電療法》課件
評論
0/150
提交評論