Комбинационная логика с FPGA-тян

в 12:35, , рубрики: fpga, Verilog, обучение, схемотехника

Привет! С вами снова Александр и мой бессменный ассистент FPGA-тян!

Комбинационная логика с FPGA-тян - 1

Да, тема сегодняшней статьи комбинационная логика и её применение в электронике. Это такая логика, при которой состояние выхода комбинационной схемы определяет только множество входных сигналов. Изначально звучит довольно сложно, да?

Комбинационная логика с FPGA-тян - 2

Ну будет тебе, ещё чуть теории и перейдём к практике. Связь логических элементов с физическим миром осуществляется через биполярные или полевые транзисторы, как на Рисунке 1.

Рисунок 1- транзисторное представление комб. функций

Рисунок 1- транзисторное представление комб. функций
Комбинационная логика с FPGA-тян - 4

Совершенно верно, или по академически: Конъюнкция,Дизъюнкция и Инверсия (Отрицание). На основе этих трёх элементов с помощью СДНФ и СКНФ можно реализовать любую логическую комбинационную функцию. то есть это как кирпичики для строительства дома.

Комбинационная логика с FPGA-тян - 5

Ещё существуют законы Де`Моргана по преобразованию одних логических функций в другие (Рисунок 2).

Рисунок 2- законы Де`Моргана

Рисунок 2- законы Де`Моргана
Комбинационная логика с FPGA-тян - 7

Да, верно, первый элемент- инверсия. Выполняет функцию инвертирование, то есть сигнал изменяется на свою противоположность (Рисунок 3). Также, будем приводить таблицы истинности для каждого элемента.

Рисунок 3- Инверсия
Рисунок 3- Инверсия

a

~(a)

0

1

1

0

Следующий элемент – логическое И. выход будет равен логической единице только если на обоих входах единицы (Рисунок 4).

Рисунок 4- логическое И

Рисунок 4- логическое И

a

b

x

0

0

0

0

1

0

1

0

0

1

1

1

Последний элемент логического базиса – логическое ИЛИ. В противоположность И, выход истинен всегда, кроме случая, когда на обоих входах логические нули (Рисунок 5).

Рисунок 5- логическое ИЛИ

Рисунок 5- логическое ИЛИ

a

b

x

0

0

0

0

1

1

1

0

1

1

1

1

И бонусный четвёртый элемент – исключающие ИЛИ. Выход истинен только тогда, когда один из входов 0 а другой 1 (Рисунок 6).

Рисунок 6- исключающие ИЛИ

Рисунок 6- исключающие ИЛИ

a

b

x

0

0

0

0

1

1

1

0

1

1

1

0

Ну на сегодня, наверное, уже всё. Думаю, для статьи этого будет достаточно.

Комбинационная логика с FPGA-тян - 12

Ладно-ладно, давай напишем прошивку с логическим ИЛИ на FPGA.

Комбинационная логика с FPGA-тян - 13

Вот код прошивки для ПЛИС:

//FPGA -xc7a15tcsg325-1 отладочная плата - QMTECH_XC7A15T_35T_50T_CSG325

module Logic_OR(
input a,b,//sw1 и sw2
output c,d,osc
    ); 
assign c=~(a&b); 
assign d = ~c; //
assign osc =c; //выход осцилографа
endmodule

Вот файл xdc для прошивки ПЛИС:

#FPGA -xc7a15tcsg325-1 отладочная плата - QMTECH_XC7A15T_35T_50T_CSG325

set_property PACKAGE_PIN C8 [get_ports c]
set_property IOSTANDARD LVCMOS33 [get_ports c]

set_property PACKAGE_PIN A9 [get_ports osc]
set_property IOSTANDARD LVCMOS33 [get_ports osc]

set_property PACKAGE_PIN H18 [get_ports a]
set_property IOSTANDARD LVCMOS33 [get_ports a]

set_property PACKAGE_PIN H17 [get_ports b]
set_property IOSTANDARD LVCMOS33 [get_ports b]

set_property PACKAGE_PIN D8 [get_ports d]
set_property IOSTANDARD LVCMOS33 [get_ports d]

Вид отладочной платы на Рисунке 7

Рисунок 7- Отладочная плата

Рисунок 7- Отладочная плата

Изначально у нас горит светодиод D4 который является прямым выходом С. т.к. светодиоды инверсные то они работают горят по низкому уровню, то есть по нулю, значит при нулях на входе светодиод D4 горит, а на светодиод D1 подаётся инверсный сигнал, и он не светится. Но стоит нажать один из переключателей Sw1 или Sw2, как огонёк переходит с D4 на D1 (Рисунок 8).

Рисунок 8- Нажатие Sw2

Рисунок 8- Нажатие Sw2

Также отсмотрим состояние осциллографа в момент нажатия (Рисунок 9).

Рисунок 9- Перепад сигнала на осциллографе

Рисунок 9- Перепад сигнала на осциллографе
Комбинационная логика с FPGA-тян - 17

Ладно, а на этом, вынуждены с вами расстаться. До новых встреч, друзья!

Комбинационная логика с FPGA-тян - 18

Список литературных источников

1.    https://ru.wikipedia.org/wiki/Комбинационная_логика

2.    ПЛИС С XILINX. Языки описания аппаратуры VHDL/Verilog САПР, приемы проектирования (Aвтор И. Е. Тарасов)

3.    FPGA prototyping by Verilog examples (Автор PONG P.CHU)

Автор: Liarddead

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js