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

基于FPGA的可变模计数器VHDL代码Quartus仿真

07/16 13:15
351
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240205091S4C3.doc

共1个文件

名称:基于FPGA的可变模计数器VHDL代码Quartus仿真

软件:Quartus

语言:VHDL

代码功能:

可变模计数器

1、可以通过按键切换为模10、模12、模24、模60计数器;

2、可以通过开关控制正计数还是倒计数(递增计数还是递减计数)。

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

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 仿真文件

6. 仿真图

整体仿真图

Key=00,sw=0,模10,递减计数

Key=01,sw=0,模12,递减计数

Key=10,sw=1,模24,递增计数

Key=11,sw=1,模60,递增计数

部分代码展示:

LIBRARY?ieee;
???USE?ieee.std_logic_1164.all;
???USE?ieee.std_logic_unsigned.all;
--可变模计数器
ENTITY?mod_counter?IS
???PORT?(
??????clk??????:?IN?STD_LOGIC;--时钟
??????reset_n??:?IN?STD_LOGIC;--复位
??????key??????:?IN?STD_LOGIC_VECTOR(1?DOWNTO?0);--按键控制4个模值
??????SW???????:?IN?STD_LOGIC;--拨码开关控制计数的方向
??????counter??:?OUT?STD_LOGIC_VECTOR(5?DOWNTO?0)--计数值
???);
END?mod_counter;
ARCHITECTURE?behaveral?OF?mod_counter?IS
???SIGNAL?mod_cnt???????:?STD_LOGIC_VECTOR(5?DOWNTO?0)?:=?"000000";
???SIGNAL?counter_temp?:?STD_LOGIC_VECTOR(5?DOWNTO?0);
BEGIN
???counter?<=?counter_temp;--输出计数值
???PROCESS?(clk,?reset_n)
???BEGIN
IF?((NOT(reset_n))?=?'1')?THEN--复位
mod_cnt?<=?"001010";--复位
??????ELSIF?(clk'EVENT?AND?clk?=?'1')?THEN
?????????CASE?key?IS--按键控制4个模值
????????????WHEN?"00"?=>
???????????????mod_cnt?<=?"001010";--模10
????????????WHEN?"01"?=>
???????????????mod_cnt?<=?"001100";--模12
????????????WHEN?"10"?=>
???????????????mod_cnt?<=?"011000";--模24
????????????WHEN?"11"?=>
???????????????mod_cnt?<=?"111100";--模60
????????????WHEN?OTHERS?=>
?????????END?CASE;
??????END?IF;
???END?PROCESS;
???
???--计数控制
???PROCESS?(clk,?reset_n)
???BEGIN
??????IF?((NOT(reset_n))?=?'1')?THEN
counter_temp?<=?"000000";--复位
??????ELSIF?(clk'EVENT?AND?clk?=?'1')?THEN

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

  • 2-240205091S4C3.doc
    下载

相关推荐