工学
ディジタル回路のVHDLについての質問です。 回路図(画像)を参考に、除算器のVHDL記述を完成させなさい。という問題です。 コードは以下の通りです。 -- Divider Circuit for Lab 3 (AIT EV Digital Circuit 2 / 2024 Fall) -- Complete the architecture of the circuit. library IEEE; use IEEE.std_logic_1164.ALL; entity div3 is port ( A, B : in std_logic_vector(2 downto 0); Q, R : out std_logic_vector(2 downto 0)); end div3; architecture combin of div3 is component trysub3 is port ( A, B : in std_logic_vector(2 downto 0); Q : out std_logic; R : out std_logic_vector(2 downto 0)); end component; signal AX0, AX1, AX2, RX1, RX2 : std_logic_vector(2 downto 0); begin -- ヒント: AX2, AX1, AX0 は宣言されているが値が定義されていない -- add your code below -- -- end of your code -- -- A B S R ts2 : trysub3 port map (AX2, B, Q(2), RX2); ts1 : trysub3 port map (AX1, B, Q(1), RX1); ts0 : trysub3 port map (AX0, B, Q(0), R); -- 参考: Q, R, RX1, RX2 の値は ↑ trysub3 の出力によって決まる end combin; add your code below からend of your codeまでの所にコードを書かなければなりません。 AX2 <= A; AX1 <= RX2; AX0 <= RX1; と書いて実行したのですが、商(Q)の値がおかしくなってしまいました。(1÷1=4余り0など) なお他のコードで process(A,B) begin if (A >= B) then Q <= '1'; R <= A - B; else Q <= '0'; R <= A; end if; end process; と定義しています。 コードの改善点を教えていただけると幸いです。