首页 > 解决方案 > VHDL 上 4 位 UP 计数器的 FSM

问题描述

嘿,我已经编写了我的 4 位计数器,但我需要一些帮助来处理这一部分。向上计数器工作正常,但我需要对我的输入进行一些更改,以使其符合我的实验室要求。

设计一个从 0 到 n 计数并遵循序列 [0, n^0+a, n^1+a, n^2+a, n^3+a, ....] 的 4 位 UP 计数器.

我假设使用 n 和 a 的两个输入向量,它们都是 2 位。我的时钟假设连接到 SW0,另外,我假设将 n 连接到 SW1-SW2,a 连接到 SW3-SW4。

我已经连接了我只需要帮助和了解如何在以下代码中实现 a 和 n 的所有内容。

正如说明所说,我不能使用乘法器或加法器。

任何帮助,将不胜感激。

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_unsigned.ALL;

entity upCounter is
    Port ( clk : in STD_LOGIC;
           reset : in STD_LOGIC;
           --n : in STD_LOGIC_VECTOR (1 downto 0);
           --a : in STD_LOGIC_VECTOR (1 downto 0);
           output : out STD_LOGIC_VECTOR (3 downto 0)
          );
end upCounter;

architecture Behavioral of upCounter is

    signal count: STD_LOGIC_VECTOR (3 downto 0);

begin

    process (clk, reset)
    begin
        if reset = '1' then
            count <= "0000";
        elsif clk'event and clk = '1' then
            count <= count + 1;
        end if;
    end process;
    
    output <= count;

end Behavioral;

标签: vhdl

解决方案


推荐阅读