巴克碼檢測器課程設計_第1頁
巴克碼檢測器課程設計_第2頁
巴克碼檢測器課程設計_第3頁
巴克碼檢測器課程設計_第4頁
巴克碼檢測器課程設計_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

/課程設計任務書學生姓名:專業(yè)班級:電子科學與技術0803班指導教師:工作單位:信息工程學院題目:巴克碼檢測器課題要求:(1)學會在QuartusⅡ環(huán)境中運用VHDL語言設計方法構建具有一定邏輯功能的模塊,并能運用圖形設計方法完成頂層原理圖的設計。(2)掌握巴克碼檢測器的主要功能與在CPLD中的實現(xiàn)方法。課題內(nèi)容:(1)設計一個七位巴克碼(X1110010)代碼檢測器,當識別到一組代碼時,輸出一個高電平脈沖。(2)運用QuartusⅡ軟件中的仿真功能對所設計的巴克碼檢測器的各個模塊及頂層電路的功能進行仿真分析。時間安排:學習VHDL語言的概況第1天學習VHDL語言的基本知識第2、3天學習VHDL語言的應用環(huán)境,調(diào)試命令第4、5天課程設計第6-9天答辯第10天指導教師簽名:年月日系主任(或責任教師)簽名:年月日目錄TOC\o”1—3"\h\z\uHYPERLINK摘要?PAGEREF_Toc283367692\hIHYPERLINK\l”_Toc283367693”Abstract PAGEREF_Toc283367693\hIIHYPERLINK\l"_Toc283367694"1緒論?PAGEREF_Toc283367694\h1HYPERLINK\l”_Toc283367695”2巴克碼簡介 PAGEREF_Toc283367695\h2HYPERLINK\l"_Toc283367696”3QuartersⅡ設計軟件介紹 PAGEREF_Toc283367696\h3HYPERLINK\l"_Toc283367697”3.1VHDL發(fā)展史及特點 PAGEREF_Toc283367697\h3HYPERLINK\l"_Toc283367698"3.2QuartersⅡ應用 PAGEREF_Toc283367698\h4HYPERLINK\l"_Toc283367699"4方案選擇及論證?PAGEREF_Toc283367699\h6HYPERLINK\l"_Toc283367700"5設計原理 PAGEREF_Toc283367700\h7HYPERLINK\l"_Toc283367701"5。1巴克碼發(fā)生器 283367701\h7HYPERLINK\l”_Toc283367702”5.2巴克碼檢測器?PAGEREF_Toc283367702\h9HYPERLINK\l”_Toc283367703"6編譯與仿真?PAGEREF_Toc283367703\h136.1程序編譯?PAGEREF_Toc283367704\h13HYPERLINK\l"_Toc283367705"6。2實驗仿真 PAGEREF_Toc283367705\h18HYPERLINK7小結(jié)?PAGEREF_Toc283367706\h20HYPERLINK\l"_Toc283367707”參考文獻: PAGEREF_Toc283367707\h21摘要設計一個七位巴克碼(X1110010)代碼檢測器,當識別到一組代碼時,輸出一個高電平脈沖.AbstractThiscourseisdesignedusingQUARTERSⅡdesignasevenbuckcode(X1110010)codedetector,whentorecognizeasetofcode,andtheoutputpulseahighlevel。Buckcodeismainlyusedforcommunicationsystemofframesynchronization,characterizedbyasharpautocorrelation,facilitat(yī)eandrandomdigitalinformationtodistinguish,easytoidentify,appearthepossibilityofpseudosynchronoussmall.Buckcodeisonekindhasthespeciallawofbinarycodegroup,itisanon—periodicsequence.Keywords:QUARTERSⅡ,buckyards,signaltester,sequence1緒論2巴克碼簡介3QuartersⅡ設計軟件介紹3。1VHDL發(fā)展史及特點VHDL誕生于1982年。隨后各EDA公司相繼推出了自己的VHDL設計環(huán)境,或宣布自己的設計工具可以和VHDL接口。此后VHDL在電子設計領域得到了廣泛的接受,并逐步取代了原有的非標準的硬件描述語言。1993年,IEEE對VHDL進行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴展VHDL的內(nèi)容,公布了新版本的VHDL,即IEEE標準的1076—1993版本,(簡稱93版)?,F(xiàn)在,VHDL和Verilog作為IEEE的工業(yè)標準硬件描述語言,又得到眾多EDA公司的支持,在電子工程領域,已成為事實上的通用硬件描述語言。有專家認為,在新的世紀中,VHDL于Verilog語言將承擔起大部分的數(shù)字系統(tǒng)設計任務。VHDL的英文全寫是:VHSIC(VeryHighSpeedIntegratedCircuit)HardwareDescriptiongLanguage.翻譯成中文就是超高速集成電路硬件描述語言.因此它的應用主要是應用在數(shù)字電路的設計中。目前,它在中國的應用多數(shù)是用在FPGA/CPLD/EPLD的設計中。當然在一些實力較為雄厚的單位,它也被用來設計ASIC.VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構,行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風格與句法是十分類似于一般的計算機高級語言.VHDL語言特點(1)VHDL語言功能強大、設計靈活。VHDL具有功能強大的語言結(jié)構,可以用簡潔明確的源代碼來描述復雜的邏輯控制。它具有多層次的設計描述功能,層層細化,最后可直接生成電路級描述。VHDL支持同步電路、異步電路和隨機電路的設計,這是其他硬件描述語言雖不能比擬的.VHDL還支持各種設計方法,既支持自底向上的設計,又支持自頂向下的設計;既支持模塊化設計,又支持層次化設計。(2)支持廣泛、易于修改。由于VHDL已經(jīng)成為IEEE標準所規(guī)范的硬件描述語言,目前大多數(shù)EDA工具幾乎都支持VHDL,這為VHDL的進一步推廣和廣泛應用奠定了基礎.在硬件電路設計過程中,主要的設計文件是用VHDL編寫的源代碼,因為VHDL易讀和結(jié)構化,所以易于修改設計.(3)強大的系統(tǒng)硬件描述能力。VHDL具有多層次的設計描述功能,既可以描述系統(tǒng)級電路,又可以描述門級電路。而描述既可以采用行為描述、寄存器傳輸描述或結(jié)構描述,也可以采用三者混合的混合級描述.另外,VHDL支持慣性延遲和傳輸延遲,還可以準確地建立硬件電路模型。VHDL支持預定義的和自定義的數(shù)據(jù)類型,給硬件描述帶來較大的自由度,使設計人員能夠方便地創(chuàng)建高層次的系統(tǒng)模型。(4)獨立于器件的設計、與工藝無關。設計人員用VHDL進行設計時,不需要首先考慮選擇完成設計的器件,就可以集中精力進行設計的優(yōu)化。當設計描述完成后,可以用多種不同的器件結(jié)構來實現(xiàn)其功能。(5)很強的移植能力。VHDL是一種標準化的硬件描述語言,同一個設計描述可以被不同的工具所支持,使得設計描述的移植成為可能.(6)易于共享和復用.VHDL采用基于庫(Library)的設計方法,可以建立各種可再次利用的模塊。這些模塊可以預先設計或使用以前設計中的存檔模塊,將這些模塊存放到庫中,就可以在以后的設計中進行復用,可以使設計成果在設計人員之間進行交流和共享,減少硬件電路設計.(7)VHDL豐富的仿真語句和庫函數(shù),使得在任何大系統(tǒng)的設計早期就能查驗設計系統(tǒng)的功能可行性,隨時可對設計進行仿真模擬。(8)VHDL語句的行為描述能力和程序結(jié)構決定了他具有支持大規(guī)模設計的分解和已有設計的再利用功能。符合市場需求的大規(guī)模系統(tǒng)高效,高速的完成必須有多人甚至多個代發(fā)組共同并行工作才能實現(xiàn)。對于用VHDL完成的一個確定的設計,可以利用EDA工具進行邏輯綜合和優(yōu)化,并自動的把VHDL描述設計轉(zhuǎn)變成門級網(wǎng)表。(9)VHDL對設計的描述具有相對獨立性,設計者可以不懂硬件的結(jié)構,也不必管理最終設計實現(xiàn)的目標器件是什么,而進行獨立的設計.總之,由于VHDL語言有這么多優(yōu)點和特點,因此它被廣泛的應用在電路系統(tǒng)的設計和器件的設計仿真中.3。2QuartersⅡ應用QuartersⅡ是Altera公司推出的新一代開發(fā)軟件,適合于大規(guī)模邏輯電路設計,是Altera公司的第4代可編程邏輯器件集成開發(fā)環(huán)境,提供了從設計輸入到器件編程的全部功能,與Max+plusⅡ相比,QuartersⅡ設計軟件增加了網(wǎng)絡編輯功能,提升了調(diào)試能力,解決了潛在的設計延遲,同時其強大的設計能力和直觀易用的接口,受到數(shù)字系統(tǒng)設計者的普遍歡迎。QuartersⅡ開發(fā)系統(tǒng)具有以下主要特點:QuartersⅡ可以產(chǎn)生并識別EDIF網(wǎng)表文件、VHDL網(wǎng)表文件和VerilogHDL網(wǎng)表文件,為第三方EDA工具提供了方便的接口。QuartersⅡ支持一個工作組環(huán)境下的設計要求,包括支持基于Internet的協(xié)作設計,與Cadence,ExemplarLogic,MentorGraphics,Synopsys和Synplicity等EDA供應商的開發(fā)工具相兼容。QuartersⅡ作為一種設計環(huán)境,除支持Altera的APEX20KE,APEX20KC,APEXⅡ,ARM的Excalibur嵌入式處理器方案,Mercury,FLEX10KE和ACEX1K之外,還支持MAX3000A和MAX7000系列乘積項器件。QuartersⅡ增加了一個新的快速適配編譯選項,可縮短50%的編譯時間.快速適配功能保留了最佳性能的設置,加快了編譯過程,編譯速度更快,對設計性能的影響最小[3]境,或宣布自己的設計工具可以和VHDL接口.此后VHDL在電子設計領域得到了廣泛的接受,并逐步取代了原有的非標準的硬件描述語言。QuartersⅡ設計軟件界面如圖3.1所示. 圖3.1QuartersⅡ設計軟件界面4方案選擇及論證方案一:在狀態(tài)連續(xù)變化的數(shù)字系統(tǒng)設計中,采用狀態(tài)機的設計思想有利于提高設計效率,增加程序的可讀性,減少錯誤的發(fā)生幾率.同時,狀態(tài)機的設計方法也是數(shù)字系統(tǒng)中一種常用的設計方法,其輸出僅僅是當前狀態(tài)值的函數(shù),并且在時鐘上升沿到來時才發(fā)生變化。米立機的輸出則是當前狀態(tài)值、當前輸出值和當前輸入值的函數(shù)。本實驗要從一串二進制碼中檢測出一個已預置的7位二進制碼,每增加一位二進制相當于增加一個狀態(tài),用7個狀態(tài)可以實現(xiàn).方案二:利用移位寄存器實現(xiàn)序列檢測:上面檢測的原理是:逐位檢測,的那個檢測到信號時則轉(zhuǎn)入下一個狀態(tài)。這種檢測的原理清晰,但缺點是當檢測到序列比較長時就非常麻煩,而且檢測的靈活性差。利用移位寄存器能實現(xiàn)簡便快速,可移植的序列檢測器。通過比較可以看出方案一比較容易實現(xiàn),因此本次課程設計我選擇的是方案一。5設計原理序列檢測器可用于檢測一組或多組由二進制碼組成的脈沖序列信號,當序列檢測器連續(xù)收到一組串行二進制碼后,如果這組碼與檢測器中預先設置的碼相同,則輸出1,否則輸出0。由于這種檢測的關鍵在于正確碼的收到必須是連續(xù)的,這就要求檢測器必須記住前一次的正確碼及正確序列,直到在連續(xù)的檢測中所收到的每一位碼都與預置數(shù)的對應碼相同.在檢測過程中,任何一位不相等都將回到初始狀態(tài)重新開始檢測.在本次設計中首先要設計一個巴克碼發(fā)生器,然后再設計巴克碼檢測器.5.1巴克碼發(fā)生器發(fā)生器原理:N位觸發(fā)器構成的計數(shù)器可產(chǎn)生M個代碼。原理圖:圖5.1巴克碼發(fā)生器原理圖當計數(shù)脈沖不斷進入由Q3Q2Q1組成的三位二進制異步計數(shù)器時,3-8譯碼器的8個輸出經(jīng)反相器后順序輸出高電平。其中五路信號經(jīng)“或非”后再和其中3路“或",在Y端便可順序產(chǎn)生11000100代碼序列。代碼序列發(fā)生:libraryieee;useieee.std_logic_1164.all;useieee。std_logic_unsigned.all;entitybak1isport(?clk,reset:instd_logic;??dout:outstd_logic);endbak1;architectureaofbak1is signalcount:std_logic_vector(2downto0);?signaltmp1:std_logic;begindout〈=tmp1; process(clk,reset) begin??ifreset='0'then ?count<=(others=>'0'); ?elsifrising_edge(clk)then ?count〈=count+1;? ?casecountis? ?when”000”=>tmp1<=’1'; ?when”001"=>tmp1〈=’1’;? when"010”=〉tmp1<=’1’;?? ?when"011"=>tmp1〈='0'; ?? when”100”=〉tmp1<='0'; when"101"=>tmp1<='1’;?? ?when"110"=>tmp1〈=’0’;?? ?when"111"=>tmp1<='1';? ?whenothers=>tmp1〈='0’; ?endcase;? endif;?endprocess;enda;5。2巴克碼檢測器序列檢測器可用于檢測一組或多組由二進制碼組成的脈沖序列信號,當序列檢測器連續(xù)收到一組串行二進制碼后,如果這組碼與檢測器中預先設置的碼相同,則輸出1,否則輸出0。由于這種檢測的關鍵在于正確碼的收到必須是連續(xù)的,這就要求檢測器必須記住前一次的正確碼及正確序列,直到在連續(xù)的檢測中所收到的每一位碼都與預置數(shù)的對應碼相同。在檢測過程中,任何一位不相等都將回到初始狀態(tài)重新開始檢測。圖5.2巴克碼檢測器狀態(tài)圖用狀態(tài)機設計的巴克碼檢測器總設計程序如下所示:libraryieee;useieee.std_logic_1164。all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.a(chǎn)ll;entitycreateisport(CLR:instd_logic;CLK_1S:instd_logic;SIG_OUT:outstd_logic;CODE:instd_logic_vector(6downto0));endentity;architecturebehaveofcreateistypestatesis(st0,st1,st2,st3,st4,st5,st6,st7);signalcurrent_state:states;beginprocess(CLK_1S,CLR,CODE)beginifCLR=’0'thencurrent_state<=st0;SIG_OUT〈='0';elsifrising_edge(CLK_1S)thencasecurrent_stateiswhenst0=〉SIG_OUT<=CODE(0);current_state<=st1;whenst1=〉SIG_OUT<=CODE(1);current_state〈=st2;whenst2=〉SIG_OUT<=CODE(2);current_state<=st3;whenst3=>SIG_OUT<=CODE(3);current_state<=st4;whenst4=>SIG_OUT<=CODE(4);current_state〈=st5;whenst5=〉SIG_OUT<=CODE(5);current_stat(yī)e〈=st6;whenst6=>SIG_OUT<=CODE(6);current_state〈=st7;whenst7=>SIG_OUT〈=’0';current_state<=st0;whenothers=〉current_state<=st0;endcase;endif;endprocess;endbehave;本次課程設計所用的頻率是由實驗箱pin16提供20M的頻率,但我們實際中不會用到那么高的頻率,因此我們需要一個分頻器將此20M的頻率分頻到我們所需的頻率,分頻器原程序如下所示:libraryieee;useieee.std_logic_1164。all;useieee.std_logic_unsigned。all;useieee.std_logic_arith。all;entitydivisport(CLK_IN:instd_logic;CLK_OUT:bufferstd_logic;DIV_TIME:instd_logic_vector(15downto0));endentity;architecturebehaveofdivissignaldata1:integerrange0to10000000;signaldata2:integerrange0to10000000;beginprocess(CLK_IN,DIV_TIME)beginifrising_edge(CLK_IN)thenifdata1=DIV_TIMEthendata1〈=0;ifdata2=1000thendat(yī)a2〈=0;CLK_OUT<=notCLK_OUT;elsedat(yī)a2<=data2+1;endif;elsedata1<=data1+1;endif;endif;endprocess;endbehave;6編譯與仿真6。1程序編譯按要求安裝好QuartersⅡ,打開已安裝好的軟件并新建一個工程圖6。1新建工程完成后選擇芯片,由于本次設計要求用到EP1C3T144C8芯片,因此如圖5.2中選擇該芯片.圖6.2選擇芯片由于本次設計要用到多種模塊,應此要考慮元件例化或畫連接圖,為了編程簡單我們選擇畫連接圖,如圖所示在新建文檔里選擇“BlockDiagram/SchematicFile”進入畫圖界面,如圖6.3所示:圖6.3畫圖界面課程設計總程序如下所示:libraryieee;useieee.std_logic_1164。all;useieee.std_logic_arith。all;useieee。std_logic_unsigned.all;entitydesignisport(CLK:instd_logic;KEY_CLR:instd_logic;KEY_IN:instd_logic_vector(6downto0);BELL:outstd_logic;LED:outstd_logic;LED_7:outstd_logic_vector(6downto0));endentity;architecturebehaveofdesigniscomponentdivisport(CLK_IN:instd_logic;CLK_OUT:bufferstd_logic;DIV_TIME:instd_logic_vector(15downto0));endcomponent;componentcreateisport(CLR:instd_logic;CLK_1S:instd_logic;SIG_OUT:outstd_logic;CODE:instd_logic_vector(6downto0));endcomponent;typestatesis(st0,st1,st2,st3,st4,st5,st6,st7);signalcurrent_state:states;signalclk_1s:std_logic;signalclk_1k:std_logic;signalcode_in:std_logic;signalBELL1:std_logic;beginprocess(clk_1s,KEY_CLR)beginifKEY_CLR=’0'thencurrent_state〈=st0;LED〈=’0’;LED_7<=(others=〉'0');BELL1〈=’0';elseLED〈=clk_1s;ifrising_edge(clk_1s)thencasecurrent_stateiswhenst0=>ifcode_in='1'thencurrent_stat(yī)e<=st1;elsecurrent_state<=st0;endif;LED_7(0)<=code_in;BELL1〈='0’;whenst1=>ifcode_in='1'thencurrent_state<=st2;elsecurrent_state〈=st0;endif;LED_7(1)〈=code_in;whenst2=>ifcode_in='1'thencurrent_state〈=st3;elsecurrent_state<=st0;endif;LED_7(2)<=code_in;whenst3=〉ifcode_in=’0'thencurrent_state〈=st4;elsecurrent_stat(yī)e<=st3;endif;LED_7(3)<=code_in;whenst4=>ifcode_in='0’thencurrent_state<=st5;elsecurrent_state〈=st1;endif;LED_7(4)〈=code_in;whenst5=〉ifcode_in='1'thencurrent_stat(yī)e<=st6;elsecurrent_state<=st0;endif;LED_7(5)<=code_in;whenst6=〉ifcode_in='0'thencurrent_state<=st7;elsecurrent_stat(yī)e〈=st2;endif;LED_7(6)<=code_in;whenst7=〉current_state<=st0;BELL1<=’1’;whenothers=>current_state〈=st0;endcase;endif;endif;endprocess;process(BELL1)beginifBELL1='1’thenBELL〈=clk_1k;elseBELL<=’0';endif;endprocess;DIV1:divportmap(CLK_IN=>CLK,CLK_OUT=>clk_1s,DIV_TIME=>"10000");DIV2:divportmap(CLK_IN=〉CLK,CLK_OUT=〉clk_1k,DIV_TIME=>”01010");CREATE1:createportmap(CLR=>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論