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

步长可变加减计数器设计VHDL代码Quartus仿真

09/15 10:28
258
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-24101QK3145K.doc

共1个文件

名称:步长可变加减计数器设计VHDL代码Quartus仿真

软件:Quartus

语言:VHDL

代码功能:

步长可变加减计数器

加减步长可变,模为100,即比如步长为3,加到99后不清零 而是2;步长为3,减到0后不清零 而是97。

vhdl代码

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

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 仿真图

部分代码展示:

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;--复位,低电平复位
??????add_sub????:?IN?STD_LOGIC;--加减控制,高电平加,低电平减
??????step???????:?IN?STD_LOGIC_VECTOR(6?DOWNTO?0);--计数步进
??????count_out??:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0)--计数器输出
???);
END?counter;
ARCHITECTURE?RTL?OF?counter?IS
???
???SIGNAL?count?:?STD_LOGIC_VECTOR(6?DOWNTO?0);--定义信号
BEGIN
???PROCESS?(clk,?rst_n)
???BEGIN
??????IF?((NOT(rst_n))?=?'1')?THEN--复位,低电平复位
?????????count?<=?"0000000";
??????ELSIF?(clk'EVENT?AND?clk?=?'1')?THEN
?????????IF?(add_sub?=?'1')?THEN--加减控制,高电平加
????????????IF?((count??+?step?)?>?99?)?THEN--判断相加后大于99
???????????????count?<=?(count?+?step)?-?"1100100";--输出为相加后减去100
????????????ELSE
???????????????count?<=?count?+?step;--相加不大于99可以正常相加
????????????END?IF;
?????????ELSE--低电平减
????????????IF?(count?<?step)?THEN--判断count?<?step
???????????????count?<=?(count?+?"1100100")?-?step;--输出将计数器加上100后再减去step
????????????ELSE
???????????????count?<=?count?-?step;--count大于等于step可以直接相减
????????????END?IF;

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

  • 2-24101QK3145K.doc
    下载

相关推荐