• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

线性反馈移位寄存器(LFSR)VHDL代码

04/29 15:19
1050
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1-23102R311251G.doc

共1个文件

名称:线性反馈移位寄存器(LFSR)VHDL代码(代码在文末付费下载)

软件:ISE

语言:VHDL

代码功能:

线性反馈移位寄存器(LFSR)VHDL代码

演示视频:

FPGA代码Verilog/VHDL代码资源下载网:www.hdlcode.com

部分代码展示

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
   USE ieee.std_logic_unsigned.all;
ENTITY H17000103 IS
   PORT (
      clock         : IN STD_LOGIC;--时钟
      reset     : IN STD_LOGIC;--低电平复位
      random_num  : OUT STD_LOGIC_VECTOR(2 DOWNTO 0)--输出
   );
END H17000103;
ARCHITECTURE behave OF H17000103 IS
   
   SIGNAL ran_num  : STD_LOGIC_VECTOR(2 DOWNTO 0) := "111";
   SIGNAL feedback : STD_LOGIC;
SIGNAL shtft_times  : STD_LOGIC_VECTOR(2 DOWNTO 0) := "000";--移位次数
BEGIN
   feedback <= ((ran_num(0) XOR ran_num(2)));--反馈信号,异或再取非
   
--移位
   PROCESS (clock, reset)
   BEGIN
      IF ((NOT(reset)) = '1') THEN--复位
         ran_num <= "111";--初值
      ELSIF (clock'EVENT AND clock = '1') THEN--时钟上升沿
         ran_num <= (ran_num(1) & ran_num(0) & feedback);--左移
      END IF;
   END PROCESS;
--移位次数计数
   PROCESS (clock, reset)
   BEGIN
      IF ((NOT(reset)) = '1') THEN--复位
shtft_times<= "000";--起始0次
      ELSIF (clock'EVENT AND clock = '1') THEN--时钟上升沿
         IF(shtft_times="111")THEN--移位7次循环

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. Testbench

5. 仿真图

移位3次

移位5次

  • 1-23102R311251G.doc
    下载

相关推荐