8位序列檢測器的設計要點_第1頁
8位序列檢測器的設計要點_第2頁
8位序列檢測器的設計要點_第3頁
8位序列檢測器的設計要點_第4頁
8位序列檢測器的設計要點_第5頁
免費預覽已結(jié)束,剩余28頁可下載查看

下載本文檔

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

文檔簡介

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

2、檢測輸出正確設計符合要求。關鍵詞 : VHDL 序列檢測Quartus FPGAAbstract: Sequence detector system used for communication on the detection code disabled, or is the extraction of the desired signal, that is, once detected, the required high output signal, which in the broad field of digital communications to be transported.

3、 This paper presents a single FPGA chip with the detector pulse sequence design method, mainly on how to us e new device to replace the traditional EDA electronic design, the use of FPGA's programmability, concise and changing the design method shortens the development cycle, while allowing smal

4、ler circuit design and more powerful. The curriculum is designed to detect sequence "11010011" sequence detectors, and detector in order to describe the sequence of the design process and FPGA- based software simulation. Finally, the output of the waveform QuartusII design testing, debuggi

5、ng the hardware design has been tested and meet the requirements of the correct output.FPGAKeywords:VHDL Sequence detectionQuartus八位序列檢測器設計1.1 前言 31.1 課題設計背景3.2 . 總體方案設計52.1 方案比較5.2.2 兩種方案的論證與比較 6.3 . 單元模塊設計73.1 序列信號發(fā)生器7.3.2 序列檢測器9.3.3 計數(shù)器 1.0.3.4 頂層文件設計1.2.4 系統(tǒng)調(diào)試與驗證1.3.4.1 待測序列的輸入1.3.4.2 時序仿真1.4.4.

6、3 結(jié)果分析:1.5.5 總結(jié)與體會1.6.6 辭謝 1.7.在此次課程設計完成之際,我要向曾經(jīng)給予我?guī)椭睦蠋熀屯瑢W表示深深1. 7郭老師以其豐富的知識和經(jīng)驗指導我們的課程設計作業(yè),從他那里我學到了很多專業(yè)知識和科學的研究方法,在電路設計過程中,我多次遇到問題,郭老師每次都耐心的講解,使我可以及時改進并順利完成設計,在此謹向他表示最誠摯的敬意和謝意!1.7其次,非常感謝同組的同學在課程設計期間給予我的幫助,他們給了我更多的支持和鼓勵,讓我更加自信地投入到課程設計中,使得本次的課程設1.7計能如期完成,真的非常感謝他們。7 參考文獻1.8.1 前言1.1 課題設計背景隨著數(shù)字通信的廣泛應用,

7、可編程邏輯器件容量、功能的不斷擴大, 集成電路的設計已經(jīng)進入片上系統(tǒng)(SOC)和專用集成電路(ASIC)的時代。 由于硬件描述語言VHDL可讀性、可移植性、支持對大規(guī)模設計的分解和對已有設計的再利用等強大功能, 迅速出現(xiàn)在各種電子設計自動化(EDA)系統(tǒng)中, 先進的開發(fā)工具使整個系統(tǒng)設計調(diào)試周期大大地縮短。利用硬件描述語言( 如 VHDL)來完成對系統(tǒng)硬件功能的描述, 在 EDA工具的幫助下通過波形仿真得到時序波形, 這樣就使得對硬件的設計和修改過程軟件化, 提高了大規(guī)模系統(tǒng)設計的自動化程度。傳統(tǒng)的脈沖序列檢測器,它的實現(xiàn)方法是把一個算法轉(zhuǎn)化為一個實際數(shù)字邏輯電路的過程。在這個過程中,我們所得

8、到的結(jié)果大概一致,但是在具體設計方法和性價比上存在著一定的差異,存在電路設計復雜, 體積大 , 抗干擾能力差以及設計困難、設計周期長等缺點。而利用FPGA作為硬件電路,采用VHDL等硬件描述語言對硬件的功能進行編程, 加快了系統(tǒng)的研發(fā)進程,采用數(shù)字化的控制方式,大幅度提高了邏輯控制的精確度,實時控制效果好,實踐證明,F(xiàn)PGA芯片可以代替?zhèn)鹘y(tǒng)的復雜的電路,而且可以大比例地縮小了電路的硬件規(guī)模,提高了集成度,降低開發(fā)成本,提高系統(tǒng)的可靠性,為脈沖序列檢測器電路的設計開辟了新的天地。脈沖序列檢測器在現(xiàn)代數(shù)字通信系統(tǒng)中發(fā)揮著重要的作用,通過中小規(guī)模的數(shù)字集成電路構(gòu)成的傳統(tǒng)脈沖序列檢測器電路往往存在電路

9、設計復雜體積大、抗干擾能力差以及設計困難、設計周期長等缺點。因此脈沖序列檢測器電路的模塊化、集成化已成為發(fā)展趨勢,它不僅可以使系統(tǒng)體積減小、重量減輕且功耗降低、同時可使系統(tǒng)的可靠性大大提高。隨著電子技術的發(fā)展,特別是專用集成電路(ASIC)設計技術的日趨完善,數(shù)字化的電子自動化設計(EDA)工具給電子設計帶來了巨大變革, 尤其是硬件描述語言的出現(xiàn), 解決了傳統(tǒng)電路原理圖設計系統(tǒng)工程的諸多不便。隨著 ASIC技術、EDA技術的不斷完善和發(fā)展以及VHDL、 HDL等通用性好、移植性強的硬件描述語言的普及,F(xiàn)PGA等可編程邏輯器件必將在現(xiàn)代數(shù)字應用系統(tǒng)中得到廣泛的應用,發(fā)揮越來越重要的作用。2. 總

10、體方案設計通過查閱大量相關技術資料,并結(jié)合自己的實際知識,我們主要提出了兩種技術方2.1 方案比較2.1.1 方案一工作原理:基于FPGA的多路脈沖序列檢測器的設計方案,使用VHDL語言設計時序1011010001101010;再設計序列檢測器,檢測若檢測到信號與預置待測信號相同,則輸出 “ 1”, 否則輸出 “ 0”,系統(tǒng)框圖如圖所示:序列輸入模塊2.1.2 方案二工作原理:使用proteus 軟件進行仿真,先畫出原始狀態(tài)圖和狀態(tài)表,在根據(jù)狀態(tài)D 觸發(fā)器,與門,或門以及非門等元件畫出時序邏輯圖,再根據(jù)結(jié)果譯碼,最后序列檢測判斷模塊2.1計數(shù)模塊結(jié)果輸出模塊使用LED燈顯示結(jié)果。系統(tǒng)框圖如圖所

11、示:2.22.2 兩種方案的論證與比較第一種方案使用quartus 軟件進行仿真和驗證,直接輸入源代碼比較簡單方便,并且還可以檢測其他的序列,只需要修改一部分代碼就可以實現(xiàn)。方案二使用proetus 軟件進行仿真和驗證,需要先進行復雜的狀態(tài)圖分析,如果需要檢測的序列過長就會造成原理圖連接過于復雜,不易實現(xiàn)。而且一旦原理圖連接好久只能檢測一種序列,如果要檢測其他序列就要重新連圖。通過比較發(fā)現(xiàn)第一種方案明顯優(yōu)于第二種方案,因此選擇第一種方案。3. 單元模塊設計主要介紹系統(tǒng)各單元模塊的具體功能、電路結(jié)構(gòu)、工作原理、以及各個單元模塊之間的聯(lián)接關系;同時本節(jié)也會對相關電路中的參數(shù)計算、元器件選擇、以及核

12、心器件進行必要說明。3.1 序列信號發(fā)生器序列信號是指在同步脈沖作用下循環(huán)地產(chǎn)生一串周期性的二進制信號。利用狀態(tài)機設計,首先定義一個數(shù)據(jù)類型FSM_ST它的取值為st0 到 st15 的 16個狀態(tài)。REGs0s1s2s3s4s5s6s7Q10110100REGs8s9s10s11s12s13s14s15Q01101010表 3.1序列信號發(fā)生器的代碼如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SHK ISPORT (CLK,RST :IN STD_LOGIC; CO :OUT STD_LOGIC );END SHK;ARCHITECT

13、URE behav OF SHK ISTYPE FSM_ST IS (s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15);SIGNAL REG:FSM_ST;SIGNAL Q:STD_LOGIC;BEGINPROCESS(CLK,RST)BEGINIF RST ='1' THEN REG<=s0;Q<='0'ELSIF CLK'EVENT AND CLK='1' THEN西華大學課程設計說明書CASE REG ISWHEN s0=> Q<='1

14、9; REG<=s1; WHEN s1=> Q<='0'REG<=s2;WHEN s2=> Q<='1'REG<=s3; WHEN s3=> Q<='1'REG<=s4;WHEN s4=> Q<='0'REG<=s5; WHEN s5=> Q<='1'REG<=s6;WHEN s6=> Q<='0'REG<=s7; WHEN s7=> Q<='0'REG<

15、;=s8;WHEN s8=> Q<='0'REG<=s9; WHEN s9=> Q<='1'REG<=s10;WHEN s10=> Q<='1'REG<=s11; WHEN s11=> Q<='0'REG<=s12;WHEN s12=> Q<='1'REG<=s13; WHEN s13=> Q<='0'REG<=s14;WHEN s14=> Q<='1'REG<

16、;=s15; WHEN s15=> Q<='0'REG<=s0;WHEN OTHERS=>REG<=s0;Q<='0'END CASE;END IF;END PROCESS; CO<=Q;END behav; 轉(zhuǎn)化成可調(diào)用的元件:3.13.3波形仿真如下:西華大學課程設計說明書3.2 序列檢測器脈沖序列檢測起可用于檢測一組或多組二進制碼組成的脈沖序列信號,當序列檢測器連續(xù)接收到一組穿行二進制碼后,如果這組碼與檢測器中預先設置的碼相同,則輸出1, 否則輸出0。 由于這種檢測的關鍵在于正確碼的收到必須是連續(xù)的,這就要求檢測器

17、必須記住前一次的正確碼及正確的序列,直到連續(xù)的檢測中所收到的每一位碼都與預置數(shù)的對應碼相同。在檢測過程中,任何一位不相等將回到初始狀態(tài)重新開始檢測。序列檢測器的代碼如下:library ieee;use ieee.std_logic_1164.all;entity SCHK1 isport(datain,clk:in std_logic;t: in std_logic_vector (4 downto 0);q:out std_logic;cq: out std_logic_vector (4 downto 0);end SCHK1;architecture rt1 of SCHK1 issi

18、gnal reg:std_logic_vector(4 downto 0);beginprocess(clk)variable t1:std_logic_vector (4 downto 0);beginif clk'event and clk='1' thenreg(0)<=datain;reg(4 downto 1)<=reg(3 downto 0) ;end if;t1:=t;if reg=t1 then q<='1' ; else q<='0'波形仿真如下:3.33.4西華大學課程設計說明書cq<=r

19、eg;end if;end process;end rt1;轉(zhuǎn)化成可調(diào)用的元件:3.3 計數(shù)器利用序列檢測器產(chǎn)生的信號(1 和 0)作為計數(shù)器模塊的時鐘信號,產(chǎn)生的信號0、1 變化,形成類似的CLK信號,實現(xiàn)計數(shù)器計數(shù)。計數(shù)器的代碼如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNT ISPORT (CLK, EN,RST :IN STD_LOGIC; Q1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);西華大學課程設計說明書3.5Q2:OUT STD

20、_LOGIC_VECTOR(3 DOWNTO 0); COUT: OUT STD_LOGIC );END ENTITY COUNT;ARCHITECTURE ONE OF COUNT IS BEGINPROCESS(CLK,EN,RST)VARIABLE CQI:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINIF RST='1' THEN CQI:= (OTHERS=>'0');ELSIF CLK'EVENT AND CLK='1' THENIF EN='1' THENIF CQI<153

21、 THEN高位進位IF CQI(3 DOWNTO 0)=9 THEN CQI:=CQI +7;-ELSE CQI := CQI+1;END IF;ELSE CQI:= (OTHERS=>'0');END IF;END IF;END IF;IF CQI=153 THEN COUT<='1'ELSE COUT<='0'END IF;Q1<=CQI(3 DOWNTO 0); Q2<=CQI(7 DOWNTO 4);END PROCESS COUNT; END ARCHITECTURE ONE; 轉(zhuǎn)化成可調(diào)用的元件:西華大學

22、課程設計說明書波形仿真如下:3.63.4 頂層文件設計通過前面的準備,我們已經(jīng)得到了全部所需要的3 個模塊,即序列信號發(fā)生器、序列檢測器、計數(shù)器。在此,我們運用原理圖法來生成頂層實體。具體的實現(xiàn)方法是,將上述3 個模塊,通過我們的設計軟件,生成可以移植,調(diào)用的原理圖文件,在將其在頂層設計中直接調(diào)用即可。本次設計生成的頂層實體如下圖所示:3.7西華大學課程設計說明書4 系統(tǒng)調(diào)試與驗證4.1 待測序列的輸入輸入檢測的8 位序列“11001011”程序如下:library ieee;use ieee.std_logic_1164.all;entity SCHK1 isport(din,clk,clr

23、 : in std_logic;pre_load : in std_logic_vector(7 downto 0);ab : out std_logic_vector(3 downto 0);end SCHK1;architecture behav of SCHK1 issignal q : integer range 0 to 8;signal d : std_logic_vector(7 downto 0);beginD<=pre_load;- 置入待檢測序列process (clk, clr)beginif clr='1' then q <= 0;elsif

24、 clk'event and clk='1' thencase q iswhen 0=> if din=d(7) then q<=1;else q<=0;end if;when 1=> if din=d(6) then q<=2;else q<=0;end if;when 2=> if din=d(5) then q<=3;else q<=0;end if;when 3=> if din=d(4) then q<=4;else q<=0;end if;when 4=> if din=d(3)

25、then q<=5;else q<=0;end if;when 5=> if din=d(2) then q<=6;else q<=0;end if;when 6=> if din=d(1) then q<=7;else q<=0;end if;西華大學課程設計說明書轉(zhuǎn)化成可調(diào)用的元件:when 7=> if din=d(0) then q<=8;else q<=0;end if;when others => q<=0;end case;end if;end process;process(q)beginif q=8

26、 then ab<=1;else ab<=0;end if;end process;end behav;4.14.2 時序仿真置入待檢測序列:4.2西華大學課程設計說明書4.3 結(jié)果分析:1. 根據(jù)序列檢測器的輸出端q 可以看出,當檢測器檢測到串行信號與預置的序列信號相同時,q 則輸出“A”,沒有檢測到,q 則輸出“B”;2. 根據(jù)計數(shù)器的輸出端Q1可以看出,Q1 將序列檢測器檢測到的序列信號的數(shù)目顯示出來。3. 通過仿真結(jié)果還可以看到,輸出的波形出現(xiàn)了一些毛刺,這是因為信號在FPGA器件中通過邏輯單元連線時,一定存在延時。延時的大小不僅和連線的長短和邏輯單元的數(shù)目有關,而且也和器

27、件的制造工藝、工作環(huán)境等有關。因此,信號在器件中傳輸?shù)臅r候, 所需要的時間是不能精確估計的,當多路信號同時發(fā)生跳變的瞬間,就產(chǎn)生了“競爭冒險”。這時,往往會出現(xiàn)一些不正確的尖峰信號,這些尖峰信號就是“毛刺”。5 總結(jié)與體會經(jīng)過這次課程設計的學習,我確實學習了很多知識,真正的感受到了理論聯(lián)系實際的重要性,以及這之間莫大區(qū)別,到最后看著自己的結(jié)果心里還是感到很欣慰的。具體做了以下幾項工作:1. 查找相關資料,了解EDA技術的發(fā)展及優(yōu)點,同時詳細分析了利用可編程邏輯器件來設計脈沖序列檢測器的優(yōu)勢。2. 簡要分析了FPJA器件的特征和結(jié)構(gòu),詳細介紹了FPGA設計流程,同時詳細介紹了硬件描述語言VHDL 及其特點。3. 對序列檢測器原理進行了詳細的了解,并詳細介紹了序列信號發(fā)生器、序列檢測器

溫馨提示

  • 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

提交評論