Проектирование цифровых устройств с использованием ПЛИС (1055366), страница 7
Текст из файла (страница 7)
Потребность в таких линиях часто возникает при наращивании блоков ОЗУ, подключении к общим магистралям микропроцессорных устройств и т. д.Примеры описания устройств выходов с третьим состоянием:LIBRARY ieee;USE ieee.std_logic_1164.ALL;-- Синтезируемое описание простого выходного буфера (драйвера)ENTITY tristate1 ISPORT ( input, enable : IN std_logic;output : OUT std_logic) ;END tristate1 ;ARCHITECTURE single_driver OF tristate1 ISBEGINoutput <= input WHEN enable = '1' ELSE 'Z' ;END single_driver ;-- Синтезируемое описание драйвера шиныLIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY tristate2 ISPORT ( input3, input2, input1, input0: IN std_logic_vector (7DOWNTO 0);enable : IN std_logic_vector (3 DOWNTO 0);output : OUT std_logic_vector (7 DOWNTO 0) );END tristate2 ;ARCHITECTURE multiple_drivers of tristate2 ISBEGINoutput <= input3 WHEN enable(3) = '1' ELSE "ZZZZZZZZ" ;output <= input2 WHEN enable(2) = '1' ELSE "ZZZZZZZZ" ;output <= input1 WHEN enable(1) = '1' ELSE "ZZZZZZZZ" ;output <= input0 WHEN enable(0) = '1' ELSE "ZZZZZZZZ" ;END multiple_drivers;-- Синтезируемое описание шинного формирователяLIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY bidir ISPORT ( input_val, enable: IN std_logic;output_val : OUT std_logic;46bidir_port : INOUT std_logic) ;END bidir ;ARCHITECTURE tri_state OF bidir ISBEGINbidir_port <= input_val WHEN enable = '1' ELSE 'Z' ;output_val <= bidir_port;END tri_state;2.8.
Пример описания ОЗУДля описания адресной памяти с произвольным доступом целесообразно применять общепринятый шаблон, правильно распознаваемый программами синтеза и размещаемый на ПЛИС вовстроенных блоках памяти.В примере описан блок памяти, состоящий из восьми 16разрядных слов. Запись в память осуществляется с учетом сигналов разрешения байт BE:LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_arith.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY MEM_8_16_BE ISPORT (A : IN std_logic_vector(2 DOWNTO 0);BE: IN std_logic_vector(1 DOWNTO 0);WE: IN std_logic;CLK: IN std_logic;DIN: IN std_logic_vector(15 DOWNTO 0);DOUT: OUT std_logic_vector(15 DOWNTO 0));END MEM_8_16_BE;ARCHITECTURE BEHAV OF MEM_8_16_BE ISTYPE MEM_8_16 IS ARRAY (0 TO 7) OF std_logic_vector(7DOWNTO 0);SIGNAL RAM0: MEM_8_16;SIGNAL RAM1: MEM_8_16;SIGNAL D:std_logic_vector(15 DOWNTO 0);BEGINOUT0: PROCESS (CLK,WE,A,BE)47BEGINIF (CLK'EVENT AND CLK='1') THENIF ((WE = '1' OR WE = 'H') AND BE(0)='0') THENRAM0(conv_integer(unsigned(A)))(7 DOWNTO 0) <=DIN(7 DOWNTO 0);END IF;END IF;END PROCESS OUT0;DOUT(7 DOWNTO 0) <= RAM0(conv_integer(unsigned(A)))(7DOWNTO 0);OUT1: PROCESS (CLK,WE,A,BE)BEGINIF (CLK'EVENT AND CLK='1') THENIF ((WE = '1' OR WE = 'H') AND BE(1)='0') THENRAM1(conv_integer(unsigned(A)))(7 DOWNTO 0) <= DIN(15DOWNTO 8);END IF;END IF;END PROCESS OUT1;DOUT(15 DOWNTO 8) <= RAM1(conv_integer(unsigned(A)))(7DOWNTO 0);END behav;2.9.
Пример описания автоматовПри проектировании цифровых устройств часто возникает необходимость в реализации цифровых автоматов. Методологияпроектирования устройств такого типа хорошо формализована.Рассмотрим реализацию цифровых автоматов Мура и Милидля устройства управления, алгоритм работы которого показан нарис.
12. Как известно, в автоматах Мура выходной сигнал зависиттолько от текущего состояния и, в отличие от автомата Мили, независит от входного сигнала.Пример реализации устройства управления в виде автоматаМура с синхронными входами:LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;ENTITY control_unit IS48PORT(U : IN std_logic_vector ( 3 DOWNTO 1 );clk : IN std_logic;rst : IN std_logic;V : OUT std_logic_vector ( 3 DOWNTO 1 ) );Состоянияавтомата Мураs0Состоянияавтомата МилиНачало0s0U11s1V10s1U21s2V2U31s20s3V3s0КонецРис. 12. Алгоритм работы устройства управления и примеры кодирования состояний для автоматовМура и МилиARCHITECTURE moore OF control_unit ISTYPE STATE_TYPE IS (s0,s1,s2,s3);SIGNAL current_state : STATE_TYPE;BEGINclocked_proc : PROCESS (clk, rst)BEGINIF (rst = '0') THENcurrent_state <= s0;ELSIF (clk'EVENT AND clk = '1') THENCASE current_state ISWHEN s0 =>V(3 downto 1) <= (OTHERS => '0');IF (U(1)='1') THEN current_state <= s1;49ELSE current_state <= s0; END IF;WHEN s1 =>V<= "001";IF (U(2) = '1') THEN current_state <= s2;ELSE current_state <= s1; END IF;WHEN s2 =>V <= "010";IF (U(3) = '0') THEN current_state <= s3;ELSE current_state <= s0; END IF;WHEN s3 =>V <= "100";current_state <= s0;WHEN OTHERS =>current_state <= s0;END CASE;END IF;END PROCESS clocked_proc;END moore;Пример реализации устройства управления в виде автоматаМили с синхронными входами и выходами:LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;ENTITY control_unit ISPORT(U : IN std_logic_vector ( 3 DOWNTO 1 );clk : IN std_logic;rst : IN std_logic;V : OUT std_logic_vector ( 3 DOWNTO 1 ) );ARCHITECTURE mielie OF control_unit ISTYPE STATE_TYPE IS (s0,s1,s2,s3);SIGNAL current_state : STATE_TYPE;BEGINclocked_proc : PROCESS (clk, rst)BEGINIF (rst = '0') THENcurrent_state <= s0;ELSIF (clk'EVENT AND clk = '1') THENCASE current_state ISWHEN s0 =>IF (U(1)='1') THEN50V<="001";current_state <= s1;ELSIF (U(1) = '0') THENV(3 DOWNTO 1) <= (OTHERS => '0');current_state <= s0;ELSE current_state <= s0; END IF;WHEN s1 =>IF (U(2) = '1') THENV <= "010";current_state <= s2;ELSE current_state <= s1; END IF;WHEN s2 =>IF (U(3) = '1') THENV <= "000";current_state <= s0;ELSIF (U(3) = '0') THENV <= "100";current_state <= s0;ELSE current_state <= s2; END IF;WHEN OTHERS => current_state <= s0;END CASE;END IF;END PROCESS clocked_proc;END mielie;3.
СИСТЕМЫ АВТОМАТИЗИРОВАННОГОПРОЕКТИРОВАНИЯ ЦИФРОВЫХ УСТРОЙСТВС ИСПОЛЬЗОВАНИЕМ ПЛИС3.1. Процесс проектирования цифровых устройствс использованием ПЛИСПроектирование цифровых устройств представляет собой итерационный процесс, основанный на принципах функциональнойдекомпозиции. Проектирование традиционно разделяют на этапы:системный, структурно-алгоритмический, функционально-логический, конструкторско-технологический.На системном этапе весь проект разбивается на части, определяются их назначение и взаимосвязь, принимается решение о способах51реализации частей.
Решение об использовании ПЛИС, принятое насистемном этапе, позволяет выполнять конструкторско-технологическое проектирование модуля верхнего уровня параллельно с выполнением других этапов. Например, при проектировании контроллера шины принимается решение о реализации логики взаимодействия с шиной на основе ПЛИС. Это позволяет приступить кконструированию печатной платы сразу после определения номенклатуры ПЛИС и множеств входных и выходных сигналов.Проектирование устройств на основе ПЛИС выполняется сприменением специализированных САПР, в большой степени диктующих методику и средства разработки, а также элементную базу. При этом используются как визуальные средства проектирования, обладающие хорошей наглядностью, так и средствакомандного управления процессом проектирования, способствующие большей автоматизации.
Проектирование с помощью таких САПР заключается в последовательном использовании предоставляемых программных средств. В терминологии САПР такойпроцесс называется маршрутом проектирования.Структурно-алгоритмический и функционально-логическийэтапы проектирования устройств на основе ПЛИС базируются наитерационном вводе и верификации описаний параллельно функционирующих процессов, каждый из которых реализует заданныйалгоритм.Современные САПР поддерживают несколько способов описания устройства:• с использованием языков описания аппаратных средств(VHDL, Verilog, AHDL и др.) и специализированного текстовогоредактора;• схемотехнический способ описания с помощью программывизуального проектирования, позволяющей разработчику помещать на рабочую область функциональные блоки и производитьих соединение.
По окончании визуального проектирования схемапреобразуется в языковое описание;• графическое представление цифровых автоматов в специализированном редакторе, обеспечивающем преобразование полученного графического представления в языковое описание;• описание комбинационной логики с помощью таблиц истинности, карт Карно, функций алгебры логики.52Конструкторско-технологический этап проектирования устройств с использованием ПЛИС разделяется на связанные подзадачи, схожие с подзадачами, решаемыми при схемно-топологическомпроектировании на основе заказных ИС.Данный этап включает следующие подзадачи (заметим, чтоанглоязычная терминология в некотоных случаях не соответствуетустоявшейся русской терминологии) [5].• Синтез (Synthesis) — отображение схемы в базис логическихресурсов ПЛИС.
Цель синтеза — преобразование исходного схемотехнического или высокоуровневого описания устройства вописание, оптимально реализуемое на выбранной ПЛИС, а такжепригодное для дальнейшего размещения и трассировки. На стадиисинтеза и после нее используются различные методы оптимизацииописания, направленные на достижение наилучших результатов сточки зрения минимума требуемых ресурсов кристалла, максимума частоты синхросигнала, минимума потребляемой мощности.Например, на стадии синтеза принимается решение о способе кодирования состояний цифровых автоматов: кодирование One-Hotобеспечивает наибольшее быстродействие, в то время как иныеспособы (код Грея, двоичное кодирование) требуют меньших ресурсов.• Глобальное размещение (Mapping) — назначение частям схемы макрообластей ПЛИС, представляющих собой группы соседних логических блоков, макроячеек и блоков ввода/вывода.