Так как у меня нет возможности проверить это, я хотел бы спросить, компилируется ли этот фрагмент кода VHDL.
Я сделал проект в своем университете, и часть его была BCD к семисегментному дисплеюконвертер.Мне нужно было иметь четыре входа и четыре выхода (четыре цифры), но тогда у меня не было большого знания языка или опыта, и я в основном использовал один и тот же кусок кода четыре раза в одной архитектуре.
Я сейчасхочу сделать его более читабельным и «профессиональным», поэтому я решил использовать процедуру, чтобы не повторять одни и те же строки много раз.Проблема, однако, заключается в том, что у меня нет возможности проверить его.
Я искал в Интернете синтаксис процедуры и улучшил свой код на основе новых знаний.Вот как это выглядит сейчас.
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.std_logic_unsigned.all;
entity BCDto7SEGconverter is
port(
sec_j: in std_logic_vector( 3 downto 0 );
sec_d: in std_logic_vector( 3 downto 0 );
min_j: in std_logic_vector( 3 downto 0 );
min_d: in std_logic_vector( 3 downto 0 );
sec_j_7seg: out std_logic_vector( 6 downto 0 );
sec_d_7seg: out std_logic_vector( 6 downto 0 );
min_j_7seg: out std_logic_vector( 6 downto 0 );
min_d_7seg: out std_logic_vector( 6 downto 0 ) );
end BCDto7SEGconverter;
architecture convert of bcdto7SEGconverter is
begin
procedure change(
signal r_IN : in std_logic_vector( 3 downto 0 );
signal r_OUT : out std_logic_vector( 3 downto 0 )
) is
begin
case r_iN is
when "0000" => r_OUT <= "1000000";
when "0001" => r_OUT <= "1111001";
when "0010" => r_OUT <= "0100100";
when "0011" => r_OUT <= "0110000";
when "0100" => r_OUT <= "0011001";
when "0101" => r_OUT <= "0010010";
when "0110" => r_OUT <= "0000010";
when "0111" => r_OUT <= "1111000";
when "1000" => r_OUT <= "0000000";
when "1001" => r_OUT <= "0010000";
when others => r_OUT <= "1111111";
end case;
end procedure;
begin
process( sec_j, sec_d, min_j, min_d )
begin
change(sec_j,sec_j_7seg);
change(sec_d,sec_d_7seg);
change(min_j,min_j_7seg);
change(min_d,min_d_7seg);
end process;
end convert;
Я не могу скомпилировать это сам, поэтому я хотел бы знать, компилируется ли этот код или нет.