VHDL:时序逻辑电路实验-手动设置8位检测码的序列检测器
2014-05-21 12:18
399 查看
工程包下载:【时序逻辑电路实验:手动设置8位检测码的序列检测器】
功能:通过按键设置8位检测码,序列检测器收到一组串行二进制码(键盘输入)后,如果这组码与检测器设置的码相同,则输出1010,否则输出1011.
VHDL代码如下:
功能:通过按键设置8位检测码,序列检测器收到一组串行二进制码(键盘输入)后,如果这组码与检测器设置的码相同,则输出1010,否则输出1011.
VHDL代码如下:
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity kledjc is port(KBdata: in STD_LOGIC; KBCLK: in STD_LOGIC; CLKIN: in STD_LOGIC; led: out std_logic_vector(7 downto 0); rst: in std_logic; n: in std_logic_vector(7 downto 0); jgout: out std_logic_vector(3 downto 0)); end kledjc; architecture behv of kledjc is signal CLK: std_logic; signal M: std_logic_vector(9 downto 0); signal S: std_logic_vector(9 downto 0); signal NUM: std_logic_vector(7 downto 0); signal q: integer range 0 to 8; begin process(CLKIN,RST) begin if(RST='0') then CLK<='1'; elsif(CLKIN'event and CLKIN='1') then if KBCLK='0' then CLK<=KBCLK; else CLK<='1'; end if; end if; end process; process(CLK,KBdata,S) begin if(CLK'event and CLK='0') then M<=KBdata & S(9 downto 1); end if; end process; process(clk,M,S) begin if(CLK'event and CLK='1') then S<=M; end if; case S(7 downto 0) is when "00010110"=>NUM<="00000110"; when "00011110"=>NUM<="01011011"; when "00100110"=>NUM<="01001111"; when "00100101"=>NUM<="01100110"; when "00101110"=>NUM<="01101101"; when "00110110"=>NUM<="01111101"; when "00111101"=>NUM<="00000111"; when "00111110"=>NUM<="01111111"; when "01000110"=>NUM<="01101111"; when "01000101"=>NUM<="00111111"; when "00011100"=>NUM<="01110111"; when "00110010"=>NUM<="01111100"; when "00100001"=>NUM<="00111001"; when "00100011"=>NUM<="01011110"; when "00100100"=>NUM<="01111001"; when "00101011"=>NUM<="01110001"; when others=>NUM<="00000000"; end case; led<=NUM; end process; process(q) begin if s(7 downto 0)=n(7 downto 0) then jgout<="1010"; q<=1; else jgout<="1011"; q<=0; end if; end process; end Behv;
相关文章推荐
- 第一次verilog实验——序列检测器的实现
- 每天进步一点点------基础实验_12_有限状态机 :Moore型序列检测器
- WSUS服务设置中组策略刷新时间,手动刷新方法,客户端检测频率,手动检测方法
- 每天进步一点点------基础实验_13_有限状态机 :Mealy型序列检测器
- 实验四 时序逻辑电路的VHDL设计
- [数据库] Navicat for Oracle设置唯一性和递增序列实验
- WSUS服务设置中组策略刷新时间,手动刷新方法,客户端检测频率,手动检测方法
- VHDL:时序逻辑电路实验-两位16进制加减可逆计数器
- [Domino]使用DIIOP必须作的DOMINO手动设置
- 无线网络实验之三:无线网络的安全设置--WEP
- Websphere 入门基础 第九课 IBM WebSphere Studio实验以及应用开发实验的设置指导
- pl sql代码提示 手动提示设置
- 图像相似度检测之C++代码(8位--256色)
- 手动设置或改变Solaris的IP v4地址
- pl sql代码提示 手动提示设置
- 检测MDAC版本的检测器
- 无线网络实验之五:无线路由器防火墙设置 推荐
- [Domino]使用DIIOP必须作的DOMINO手动设置
- io_state 输入状态标志及检测函数、设置函数
- 如何在BIOS中设置开机检测不到键盘后不报错