8位格雷碼編碼器、高速分頻器 課程設(shè)計報告
《8位格雷碼編碼器、高速分頻器 課程設(shè)計報告》由會員分享,可在線閱讀,更多相關(guān)《8位格雷碼編碼器、高速分頻器 課程設(shè)計報告(15頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 通達學(xué)院 2012/2013學(xué)年 第二學(xué)期 軟件設(shè)計 實驗報告 模 塊 名 稱 8位格雷碼編碼器、高速分頻器 專 業(yè) 通信工程 學(xué) 生 班 級 100019 學(xué) 生 學(xué) 號 10001927 學(xué) 生 姓 名 楊潤達 指 導(dǎo) 教 師 王奇、孔凡坤、周小燕、梅中輝
2、 設(shè)計題目 基礎(chǔ)題:8位格雷碼編碼器 綜合題:高速分頻器設(shè)計 任務(wù)要求 基礎(chǔ)題:設(shè)計一個8位(bit)二進制碼輸入,輸出8位格雷碼的編碼器(輸入:B7 ---B0并行8位 , 輸出G7---G0并行8位 ,提示:當i<7時:G(i)=B(i+1)xorB(i),G(7)=B(7))。 綜合題:有一個10MHz的時鐘源,為得到4Hz,3Hz,2Hz和1Hz的信號,請設(shè)計一種分頻器。 實驗設(shè)備及軟件 Quartus II 9.0 同組人員學(xué)號及姓名 無 參考文獻 [1]王振紅,VHDL電路設(shè)計與應(yīng)用實踐教程:機械工業(yè)出版社。 [2]徐向民,數(shù)字系統(tǒng)設(shè)計及VHDL實踐:
3、機械工業(yè)出版社。 [3]毛為勇,祁中洋,王蘭,基于FPGA的任意小數(shù)分頻器的設(shè)計:桂林航天工業(yè)高等??茖W(xué)校學(xué)報 8位格雷碼編碼器及高速分頻器設(shè)計 實驗?zāi)康模? 1.全面了解如何應(yīng)用該硬件描述語言進行高速集成電路設(shè)計 2.通過軟件使用、設(shè)計與仿真環(huán)節(jié)使學(xué)生熟悉EDA-VHDL開發(fā)環(huán)境 3.通過對基本題、綜合題的設(shè)計實踐,使學(xué)生掌握硬件系統(tǒng)設(shè)計方法 (自底向上或自頂向下),熟悉VHDL語言三種設(shè)計風格,并且培養(yǎng) 應(yīng)用VHDL語
4、言解決實際問題的能力。 實驗設(shè)備:PC機 實驗課題: 一、8位格雷碼編碼器 1、主要功能 設(shè)計一個8位(bit)二進制碼輸入,輸出8位格雷碼的編碼器(輸入:B7 ---B0并行8位,輸出G7---G0并行8位,提示:當i<7時:G(i)=B(i+1)xorB(i),G(7)=B(7)。 2、設(shè)計原理 根據(jù)組合邏輯電路的分析方法,先列出其真值表再通過卡諾圖化簡,可以很快 的找出格雷碼與二進制碼之間的邏輯關(guān)系。其轉(zhuǎn)換規(guī)律為:高位同,從高到低看異 同,異出‘1’,同出‘0’。也就是將二進制碼轉(zhuǎn)換成格雷碼時,高位是完全相同的,下一位格雷碼是‘1’還是‘0’,完全是相
5、鄰兩位二進制碼的“異”還是“同” 來決定。下面舉一個簡單的例子加以說明。 假如要把二進制碼10110110轉(zhuǎn)換成格雷碼,則可以通過下面的方法來完成,方法如圖1-1。 圖1-1 3、 功能仿真 說明:B7~B0為輸入信號,二進制碼為:10110110 G7~G0為輸出信號,格雷碼為:11101101 4、 實驗代碼: 見附錄一 二、高速分頻器設(shè)計 1、主要功能 設(shè)計一個分頻器,對10Mhz的時鐘源進行分頻,以得到4Hz,3Hz,2Hz,1
6、Hz的時鐘。 2、設(shè)計原理 整體思路 因為10Mhz時鐘源速度很快,直接分頻成1Hz級別的時鐘的話分頻系數(shù)太大,雖然思路簡單,但是在實現(xiàn)時會造成quartus的寄存器資源消耗殆盡,導(dǎo)致編譯失敗。 所以我先通過10分頻和100000分頻將10Mhz時鐘源分頻為10Hz的時鐘源,然后對10Hz的時鐘源分別進行2.5分頻,3.3分頻,5分頻,10分頻。從而得到4Hz,3Hz,2Hz,1Hz的時鐘源。 原理框圖如圖2-1所示。 圖 2-1 2.5分頻模塊原理 設(shè)計一個模3的計數(shù)器,再設(shè)計一個扣除脈沖電路,加在模3計數(shù)器輸出之后,
7、每來兩個脈沖就扣除一個脈沖(實際上是使被扣除的脈沖變成很窄的脈沖,可由異或門實現(xiàn)),就可以得到分頻系數(shù)為2.5的小數(shù)分頻器。 設(shè)需要設(shè)計一個分頻系數(shù)為N-0.5的分頻器,其電路可由一個模N計數(shù)器、一個二分頻器和一個異或門組成,如圖2-2所示。在實現(xiàn)時,模N計數(shù)器可設(shè)計成帶預(yù)置的計數(shù)器,這樣就可以實現(xiàn)任意分頻系數(shù)為N-0.5的分頻器。 電路原理圖如圖2-2所示。 圖 2-2 3.3分頻模塊設(shè)計[3] 設(shè)置一個計數(shù)器,令其初始值為0;在時鐘源clk的每一個上升沿,計數(shù)器加上Q,若計數(shù)器里面的值小于P,則發(fā)出刪除一個脈沖的信號,將del
8、ete置為低電平;若其值大于P,則將計數(shù)器的值減去P,并且將delete置為高電平,不發(fā)出刪除脈沖的信號。本實驗中要將一個10Hz的時鐘源分頻為3Hz的時鐘信號,則Q=3,P=10。 電路原理圖如圖2-3所示。 圖 2-3 5分頻模塊設(shè)計 定義兩個計數(shù)器,分別對輸入時鐘的上升沿和下降沿進行計數(shù),然后把這兩個計數(shù)值輸入一個組合邏輯,用其控制輸出時鐘的電平。 這是因為計數(shù)值為奇數(shù),占空比為50%,前半個和后半個周期所包含的不是整數(shù)個clkin的周期。5分頻,前半個周期包含2.5個clkin周期,后半個周期包含2.5個clkin周期。
9、 10分頻模塊設(shè)計 定義一個計數(shù)器對輸入時鐘進行計數(shù),在計數(shù)的前一半時間里,輸出高電平,在計數(shù)的后一半時間里,輸出低電平,這樣輸出的信號就是占空比為50%的偶數(shù)分頻信號。10分頻,計數(shù)值為0~4輸出高電平,計數(shù)值為5~9輸出低電平。 3、功能仿真 由于題目所給的10Mhz時鐘信號頻率過大,如果直接對它進行分頻的話將難以看到完整的結(jié)果,但如果將仿真時間調(diào)長,則仿真速度過慢,所以在仿真中,我將第一次分頻的分頻系數(shù)調(diào)低,然后選擇適當?shù)妮斎霑r鐘頻率,以驗證2.5分頻,3.3分頻,5分頻,10分頻的正確性。 仿真結(jié)果如圖2-4所示。
10、圖 2-4 4、 實驗代碼 見附錄二 設(shè)計總結(jié) 本實驗主要是運用VHDL語言實現(xiàn)格雷碼編碼器和高速分頻器的設(shè)計,相對于其他的來說,本實驗比較簡單,但在實際做的時候還是遇到不少的問題。 ?在編譯時出現(xiàn)了許多錯誤,經(jīng)過反復(fù)修改編譯,再修改再編譯最終排除了所有的錯誤。 ?在仿真時一開始看不到完整的結(jié)果,通過調(diào)節(jié)分頻系數(shù)以及輸入時鐘頻率的等手段仿真成功,驗證了2.5分頻,3.3分頻,5分頻,10分頻的正確性。 收獲和體會 在老師布置好題目后,我仔細進行設(shè)計,通過查閱各參考書,最終把實驗做出來了,達到了老師對本實驗的要求。在這次設(shè)計中我收獲頗豐,首先最直接的收獲就
11、是我鞏固了這節(jié)課所學(xué)的知識,把它運用到實踐中去,并且學(xué)到了許多在課本中所沒有的知識,通過查閱相關(guān)知識,進一步加深對EDA的了解。其次,我們不管做什么都不能粗心,如我們在輸入程序是,把字母打錯了時,保存文件時命名與程序中的名稱不一樣時,都會導(dǎo)致編譯錯誤,在此過程中雖然浪費了不少時間,但這也讓我注意到在實際做設(shè)計時應(yīng)該注意的問題,意識到自己的不足,對學(xué)過的知識了解不夠深刻,掌握的不足夠。 總的來說,這次設(shè)計還算成功,也讓我明白了要把理論知識與實踐結(jié)合起來,從實踐中強化自己的理論,才能更好提高自己的實際動手能力和獨立思考能力。如果在設(shè)計過程中遇到問題時,我們要有耐心并細心的查找錯誤,這也是學(xué)習(xí)的過
12、程。 附錄一 格雷碼編碼器源代碼 library ieee; use ieee.std_logic_1164.all; entity green is port(B:in std_logic_vector(7 downto 0); G:out std_logic_vector(7 downto 0)); end green; architecture code of green is begin G(7) <= B(7);
13、G(6) <= B(7) XOR B(6); G(5) <= B(6) XOR B(5); G(4) <= B(5) XOR B(4); G(3) <= B(4) XOR B(3); G(2) <= B(3) XOR B(2); G(1) <= B(2) XOR B(1); G(0) <= B(1) XOR B(0); end code; 附錄二 高速分頻器源代碼 library ieee; use ieee.std_lo
14、gic_1164.all; use ieee.std_logic_signed.all; use ieee.std_logic_unsigned.all; entity div2 is generic(N10: integer:=10; N105: integer:=100000; N3: integer:=3; N5: integer:=5; N2: integer:=3; N10: integer:=10); port(cp_10mhz:in std_logic;
15、 delete: buffer std_logic; cp_10hz:out std_logic; cp_4hz:buffer std_logic; cp_3hz:out std_logic; cp_2hz:out std_logic; cp_1hz:out std_logic --tempout:inout std_logic ); end div2;
16、 architecture clk of div2 is signal cp1mhz:std_logic; signal cnt_1mhz: integer range 0 to N10-1; signal cp10hz:std_logic; signal cnt_10hz: integer range 0 to N105-1; signal cnt_1hz: integer range 0 to N10-1; signal cnt_2hz1, cnt_2hz2: integer range 0 to N5-1; signal cnt_3hz: integer :=0; S
17、IGNAL clk_4hz, dix: STD_LOGIC; SIGNAL cnt_4hz: integer range 0 to N5-1; constant P :integer:=10; constant Q :integer:=3; --SIGNAL delete: std_logic; begin clk_4hz <= cp10hz XOR dix; --clk<=cp10hz xor div2; ------------------------------------------ -------------------------------------
18、-----
process(cp_10mhz) --計數(shù)----1Mhz
begin
if(cp_10mhzevent and cp_10mhz=1) then
if(cnt_1mhz 19、輸出時鐘脈沖的高、低電平
begin
if(cnt_1mhz 20、Hz--------------
begin
if(cp1mhzevent and cp1mhz=1) then
if(cnt_10hz 21、 if(cnt_10hz 22、) --計數(shù)--------------1Hz--------------
begin
if(cp10hzevent and cp10hz=1) then
if(cnt_1hz 23、電平
begin
if(cnt_1hz 24、----
begin
if(cp10hzevent and cp10hz=1) then --shangshengyanjishu
if(cnt_2hz1 25、--xiajiangyanjishu
if(cnt_2hz2 26、----------------------------------------------
process(clk_4hz)---------------------------4Hz-------
begin
if(clk_4hzevent and clk_4hz=1) then
if(cnt_4hz=0) then
cnt_4hz <= N2-1; --置整數(shù)分頻值N
cp_4hz <= 1;
else
27、cnt_4hz <= cnt_4hz-1; --模N計數(shù)器減法計數(shù)
cp_4hz <= 0;
end if;
end if;
end process;
process(cp_4hz)
begin
if(cp_4hzevent and cp_4hz=1) then
dix <= not dix; --輸出時鐘二分頻
end if;
end process;
-------------------------------------------------------
28、
-------------------------------------------------------
process(cp10hz)------------------3hz------------------
begin
if(cp10hzevent and cp10hz=1) then
cnt_3hz<=cnt_3hz+Q;
if(cnt_3hz
29、=1;
end if;
end if;
end process;
process(cp10hz,delete)
begin
cp_3hz<=cp10hz and delete;
end process;
end clk;
設(shè)計成績評定
評分內(nèi)容
具體要求
總分
評分
上機時間
上機時間是否達到要求的學(xué)時,按照實際情況給與一定的成績。
10分
報告審閱結(jié)果
報告結(jié)構(gòu)嚴謹,文字通順,用語符合技術(shù)規(guī)范,圖表清楚,書寫格式規(guī)范,不與別人雷同。
30分
驗收結(jié)果
原理
原理清楚,能較好地理解課題任務(wù)并提出實施方案。
20分
完成情況
獨立完成規(guī)定設(shè)計任務(wù),論證、分析、設(shè)計、計算、結(jié)構(gòu)、建模、實驗正確合理,有一定的創(chuàng)新。
30分
操作
能熟練操作相關(guān)工具軟件,并利用工具軟件完成設(shè)計任務(wù)。
10分
總成績(五分制)
100分
指導(dǎo)教師評閱意見
- 溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 5段太尉逸事狀
- 讀后感作文輔導(dǎo)1
- 有機磷農(nóng)藥中毒終極
- 電解池的應(yīng)用(教育精品)
- 庫存管理流程及改善課件
- 廬陽區(qū)XX小學(xué)四年級數(shù)學(xué)上冊-1-大數(shù)的認識-第4課時-億以內(nèi)數(shù)的大小比較課件-新人教版
- 合同策劃與合同分析
- 五年級下冊語文課件-1春光染綠我們雙腳-蘇教版
- 闌尾炎的教學(xué)查房csp課件
- 基準和輪廓度公差課件
- 建立開放式公共物流平臺體系-推動制造業(yè)及物流的聯(lián)動課件
- 三(323)家長會
- 策略管理Chapter3內(nèi)部分析獨特能力競爭優(yōu)勢與獲利能力課件
- 江城子(教育精品)
- 水果寶寶去旅行 (2)(教育精品)