8位序列檢測器的設計_第1頁
8位序列檢測器的設計_第2頁
8位序列檢測器的設計_第3頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、八位序列檢測器設計摘要:序列檢測器多用于通信系統(tǒng)中對禁用碼的檢測,或者是對所需信號的提取,即一旦檢測到所需信號就輸出高電平,這在數(shù)字通信領域有廣泛的應運。本文介紹了一種采用單片PGA芯片進展脈沖序列檢測器的設計方法,主要闡述如何使用新興的EDA器件取代傳統(tǒng)的電子設計方法,利用FPGA的可編程性,簡潔而乂多變的設計方法,縮短了研發(fā)周期,同時使設計的電路體積更小功能更強大。本次課程設計設計出能夠檢測序列“11010011”的序列檢測器,并以此來描述序列檢測器的設計過程和基于FPGA的軟件仿真。最后通過QuartusII的波形輸出對設計方案進展檢測,在硬件調試經檢測輸出正確設計符合要求。關鍵詞:VH

2、DL序列檢測QuartusUFPGAAbstract:Sequencedetectorsystemusedformunicationonthedetectioncodedisabled,oristheextractionofthedesiredsignal,thatis,oncedetected,therequiredhighoutputsignal,whichinthebroadfieldofdigitalmunicationstobetransported.ThispaperpresentsasingleFPGAchipwiththedetectorpulsesequencedesignm

3、ethod,mainlyonhowtousenewdevicetoreplacethetraditionalEDAelectronicdesign,theuseofFPGA'sprogrammability,conciseandchangingthedesignmethodshortensthedevelopmentcycle,whileallowingsmallercircuitdesignandmorepowerful.Thecurriculumisdesignedtodetectsequence"11010011"sequencedetectors,andde

4、tectorinordertodescribethesequenceofthedesignprocessandFPGA-basedsoftwaresimulation.Finally,theoutputofthewaveformQuartusIIdesigntesting,debuggingthehardwaredesignhasbeentestedandmeettherequirementsofthecorrectoutput.FPGAKeywords:VHDLSequencedetectionQuartusU目錄2. 1前言11.1課題設計背景1總體方案設計22.1方案比擬23. 2.2兩

5、種方案的論證與比擬3單元模塊設計43.1序列信號發(fā)生器43.2序列檢測器63.3計數(shù)器73.4頂層文件設計84系統(tǒng)調試與驗證94.1待測序列的輸入94.2時序仿真114.3結果分析125總結與體會136辭147參考文獻151前言1.1課題設計背景隨著數(shù)字通信的廣泛應用,可編程邏輯器件容量、功能的不斷擴大,集成電路的設計已經進入片上系統(tǒng)(SOC卿專用集成電路(ASIC*勺時代。由于硬件描述語言VHDL可讀性、可移植性、支持對大規(guī)模設計的分解和對已有設計的再利用等強大功能,迅速出現(xiàn)在各種電子設計自動化(EDA海統(tǒng)中,先進的開發(fā)工具使整個系統(tǒng)設計調試周期大縮短。利用硬件描述語言(如VHDL床完成對系

6、統(tǒng)硬件功能的描述,在EDA工具的幫助下通過波形仿真得到時序波形,這樣就使得對硬件的設計和修改正程軟件化,提高了大規(guī)模系統(tǒng)設計的自動化程度。傳統(tǒng)的脈沖序列檢測器,它的實現(xiàn)方法是把一個算法轉化為一個實際數(shù)字邏輯電路的過程。在這個過程中,我們所得到的結果大概一致,但是在具體設計方法和性價比上存在著一定的差異,存在電路設計復雜,體積大,抗十擾能力差以及設計困難、設計周期長等缺點。而利用FPGA乍為硬件電路,采用VHDL等硬件描述語言對硬件的功能進展編程,加快了系統(tǒng)的研發(fā)進程,采用數(shù)字化的控制方式,大幅度提高了邏輯控制的準確度,實時控制效果好,實踐證明,F(xiàn)PGA芯片可以代替?zhèn)鹘y(tǒng)的復雜的電路,而且可以大比

7、例地縮小了電路的硬件規(guī)模,提高了集成度,降低開發(fā)本錢,提高系統(tǒng)的可靠性,為脈沖序列檢測器電路的設計開辟了新的天地。脈沖序列檢測器在現(xiàn)代數(shù)字通信系統(tǒng)中發(fā)揮著重要的作用,通過中小規(guī)模的數(shù)字集成電路構成的傳統(tǒng)脈沖序列檢測器電路往往存在電路設計復雜體積大、抗十擾能力差以及設計困難、設計周期長等缺點。因此脈沖序列檢測器電路的模塊化、集成化已成為開展趨勢,它不僅可以使系統(tǒng)體積減小、重量減輕且功耗降低、同時可使系統(tǒng)的可靠性大大提高。隨著電子技術的開展,特別是專用集成電路(ASIC段計技術的日趨完善,數(shù)字化的電子自動化設計(EDA區(qū)具給電子設計帶來了巨大變革,尤其是硬件描述語言的出現(xiàn),解決了傳統(tǒng)電路原理圖設計

8、系統(tǒng)工程的諸多不便。隨著ASIC技術、EDA技術的不斷完善和開展以及VHDLHDL等通用性好、移植性強的硬件描述語言的普及,F(xiàn)PGA可編程邏輯器件必將在現(xiàn)代數(shù)字應用系統(tǒng)中得到廣泛的應用,發(fā)揮越來越重要的作用。2.總體方案設計通過查閱大量相關技術資料,并結合自己的實際知識,我們主要提出了兩種技術方案來實現(xiàn)系統(tǒng)功能。下面我將首先對這兩種方案的組成框圖和實現(xiàn)原理分別進展說明,并分析比擬它們的優(yōu)劣2.1方案比擬2.1.1方案一工作原理:基丁FPGA勺多路脈沖序列檢測器的設計方案,使用VHDL語言設計時序邏輯電路,先設計序列發(fā)生器產生序列:101101000110101Q再設計序列檢測器,檢測序列發(fā)生器

9、產生序列,假設檢測到信號與預置待測信號一樣,那么輸出“1”,否那么輸出“0”,并且將檢測到的信號的顯示出來。系統(tǒng)框圖如下圖:時鐘輸入模塊序列輸入模塊序列檢測判斷模塊計數(shù)模塊結果輸出模塊圖2.12.1.2萬案二工作原理:使用proteus軟件進展仿真,先畫出原始狀態(tài)圖和狀態(tài)表,在根據(jù)狀態(tài)圖使用D觸發(fā)器,與門,或門以及非門等元件畫出時序邏輯圖,再根據(jù)結果譯碼,最后使用LED燈顯示結果系統(tǒng)框圖如下圖:圖2.22.2兩種方案的論證與比擬第一種方案使用quartus軟件進展仿真和驗證,直接輸入源代碼比擬簡單方便,并且還可以檢測其他的序列,只需要修改一局部代碼就可以實現(xiàn)。方案二使用proetus軟件進展仿

10、真和驗證,需要先進展復雜的狀態(tài)圖分析,如果需要檢測的序列過長就會造成原理圖連接過丁復雜,不易實現(xiàn)。而且一旦原理圖連接好久只能檢測一種序列,如果要檢測其他序列就要重新連圖。通過比擬發(fā)現(xiàn)第一種方案明顯優(yōu)丁第二種方案,因此選擇第一種方案。3.單元模塊設計主要介紹系統(tǒng)各單元模塊的具體功能、電路構造、工作原理、以及各個單元模塊之間的聯(lián)接關系;同時本節(jié)也會對相關電路中的參數(shù)計算、元器件選擇、以及核心器件進展必要說明。3.1序列信號發(fā)生器序列信號是指在同步脈沖作用下循環(huán)地產生一申周期性的二進制信號。利用狀態(tài)機設計,首先定義一個數(shù)據(jù)類型FSM_ST它的取值為st0到st15的16個狀態(tài)。REGs0s1s2s3

11、s4s5s6s7Q10110100REGs8s9s10s11s12s13s14s15Q01101010表3.1序列信號發(fā)生器的代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYSHKISPORT(CLK,RST:INSTD_LOGIC;CO:OUTSTD_LOGIC);ENDSHK;ARCHITECTUREbehavOFSHKISTYPEFSM_STIS(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15);SIGNALREG:FSM_ST;SIGNALQ:STD_LOGIC;BEGINP

12、ROCESS(CLK,RST)BEGINIFRST='1'THENREG<=s0;Q<='0'ELSIFCLK'EVENTANDCLK='1'THENCASEREGISWHENs0=>Q<='1'REG<=s1;WHENs1=>Q<='0'REG<=s2;WHENs2=>Q<='1'REG<=s3;WHENs3=>Q<='1'REG<=s4;WHENs4=>Q<='0

13、9;REG<=s5;WHENs5=>Q<='1'REG<=s6;WHENs6=>Q<='0'REG<=s7;WHENs7=>Q<='0'REG<=s8;WHENs8=>Q<='0'REG<=s9;WHENs9=>Q<='1'REG<=s10;WHENs10=>Q<='1'REG<=s11;WHENs11=>Q<='0'REG<=s12;WHENs12=&

14、gt;Q<='1'REG<=s13;WHENs13=>Q<='0'REG<=s14;WHENs14=>Q<='1'REG<=s15;WHENs15=>Q<='0'REG<=s0;WHENOTHERS=>REG<=s0;Q<='0'ENDCASE;ENDIF;ENDPROCESS;CO<=Q;ENDbehav;轉化成可調用的元件:圖3.1vlaiteiTimeBar15.&5ns土PointinValueat1568m波

15、形仿真如下:79696nsIn誠sM78131mSumEnd:n3E0,0m640.0g96D0L/31.G«nn.nnnnnnnnnnnnnnnnnnrJ圖3.23.2序列檢測器脈沖序歹0檢測起可用丁檢測一組或多組二進制碼組成的脈沖序歹0信號,當序歹0檢測器連續(xù)接收到一組穿行二進制碼后,如果這組碼與檢測器中預先設置的碼一樣,那么輸出1,否那么輸出0。由丁這種檢測的關鍵在丁正確碼的收到必須是連續(xù)的,這就要求檢測器必須記住前一次的正確碼及正確的序列,直到連續(xù)的檢測中所收到的每一位碼都與預置數(shù)的對應碼一樣。在檢測過程中,任何一位不相等將回到初始狀態(tài)重新開場檢測。序列檢測器的代碼如下:li

16、braryieee;useieee.std_logic_1164.all;entitySCHK1isport(datain,clk:instd_logic;t:instd_logic_vector(4downto0);q:outstd_logic;cq:outstd_logic_vector(4downto0);endSCHK1;architecturert1ofSCHK1issignalreg:std_logic_vector(4downto0);beginprocess(clk)variablet1:std_logic_vector(4downto0);beginifclk'eve

17、ntandclk='1'thenreg(0)<=datain;reg(4downto1)<=reg(3downto0);endif;t1:=t;ifreg=t1thenq<='1'elseq<='0'cq<=reg;endif;endprocess;endrt1;轉化成可調用的元件:圖3.3波形仿真如下:圖3.43.3計數(shù)器0、利用序列檢測器產生的信號1和0作為計數(shù)器模塊的時鐘信號,產生的信號1變化,形成類似的CLK信號,實現(xiàn)計數(shù)器計數(shù)。計數(shù)器的代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1

18、164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCOUNTISPORT(CLK,EN,RST:INSTD_LOGI(Q1:OUTSTD_LOGIC_VECTOR(3DOWNTO0);Q2:OUTSTD_LOGIC_VECTOR(3DOWNTO0);COUT:OUTSTD_LOGICENDENTITYCOUNT;ARCHITECTUREONEOFCOUNTISBEGINPROCESS(CLK,EN,RST)VARIABLECQI:STD_LOGIC_VECTOR(7DOWNTO0);BEGINIFRST='1'THENCQI:=(OTHE

19、RS=>'0');ELSIFCLK'EVENTANDCLK='1'THENIFEN='1'THENIFCQI<153THENIFCQI(3DOWNTO0)=9THENCQI:=CQI+7;-高位進位ELSECQI:=CQI+1;ENDIF;ELSECQI:=(OTHERS=>'0');ENDIF;ENDIF;ENDIF;IFCQI=153THENCOUT<='1'ELSECOUT<='0'ENDIF;Q1<=CQI(3DOWNTO0);Q2<=CQI

20、(7DOWNTO4);ENDPROCESSCOUNT;ENDARCHITECTUREONE;轉化成可調用的元件:波形仿真如下:MasteiTimeEar;17.275ms,F(xiàn)uirler101.45nsInteivaL164.18nsStart:UTTCOENRS5亞|3±Valueat12&heB10B10D1B00000ODJps80.Jns18U.0nsZ40.0m320.0m4IJ0.0nw48U.Umiiii_i1Y."27Sdfirm口FinnnnnIIIIIIIIIIIII(I|IIIIiIIJIIIIIIIIIIItlIIIIIIIIIlIOn6圖3

21、.63.4頂層文件設計通過前面的準備,我們已經得到了全部所需要的3個模塊,即序列信號發(fā)生器、序列檢測器、計數(shù)器。在此,我們運用原理圖法來生成頂層實體。具體的實現(xiàn)方法是,將上述3個模塊,通過我們的設計軟件,生成可以移植,調用的原理圖文件,在將其在頂層設計中直接調用即可。本次設計生成的頂層實體如下列圖所示:圖3.74系統(tǒng)調試與驗證4.1待測序列的輸入輸入檢測的8位序列“11001011程序如下:libraryieee;useieee.std_logic_1164.all;entitySCHK1isport(din,clk,clr:instd_logic;pre_load:instd_logic_v

22、ector(7downto0);ab:outstd_logic_vector(3downto0);endSCHK1;architecturebehavofSCHK1issignalq:integerrange0to8;signald:std_logic_vector(7downto0);beginD<=pre_load;-置入待檢測序歹Uprocess(clk,clr)beginifclr='1'thenq<=0;elsifclk'eventandclk='1'thencaseqiswhen0=>ifdin=d(7)thenq<=

23、1;elseq<=0;endif;when1=>ifdin=d(6)thenq<=2;elseq<=0;endif;when2=>ifdin=d(5)thenq<=3;elseq<=0;endif;when3=>ifdin=d(4)thenq<=4;elseq<=0;endif;when4=>ifdin=d(3)thenq<=5;elseq<=0;endif;when5=>ifdin=d(2)thenq<=6;elseq<=0;endif;when6=>ifdin=d(1)thenq<=

24、7;elseq<=0;endif;when7=>ifdin=d(0)thenq<=8;elseq<=0;endif;whenothers=>q<=0;endcase;endif;endprocess;process(q)beginifq=8thenab<=1;elseab<=0;endif;endprocess;endbehav;轉化成可調用的元件:4.2時序仿真圖4.1置入待檢測序列:圖4.2仿真結果:圖4.34.3結果分析:1. 根據(jù)序列檢測器的輸出端q可以看出,當檢測器檢測到申行信號與預置的序列信號一樣時,q那么輸出“A",沒有檢

25、測到,q那么輸出“B”;根據(jù)計數(shù)器的輸出端Q1可以看出,Q1將序列檢測器檢測到的序列信號的數(shù)目顯示出來。通過仿真結果還可以看到,輸出的波形出現(xiàn)了一些毛刺,這是因為信號在FPGA器件過邏輯單元連線時,一定存在延時。延時的大小不僅和連線的長短和邏輯單元的數(shù)目有關,而且也和器件的制造工藝、工作環(huán)境等有關。因此,信號在器件中傳輸?shù)臅r候,所需要的時間是不能準確估計的,當多路信號同時發(fā)生跳變的瞬間,就產生了競爭冒險"。這時,往往會出現(xiàn)一些不正確的尖峰信號,這些尖峰信號就是毛刺"。5總結與體會經過這次課程設計的學習,我確實學習了很多知識,真正的感受到了理論聯(lián)系實際的重要性,以及這之間莫大區(qū)別,到最后看著自己的結果心里還是感到很欣慰的。具體做了以下幾項工作:1. 查找相關資料,了解EDA技術的開展及優(yōu)點,同時詳細分析了利用可編程邏輯器件來設計脈沖序列檢測器的優(yōu)勢。2. 簡要分析了FPJA器件的特征和構造,詳細介紹了FPGAS計流程,同時詳細介紹了硬件描述語言VHDL

溫馨提示

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

評論

0/150

提交評論