名称:线性反馈移位寄存器(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次
阅读全文
758