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

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

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

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
    下载

相关推荐