VHDL - Хотите создать простой делитель - PullRequest
0 голосов
/ 04 марта 2019

Я использую 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, поэтому дайте мне знать, что я делаю неправильно!

...