Я немного познакомился с Verilog еще в школе, и вот, год спустя, я купил плату Basys 3 FPGA. Моя цель - изучить VHDL.
Я читал бесплатную книгу под названием «Free Range VHDL», которая очень помогает понять язык VHDL. Я также просмотрел репозитории github, содержащие код VHDL, для справки.
Меня больше всего беспокоит разница между последовательным и параллельным выполнением. Я понимаю значение этих двух слов, но все еще не могу представить, почему мы можем использовать «процесс» для комбинационной логики (то есть семисегментного декодера). Я реализовал свой семисегментный декодер как условное назначение параллельных операторов. В чем была бы разница, если бы я реализовал декодер с использованием процесса и оператора switch? Я не понимаю слова последовательное выполнение процесса, когда речь идет о комбинационной логике. Я бы понял, если бы это была последовательная машина — конечная машина.
Может кто-нибудь объяснить эту концепцию?
Вот мой код для семисегментного декодера:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity hex_display_decoder is
Port ( D: in STD_LOGIC_VECTOR (3 downto 0);
SEG_OUT : out STD_LOGIC_VECTOR (6 downto 0));
end hex_display_decoder;
architecture dataflow of hex_display_decoder is
begin
with D select
SEG_OUT <= "1000000" when "0000",
"1111001" when "0001",
"0100100" when "0010",
"0110000" when "0011",
"0011001" when "0100",
"0010010" when "0101",
"0000010" when "0110",
"1111000" when "0111",
"0000000" when "1000",
"0010000" when "1001",
"0001000" when "1010",
"0000011" when "1011",
"1000110" when "1100",
"0100001" when "1101",
"0000110" when "1110",
"0001110" when "1111",
"1111111" when others;
end dataflow;
Спасибо,
Джейк Хладик