首页 > 解决方案 > VHDL - 想要创建一个简单的分隔线

问题描述

我正在使用 Vivado 2018.2 我想做一个简单的除法器,比如输入是 153,常数是 53。所以对于 153/53,我想看到 2 和余数 47。到目前为止我的代码出错了(顺序)。

entity divider_main is
    port(
            dividend: in std_logic_vector(7 downto 0);
            remainder: out std_logic_vector(5 downto 0);    
            quotient: out std_logic_vector(2 downto 0)
         ); 
end divider_main;

architecture Behavioral of divider_main is

signal dividend_signal: signed(7 downto 0);
signal remainder_signal: std_logic_vector(5 downto 0);
signal fifty_three: signed(7 downto 0);
signal count: unsigned(2 downto 0);

begin
    dividend_signal <= signed(dividend);
    fifty_three <= "00011101";
    count <= "000";
    process(dividend, dividend_signal) is 
        begin
        if dividend_signal < fifty_three then
            remainder(5 downto 0) <= std_logic_vector(dividend_signal(5 downto 0));
            quotient <= std_logic_vector(count);
            dividend_signal <= "00000000";
            count(2 downto 0) <= "000";
        else
            count <= count + 1;
            dividend_signal <= dividend_signal - fifty_three;
            quotient(2 downto 0) <= "000";
            remainder <= "000000";
        end if;
    end process;
end Behavioral;

我是 vhdl 的新手,所以让我知道我做错了什么!

标签: vhdlvivado

解决方案


推荐阅读