名称:同步序列发生器设计VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
同步序列发生器
1、根据预定义的序列(01010111,可自定义),串行输出序列
2、根据计数器,按顺序依次输出串行序列
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1.工程文件
2.程序文件
3.管脚分配
4.仿真测试文件
5.仿真图
输出为程序里预定义的序列01010111
部分代码展示:
LIBRARY?ieee; ???USE?ieee.std_logic_1164.all; ???USE?ieee.std_logic_unsigned.all; ENTITY?Synchronous_sequence_lys?IS ???PORT?( ??????clk_lys????????????:?IN?STD_LOGIC;--输入50M ??????reset_n_lys????????:?IN?STD_LOGIC;--低电平复位 ??????Sync_sequence_lys??:?OUT?STD_LOGIC--同步序列输出 ???); END?Synchronous_sequence_lys; ARCHITECTURE?trans?OF?Synchronous_sequence_lys?IS ??--定义变量? ???SIGNAL?pre_sequence_lys??????:?STD_LOGIC_VECTOR(7?DOWNTO?0)?:=?"00000000"; ??? ???SIGNAL?sequence_count_lys????:?STD_LOGIC_VECTOR(2?DOWNTO?0)?:=?"000"; ??? ???SIGNAL?Sync_sequence_lys_out?:?STD_LOGIC?:=?'0'; BEGIN ???PROCESS?(clk_lys) ???BEGIN ??????IF?(clk_lys'EVENT?AND?clk_lys?=?'1')?THEN ?????????IF?(reset_n_lys?=?'0')?THEN ????????????pre_sequence_lys?<=?"01010111";--预定义的序列,可修改为任意所需序列(8位) ?????????END?IF; ??????END?IF; ???END?PROCESS; ??? ???PROCESS?(clk_lys) ???BEGIN ??????IF?(clk_lys'EVENT?AND?clk_lys?=?'1')?THEN ?????????IF?(reset_n_lys?=?'0')?THEN ????????????sequence_count_lys?<=?"000"; ?????????ELSE ????????????sequence_count_lys?<=?sequence_count_lys?+?"001";--计数0~7,共8位 ?????????END?IF; ??????END?IF; ???END?PROCESS; ??? ???PROCESS?(clk_lys) ???BEGIN ??????IF?(clk_lys'EVENT?AND?clk_lys?=?'1')?THEN--同步时钟 ?????????CASE?sequence_count_lys?IS--根据计数值,按顺序输出序列 ????????????WHEN?"000"?=> ???????????????Sync_sequence_lys_out?<=?pre_sequence_lys(7);--第7位 ????????????WHEN?"001"?=> ???????????????Sync_sequence_lys_out?<=?pre_sequence_lys(6);--第6位 ????????????WHEN?"010"?=> ???????????????Sync_sequence_lys_out?<=?pre_sequence_lys(5);--第5位 ????????????WHEN?"011"?=> ???????????????Sync_sequence_lys_out?<=?pre_sequence_lys(4);--第4位 ????????????WHEN?"100"?=> ???????????????Sync_sequence_lys_out?<=?pre_sequence_lys(3);--第3位 ????????????WHEN?"101"?=> ???????????????Sync_sequence_lys_out?<=?pre_sequence_lys(2);--第2位 ????????????WHEN?"110"?=> ???????????????Sync_sequence_lys_out?<=?pre_sequence_lys(1);--第1位 ????????????WHEN?"111"?=> ???????????????Sync_sequence_lys_out?<=?pre_sequence_lys(0);--第0位 ????????????WHEN?OTHERS?=> ???????????????Sync_sequence_lys_out?<=?'0'; ?????????END?CASE;
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1274
阅读全文
279