باید زبان vhdl رو بلد باشی .
کد:
entity alu is
port (
A,B: in std_logic_vector(7 downto 0);
cout: out std_logic;
sel: in std_logic_vector(2 downto 0);
c : out std_logic_vector(7 downto 0));
end entity alu ;
architecture main of alu is
signal s:std_logic_vector(8 downto 0);
begin
process(sel)
begin
CASE sel IS
WHEN "000" =>
c<=Not a;
WHEN "001" =>
c<=a and b;
WHEN "010" =>
c<=a or b;
WHEN "011" =>
c<=a xor b;
WHEN "100" =>
s<=(a+'0') + b;
c<=s(7 downto 0);
cout<=s(8);
WHEN "101" =>
s<=a+(not b)+1;
c<=s(7 downto 0);
cout<=s(8);
WHEN "110" =>
s<=a+1;
c<=s(7 downto 0);
cout<=s(8);
WHEN "111" =>
s<=a+"11111111";
c<=s(7 downto 0);
cout<=s(8);
when others =>
c<="00000000";
END CASE;
end process;
end main;
کد بالا یک alu رو تعریف میکنه
تو بخش entity پین ها رو تعریف میکنی و تو بخش architecture کاری که انجام میده رو مینویسی
توی گوگل یه جستجو بزن شکل BCD رو پیدا کن بعد متوجه میشی چه ورودی و چه خروجی هایی باید تعریف کنی.بعد راحت میتونی با کد VHDL بنویسیش.اگر اجباری توی استفاده از MaxPlusII نیست از QuartusII استفاده کن که بعد از MaxPlusII اومده
البته کدهای BCD فکرکنم با یه سرچ پیدا بشه
از این فایل به عنوان الگو استفاده کنید