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

异步清零同步使能计数器设计VHDL代码Quartus仿真

08/22 09:22
467
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240913153050636.doc

共1个文件

名称:异步清零同步使能计数器设计VHDL代码Quartus仿真

软件:Quartus

语言:VHDL

代码功能:

异步清零同步使能计数器数码管显示

1、计数器为9位

2、异步清零,同步使能

3、数码管显示计数值

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

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. 仿真图

部分代码展示:

LIBRARY?ieee;
???USE?ieee.std_logic_1164.all;
???USE?ieee.std_logic_unsigned.all;
--异步清零,同步使能计数器
ENTITY?counter?IS
???PORT?(
??????clk???????:?IN?STD_LOGIC;--时钟
??????rst_n?????:?IN?STD_LOGIC;--复位
??????enable_p??:?IN?STD_LOGIC;--使能
??????count?????:?OUT?STD_LOGIC_VECTOR(9?DOWNTO?0);--计数器输出
??????c_out?????:?OUT?STD_LOGIC;--进位
??HEX0?????:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0);--数码管0
??HEX1?????:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0);--数码管1
??HEX2?????:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0)?--数码管2
???);
END?counter;
ARCHITECTURE?behave?OF?counter?IS
???SIGNAL?cnt?:?STD_LOGIC_VECTOR(9?DOWNTO?0);
BEGIN
???PROCESS?(clk,?rst_n)
???BEGIN
??????IF?(rst_n?=?'0')?THEN
?????????cnt?<=?"0000000000";--异步清零
?????????c_out?<=?'0';
??????ELSIF?(clk'EVENT?AND?clk?=?'1')?THEN
?????????IF?(enable_p?=?'1')?THEN--同步使能
????????????IF?(cnt?=?"1111111111")?THEN--计数到最大
???????????????cnt?<=?"0000000000";
???????????????c_out?<=?'1';--进位
????????????ELSE
???????????????cnt?<=?cnt?+?"0000000001";--计数
???????????????c_out?<=?'0';
????????????END?IF;
?????????ELSE--不使能,不计数
????????????cnt?<=?cnt;
????????????c_out?<=?'0';
?????????END?IF;
??????END?IF;
???END?PROCESS;
???
???--输出
???count?<=?cnt;
???
????process(cnt)
????begin?
??????case?cnt(3?downto?0)?is
?when?"0000"?=>?HEX0<="1000000";---?Display?"0"
?when?"0001"?=>?HEX0<="1111001";---?Display?"1"
?when?"0010"?=>?HEX0<="0100100";---?Display?"2"
?when?"0011"?=>?HEX0<="0110000";---?Display?"3"
?when?"0100"?=>?HEX0<="0011001";---?Display?"4"
?when?"0101"?=>?HEX0<="0010010";---?Display?"5"
?when?"0110"?=>?HEX0<="0000010";---?Display?"6"
?when?"0111"?=>?HEX0<="1111000";---?Display?"7"
?when?"1000"?=>?HEX0<="0000000";---?Display?"8"
?when?"1001"?=>?HEX0<="0010000";---?Display?"9"
?when?"1010"?=>?HEX0<="0001000";---?Display?"A"
?when?"1011"?=>?HEX0<="0000011";---?Display?"B"
?when?"1100"?=>?HEX0<="1000110";---?Display?"C"
?when?"1101"?=>?HEX0<="0100001";---?Display?"D"
?when?"1110"?=>?HEX0<="0000110";---?Display?"E"
?when?"1111"?=>?HEX0<="0001110";---?Display?"F"
?when?others?=>?NULL;
??????end?case;
????end?process;

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1078

  • 2-240913153050636.doc
    下载

相关推荐