名稱:線性反饋移位寄存器(LFSR)VHDL代碼(代碼在文末付費下載)
軟件:ISE
語言:VHDL
代碼功能:
線性反饋移位寄存器(LFSR)VHDL代碼
演示視頻:
FPGA代碼Verilog/VHDL代碼資源下載網(wǎng):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";--移位次數(shù) 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; --移位次數(shù)計數(shù) ???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次循環(huán)
設(shè)計文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. Testbench
5. 仿真圖
移位3次
移位5次
閱讀全文