Языки описания аппаратуры

языки описания аппаратуры и технология проектирования процессоров

You: тема разговора - языки описания аппаратуры

Losh@dka: Как только вы разберетесь с одним, при необходимости вы сможете быстро усвоить другой. В последующих главах показана аппаратура и в схематическом виде и в форме HDL-модели. Если вы предпочтете пропустить эту главу и не изучать языки описания цифровой аппаратуры, вы тем не менее сможете постичь принципы архитектуры микропроцессоров на уровне схем. Однако, подавляющее большинство коммерческих систем сейчас строится с использованием языков описания цифровой аппаратуры, а не на уровне схемотехники. Если вы когда-либо в вашей карьере собираетесь заниматься разработкой цифровых схем, мы настоятельно рекомендуем вам выучить один из языков описания аппаратуры.

You: язык Verilog описания схем

Losh@dka: Пример 4. 31 АВТОМАТ МУРА ДЛЯ РАСПОЗНАВАНИЯ ПАТТЕРНА

SystemVerilog module patternMoore(input logic clk, input logic reset, input logic a, output logic y);

typedef enum logic [1:0] {S0, S1, S2} statetype;

statetype state, nextstate; // state register always_ff

@(posedge clk, posedge reset)

if (reset) state <= S0;

else state <= nextstate; // next state logic always_comb

case (state)

S0: if (a) nextstate = S0; else nextstate = S1;

S1: if (a) nextstate = S2; else nextstate = S1;

S2: if (a) nextstate = S0; else nextstate = S1;

default: nextstate = S0;

endcase

output logic assign y = (state = = S2);

endmodule

Заметьте, что неблокирующие присваивания (<=) используются в регистре состояния для описания последовательной логики, а для комбинационной логики следующего состояния используются блокирующие присваивания (=).

VHDL library IEEE;

use IEEE. STD_LOGIC_1164. all;

entity patternMoore is port(clk, reset: in STD_LOGIC; a: in STD_LOGIC; y: out STD_LOGIC); end;

architecture synth of patternMoore is type statetype is (S0, S1, S2);

signal state, nextstate: statetype;

begin

–– state register process(clk, reset)

begin

if reset then state <= S0;

elsif rising_edge(clk) then state <= nextstate;

end if;

end process;

–– next state logic process(all)

begin

case state is when S0 => if a then nextstate <= S0;

else nextstate <= S1; end if;

when S1 => if a then nextstate <= S2; else nextstate <= S1; end if;

when S2 => if a then nextstate <= S0; else nextstate <= S1; end if;

when others => nextstate <= S0;

end case;

end process;

––output logic

y <= ‘1’

when state = S2 else ‘0’;

end;

You: как схема на языках Verilog VHDL компилируется в кремний на транзисторах

Losh@dka: Компилятор – это программа, которая переводит текст, написанный на языке высокого уровня в его низкоуровневое представление: язык ассемблера или машинный код. Иначе говоря, компилятор читает файл с программой на языке Си и преобразует его в файл с исполняемым кодом. Существует огромное количество литературы по компиляторам, поэтому здесь мы ограничимся только кратким введением. Работу компилятора можно разбить на несколько шагов: (1) препроцессирование, в ходе которого в программу включаются объявления из библиотек и выполняется подстановка макросов; (2) удаление всей неиспользуемой для генерации кода информации, как например, комментарии; (3) перевод операторов языка высокого уровня в соответствующие им наборы машинных команд; (4) сборка всех файлов с машинными командами, а также библиотечными функциями, в единый исполняемый файл. Каждый процессор использует свой набор команд, поэтому программу необходимо скомпилировать именно для того процессора, на котором она будет выполняться.

«Фундамент», с которого начинается построение полевых МОП-транзисторов, – это тонкая круглая кремневая пластина (wafer) приблизительно от 15 см до 30 см в диаметре, в русскоязычной литературе называемая подложкой, вафлей или вэйфером. Производственный процесс начинается с пустой подложки. Этот процесс включает заранее определенную последовательность операций, в ходе которой примеси имплантируются в кремний, на подложке выращиваются тонкие пленки кремния и диоксида кремния и наносится слой металла. После каждой операции на подложку в качестве маски наносится определенный рисунок (pattern), чтобы наносимый в ходе следующей операции материал оставался лишь в тех местах, где он необходим. Поскольку размеры одного транзистора – это доли микрона, а вся подложка обрабатывается в ходе одного производственного процесса, когда одновременно производятся миллиарды транзисторов, себестоимость одного транзистора существенно снижается. ;-{

29 схематически показано сечение каждого из этих двух типов транзисторов так, как будто мы распилили кристалл и теперь смотрим на транзистор сбоку. В транзисторах n-типа, называемых n-МОП, области, где расположены полупроводниковые примеси n-типа – в свою очередь называемые истоком (source) и стоком (drain) – находятся рядом с затвором (gate), причем вся эта структура размещается на подложке p-типа. В транзисторах же p-МОП и исток, и сток – это области p-типа, размещенные на подложке n-типа. Полевой МОП-транзистор ведет себя как переключатель, управляемый приложенным к нему напряжением. В таком транзисторе напряжение перехода создает электрическое поле, включающее или выключающее линию связи между источником и стоком. :-E

Транзистор – это переключатель с двумя положениями «включить» и «выключить», контролируемый путем подачи напряжения или тока на управляющую клемму. Существуют два основных типа транзисторов – биполярные транзисторы (bipolar junction transistors) и МОП-транзисторы – металл-оксид-полупроводник- транзисторы (иногда говорят полевые транзисторы – metal-oxide-semiconductor field effect transistors, или MOSFET). В 1958 году Джек Килби из Texas Instruments создал первую интегральную схему, состоявшую из двух транзисторов. В 1959 году Роберт Нойс, работавший тогда в Fairchild Semiconductor, запатентовал метод соединения нескольких транзисторов на одном кремниевом кристалле. В то время один транзистор стоил около 10 американских долларов. ;-}

You: то есть логические вентили строятся на транзисторах?

Losh@dka: Выбор VDD и логических уровней может быть произвольным, однако этот выбор должен обеспечить совместимость всех логических вентилей, обменивающихся данными в пределах одной цифровой системы. Поэтому вентили обычно группируются в семейства логики (logic families) таким образом, что любой элемент из одного семейства при соединении с любым другим элементом из этого же семейства автоматически обеспечивает соблюдение принципа статической дисциплины. Логические вентили одного семейства соединяются друг с другом так же легко, как и блоки конструктора Лего, поскольку они полностью совместимы по напряжению источника питания и логическим уровням. Четыре основные семейства логических вентилей доминировали с 70-х по 90-е годы прошлого века – это ТТЛ – транзисторно-транзисторная логика (Transistor-Transistor Logic, или TTL), КМОП – логика, построенная на комплементарной структуре металл-оксид- полупроводник (Complementary Metal-Oxide-Semiconductor Logic, или CMOS), НТТЛ – низковольтная транзисторно-транзисторная логика (Low-Voltage Transistor-Transistor Logic, или LVTTL) и НКМОП низковольтная логика на комплементарной структуре металл- оксид-полупроводник (Low-Voltage Complementary Metal-Oxide- Semiconductor Logic, или LVCMOS). Логические уровни для всех этих семейств представлены в Табл.

При использовании псевдо n-МОП-логики (pseudo-nMOS logic), или просто псевдо-логики, медленный стек из p-МОП-транзисторов заменяют одним «слабым» p-МОП-транзистором, который всегда находится во включенном состоянии. Такой транзистор часто называют слабым подтягивающим транзистором (weak pull-up). Физические параметры p-МОП-транзистора подбираются таким образом, что этот транзистор до высокого логического уровня (1) выход Y «подтягивает слабо» – то есть только в том случае, когда все n-МОП-транзисторы выключены. Но если при этом хотя бы один из n-МОП-транзисторов включается, то он, превосходя по мощности слабый подтягивающий транзистор, «перетягивает» выход Y настолько близко к напряжению земли GND, что на выходе получается логический 0.

You: Спасибо за интервью, Losh@dka!

программа усиления компьютерного микрофона x100 x1000

Программа усиления компьютерного микрофона в 100 и в 1000 раз. Кликни на картинку, чтобы узнать больше!