八位序列檢測器設計_第1頁
八位序列檢測器設計_第2頁
八位序列檢測器設計_第3頁
八位序列檢測器設計_第4頁
八位序列檢測器設計_第5頁
已閱讀5頁,還剩5頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、八位序列檢測器設計班級:1302012學號:姓名:郭春暉1、 設計說明使用quartus軟件進行仿真和驗證,并且還可以檢測其他的序列,只需要修改一部分代碼就可以實現。二、方案工作原理:基于FPGA的多路脈沖序列檢測器的設計方案,使用VHDL語言設計時序邏輯電路,三、單元模塊設計1、 序列信號發生器序列信號是指在同步脈沖作用下循環地產生一串周期性的二進制信號。利用狀態機設計,首先定義一個數據類型FSM_ST它的取值為st0到st15的16個狀態。REGs0s1s2s3s4s5s6s7Q10110100REGs8s9s10s11s12s13s14s15Q01101010序列信號發生器的代碼如下:L

2、IBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SHK IS PORT (CLK,RST :IN STD_LOGIC; CO :OUT STD_LOGIC );END SHK;ARCHITECTURE 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 R

3、EG<=s0;Q<='0' ELSIF CLK'EVENT AND CLK='1' THENCASE REG IS WHEN s0=> Q<='1' 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

4、=> Q<='1'REG<=s6;WHEN s6=> Q<='0'REG<=s7; WHEN s7=> Q<='0'REG<=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=&g

5、t; Q<='1'REG<=s13; WHEN s13=> Q<='0'REG<=s14;WHEN s14=> Q<='1'REG<=s15; WHEN s15=> Q<='0'REG<=s0;WHEN OTHERS=>REG<=s0;Q<='0' END CASE; END IF; END PROCESS; CO<=Q; END behav;轉化成可調用的元件: 波形仿真如下:2、序列檢測器脈沖序列檢測起可用于檢測一組或多組

6、二進制碼組成的脈沖序列信號,當序列檢測器連續接收到一組穿行二進制碼后,如果這組碼與檢測器中預先設置的碼相同,則輸出1,否則輸出0。由于這種檢測的關鍵在于正確碼的收到必須是連續的,這就要求檢測器必須記住前一次的正確碼及正確的序列,直到連續的檢測中所收到的每一位碼都與預置數的對應碼相同。在檢測過程中,任何一位不相等將回到初始狀態重新開始檢測。序列檢測器的代碼如下:library ieee;use ieee.std_logic_1164.all;entity SCHK1 isport(datain,clk:in std_logic;t: in std_logic_vector (4 downto 0

7、);q:out std_logic;cq: out std_logic_vector (4 downto 0);end SCHK1;architecture rt1 of SCHK1 issignal 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

8、;t1:=t; if reg=t1 then q<='1' ; else q<='0' cq<=reg; end if; end process;end rt1;可調用的元件:圖3.3波形仿真如下:3、計數器利用序列檢測器產生的信號(1和0)作為計數器模塊的時鐘信號,產生的信號0、1變化,形成類似的CLK信號,實現計數器計數。計數器的代碼如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNT IS PORT (CLK, EN

9、,RST :IN STD_LOGIC; Q1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);Q2:OUT STD_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); BEGIN IF RST='1' THEN CQI:= (OTHERS=>'0'); ELSIF CLK

10、'EVENT AND CLK='1' THEN IF EN='1' THEN IF CQI<153 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; 可調用的元件:波形仿真如下:4、 頂層文件設計通過前面的準備,我們得到了3個模塊,即序列信號發生器、序列檢測器、計數器。在此,我們運用原理圖法來生成頂層實體。即將上述3個模塊,通過我們的設計軟件,生成可以移植,調用的原理圖文件,在將其在頂層設計中直接調用即可。本次設計生成的頂層實體如下圖所示:四 波形仿真與驗證 1、 時序仿真置入待檢測序列:仿真結果:2、管腳連接Node NameLocation1count3PIN_J22count2PIN_

溫馨提示

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

評論

0/150

提交評論