Научная статья на тему 'Разработка модели ПЛИС типа ППВМ с одноуровневой структурой межсоединений в системе визуально-имитационного моделирования MATLAB/Simulink'

Разработка модели ПЛИС типа ППВМ с одноуровневой структурой межсоединений в системе визуально-имитационного моделирования MATLAB/Simulink Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
36
9
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Строгонов Андрей, Мотылев Максим, Давыдов Сергей, Быстрицкий Алексей, Цыбин Сергей

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Разработка модели ПЛИС типа ППВМ с одноуровневой структурой межсоединений в системе визуально-имитационного моделирования MATLAB/Simulink»

Андрей СТРОГОНОВ, д. т. н.

andreistrogonov@mail.ru Максим МОТЫЛЕВ polikort@rambler.ru Сергей ДАВЫДОВ sedpo4ta@gmail.com Алексей БЫСТРИЦКИЙ alexis_bystritsky@edc-electronics.ru Сергей ЦЫБИН, к. т. н.

tsybin@edc-electronics.ru

Разработка модели ПЛИС типа ППВМ с одноуровневой структурой межсоединений

в системе визуально-имитационного моделирования MATLAB/Simulink

Успехи в области создания академических ПЛИС и программных инструментов оказали существенное влияние на развитие архитектур индустриальных ПЛИС.

В академических ПЛИС для обеспечения программируемой коммутации существует две технологии соединений: multi-driver и single-driver. В настоящее время преимущество отдается технологии single-driver, так как ее использование позволяет получать существенный выигрыш по сравнению с технологией multi-driver как по быстродействию, так и по площади кристалла.

На рис. 1 показаны основные функциональные блоки ПЛИС — логический блок (ЛБ), два соединительных блока C1 и C2, маршрутизатор (S) — с одноуровневой структурой межсоединений и принцип

коммутации пар разнонаправленных межсоединений по технологии single-driver. Соединительные блоки подключают входы/выходы логического блока к горизонтальному и вертикальному трассировочному каналу. Маршрутизатор осуществляет коммутацию сигналов (межсоединений) в трассировочных каналах. Также показан наиболее распространенный способ коммутации сигналов с помощью мультиплексоров и принцип сегментации межсоединений. Подобный принцип сегментации single, Double, HEX-3, HEX-6 используется в ПЛИС серии Virtex II компании Xilinx, которые классифицируются как ПЛИС с одноуровневой структурой межсоединений. Межсоединение, по которому сигнал распространяется только в одну сторону, получило название «однонаправленное».

S и S

ЛБ =й= ЛБ ЛБ

, ц| С1 |ц ЛБ ц| С1 \z

И

L L2 L3 L6

И

Рис. 1. а) Основные функциональные блоки ПЛИС с одноуровневой структурой межсоединений;

б) коммутация двух пар разнонаправленных межсоединений в горизонтальном и вертикальном направлениях;

в) принцип коммутации разнонаправленных межсоединений с использованием мультиплексоров;

г) принцип сегментации межсоединений (через один ЛБ, через два ЛБ, через три ЛБ, через шесть ЛБ)

В качестве учебных целей разработаем модель ПЛИС типа ППВМ с одноуровневой структурой межсоединений и с использованием технологии соединений single-driver в системе MATLAB/Simulink и покажем, как можно в автоматическом режиме получить код высокоуровневого языка описания аппаратных средств (VHDL). Полученный код может быть использован для разработки функциональной модели проектируемой ПЛИС, например в САПР Quartus II. Более подробно об архитектуре академических ПЛИС можно узнать в работах [1-3].

Модель ПЛИС реализована в формате с фиксированной запятой (точкой), с использованием fi-объектов системы MATLAB/Simulink. Simulink — графическая среда визуально-имитационного моделирования аналоговых и дискретных систем, которая предоставляет пользователю графический интерфейс для конструирования моделей из стандартных функциональных блоков. Simulink работает с линейными, нелинейными, непрерывными, дискретными и многомерными системами. Система MATLAB/Simulink содержит встроенный генератор кода языка описания аппаратных средств HDL (Simulink HDL Coder). Simulink HDL Coder — программный продукт для генерации VHDL-кода без привязки к конкретной архитектуре ПЛИС и платформе по Simulink-моделям. Используем следующий формат для представления десятичных чисел:

a = fi (v, s, w, f),

где v — десятичное число; s — знак (0 (false) для чисел без знака и 1 (true) — для чисел со знаком); w — размер слова в битах (целая часть числа); f — дробная часть числа в битах. Примеры использования формата с фиксированной точкой при проектировании КИХ-фильтров можно найти в работе [4].

Формат a = fi (v, s, w, f, fimath) позволяет задать режим округления (Roundmode): floor — округление вниз; реакцию на пере-

in 0 in 1

Рис. 2. «Плитка» ПЛИС типа ППВМ с одноуровневой структурой межсоединений

полнение (OverflowMode): wrap — перенос. При выходе значения v из допустимого диапазона «лишние» старшие разряды игнори-

руются. При выполнении операций умножения ('ProductMode') и сложения ('SumMode'), для повышения точности вычислений

(precision) используется машинное слово шириной в 32 бита.

% HDL specific fimath

hdl_fm = fimath(...

'RoundMode', 'floor', ...

'OverflowMode', 'wrap', ...

'ProductMode', 'FullPrecision', 'ProductWordLength', 32, ...

'SumMode', 'FullPrecision', 'SumWordLength', 32, ...

'CastBeforeSum', true);

Массив ПЛИС разобьем на «плитки». «Плитка» — минимальная структурная единица. В плитку (верхняя левая в массиве плиток) включают ЛБ, два соединительных блока, маршрутизатор (рис. 2). На рис. 3 показан принцип коммутации межсоединений в разрабатываемой модели. L2-маршрутизатор обеспечивает длину сегмента межсоединения в два ЛБ.

По четырем сторонам маршрутизатора располагаются многовходовые мультиплексоры, в которых сегментируется только лишь одна из двух пар разнонаправленных межсоединений в горизонтальных и вертикальных направлениях. Несегментируемая пара разнонаправленных межсоединений перекручивается «косичкой» с сегментируемой парой за пределами плитки (рис. 3).

Тестирование плитки на выполнение булевой функции 4И-НЕ в системе MATLAB/ Simulink показано на рис. 4. На рис. 5 представлен нижний уровень иерархии. Для конфигурирования плитки необходимо 40 бит памяти. Конфигурационная карта памяти одной плитки ПЛИС показана в таблице 1. В таблице 2 приведен тест на выполнение булевой функции 4И-НЕ. На адресные входы мультиплексора 16 в 1 (LUT-таблица) пода-

Рис. 3. L2-маршрутизатор, коммутирующий две пары разнонаправленных межсоединений в горизонтальном и вертикальном направлениях, обеспечивая длину сегмента в два логических блока (длинная линия L = 2)

R2 doub

in convert out

in convert out

in convert out

in convert out

в EML4

¡п convert out

R EML5

in convert out

EML6

in convert out

е EML7

in convert out

е EML8

in convert out

g EML10

in convert out

EML11

B_3

T_0_V

T_2_V

L_1_H

L_3_H

in_0_lut

in_1_lut

R_2 R_0 В 1

in_3_lut_b

RJ R_3 B_2 B_0 in_2_lut_R T_1_V T_3_V L_0_H L 2 H

Subsystem

frl °l

frl

»I "I

Рис. 4. «Плитка» в системе MATLAB/Simulink. Верхний уровень иерархии

Таблица 1. Конфигурационная карта памяти одной плитки ПЛИС

Функциональный блок Конфигурационные биты (ячейки памяти) Примечание

Логический блок |

LUT-таблица SR1-SR4; SR5-SR8; SR9-SR12; SR13-SR16 In 0, In 1, In 2 l, In 3 t

Выходной мультиплексор 2 в 1 SR17 SR17 = 1 — регистерный выход; SR17 = 0 — комбинаторный выход

Соединительный блок С2

Crossbar (подключает выход ЛБ и МС L 1, R 0, L 3, R 2 к трассировочному каналу или ко входам In 3 lut t, In 3 lut b ЛБ)

Демультиплексор 1 в 4 (SR_demux) SR18-19 Выход ЛБ подключается к одному из МС R_1, 1__0, R_3, 1__2

SR_En_demux SR20 Разрешение подключения выхода ЛБ к одному из МС R_1, 1__0, R_3, 1__2

Мультиплексоры |

Мультиплексор 4 в 1 (верхний) SR21-22 (SR_mux_t) Подключает одно из МС L_1, R_0, L_3, R_2 ко входу In_3_t ЛБ

Мультиплексор 4 в 1 (нижний) SR23-24 (SR_mux_b) Подключает одно из МС L_1, R_0, L_3, R_2 ко входу In_3_b ЛБ

Маршрутизатор, S-блок I

Мультиплексор 5 в 1 (левый) SR29, 30, 31 Подключает одно из МС R 2, В 0, В 1, Т 2, В 3 к МС 1_ 2

Мультиплексор 5 в 1 (нижний) SR32, 33, 34 Подключает одно из МС Т_2, 1__1, 1__0, 1__3 к МС В_2

Мультиплексор 5 в 1 (правый) SR35, 36, 37 Подключает одно из МС 1_ 3, В 0, В 1, Т 2, В 3 к МС R 3

Мультиплексор 5 в 1 (верхний) SR38, 39, 40 Подключает одно из МС В 3, 1_ 1, 1_ 0, 1_ 3, R 2 к МС Т 3

Соединительный блок С1 |

Мультиплексор 4 в 1 (левый) SR25-26 Подключает одно из МС T_0, B_1, T_2, B_3 ко входу in_2_lut_L

Мультиплексор 4 в 1 (правый) SR27-28 Подключает одно из МС T_0, B_1, T_2, B_3 ко входу in_2_lut_R

Примечание. МС — межсоединение.

Таблица 2. Тест на выполнение булевой функции 4И-НЕ

Функциональный блок Конфигурационные биты (ячейки памяти) Примечание

1 Логический блок |

LUT-таблица SR1-SR4 = 1; SR5-SR8 = 1; SR9-SR12 = 1; SR13-SR15 = 1; SR16 = 0 При 1п_0=1,1п_1=1,1п_2_1=1, 1п_3^=1 на выходе 1е_о^ ожидаем лог. 0 Доступ к 1п_2_1 обеспечивается со входа Т_2 Доступ к 1п_3_ обеспечивается со входа 1__1

Выходной мультиплексор 2 в 1 SR17 SR17 = 1 — регистерный выход SR17 = 0 — комбинаторный выход

1 Соединительный блок С2 |

Демультиплексор 1 в 4 (SR_demux) SR18-SR19 Выход ЛБ подключаем к межсоединению R 3, при этом 1__3 = 0; SR19 = 1; SR18 = 0

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

SR_En_demux SR20 Разрешение подключения выхода ЛБ к МС R_1, 1__0, R_3, 1__2 ^20 = 1)

Мультиплексор 4 в 1 (верхний) SR21-22 (SR_mux_t) Подключает МС 1__1 ко входу In_3_t ЛБ ^22 = 0 и SR21 = 0)

Мультиплексор 4 в 1 (нижний) SR23-24 (SR_mux_b) Подключает МС 1__1 ко входу 1п_3_Ь ЛБ ^24 = 0 и SR23 = 0)

I Маршрутизатор, S-блок I

Мультиплексор 5 в 1 (левый) SR29, 30, 31 Подключает МС R_2 к МС L_2 (SR29, 30, 31 = 0)

Мультиплексор 5 в 1 (нижний) SR32, 33, 34 Подключает МС T_2 к МС B_2 (SR32, 33, 34 = 0)

Мультиплексор 5 в 1 (правый) SR35, 36, 37 Подключает МС L_3 к МС R_3 (SR35, 36, 37 = 0)

Мультиплексор 5 в 1 (верхний) SR38, 39, 40 Подключает МС B_3 к МС Т_3 (SR38, 39, 40 = 0)

1 Соединительный блок С1 |

Мультиплексор 4 в 1 (левый) SR25-26 Подключает МС T_2 ко входу in_2_lut_L (SR26 = 1 и SR25 = 0)

Мультиплексор 4 в 1 (правый) SR27-28 Подключает МС T_2 ко входу in_2_lut_R (SR28 = 1 и SR27 = 0)

ется комбинация из четырех логических единиц 1111, а на информационные входы подключаются 16 ячеек памяти с содержимым, отражающим принцип работы логического элемента 4И-НЕ (таблица истинности), при этом на выходе логического блока ожидаем «лог. 0». Остальные 24 ячейки памяти необходимы для программируемой коммутации.

На рис. 6 показан фрагмент массива конфигурационной памяти плитки. Конфигурационные биты задаются как константы типа double и сохраняются в блоках памяти. Для автоматической генерации кода языка VHDL необходимо осуществить конвертацию типа double в тип ufix (пример 1). На рис. 7 показан логический блок и два соединительных блока C1 и С2. Адресные шины мультиплексоров соединительных блоков и LUT-таблицы организуются с помощью функции объединения битов bitconcat (пример 2).

На рис. 8 показан логический блок плитки, который состоит из LUT-таблицы (мультиплексора 16 в 1), элемента памяти (триггера) и мультиплексора 2 в 1. На рис. 9 приведен соединительный блок С2, который осуществляет подключение выхода ЛБ к одному из межсоединений горизонтального трассировочного канала и подключение одного из межсоединений канала к третьему входу ЛБ LUT-таблицы (in_3_lut_t или in_3_lut_b). С помощью верхнего и нижнего мультиплексоров выход логического блока может быть подключен обратно на третий вход LUT-таблицы верхнего или нижнего логического блока.

Описание блока Crossbar на языке M-фай-лов демонстрирует пример 3. Блок Crossbar выполняет функцию демультиплексора, выходы которого объединяются с межсоединениями трассировочного канала с использованием функции bitor (ИЛИ) с разрешением

SR1 SR2 SR3 SR4 SR5 SR6 SR7 SR8 SR9 SR10 SR11 SR12 SR13 SR14 SR15 SR16 SR17 SR18 SR19 SR20 SR21 SR22 SR23 SR24 SR25 SR26 SR27 SR28 SR29 SR30 SR31 SR32 SR33 SR34 SR35 SR36 SR37 SR38 SR39 SR40

inûjut

СЮ-I Œ>

in_1_lut

Mem_config

T_0_V

Œ>

<3>

in_0_lut

inj Jut in_3_lut_b

SR_1

SR_2

SR 3

SR~4 RJ_H

SR_18

SR_19

SR_20

SR_21 R_3_H

SR_22

SR_23

SR 24

L_1_H L_0_H L_3_H R_0_H R 2 H

SR_27 L_2_H

SR_28

SR_25

SR_26

T_0_V B_0_V B_1_V T_2_V В 3 V

SR_5 T_1_V

SR_6

SR_7

SR 8

SRJ B_2_V

SR_10

SR_11

SR_12

SR_13 T_3_V

SR_14

SR_15

SR_16

SR_17 ln_2_lut_R

in 3 lut b

L 0 H

Нею

—<зю

L 2 H

a>

B_1

Gfl>

CD-

R 0

Т 2 В 2

L 3

В 3

R 2 R_3

SR 29

SR_30 SR 31 L_2

SR 32

SR_33 T 3

SR 34

SR 35

SR 36 В 0

SR 37

SR_38 SR 40 T_1

SR 39

TO В 1 R_1

L 1

R_0 L_0

—►сю

B_2

—<ю

R_3

►СЮ в_о

*Œ)

R 1

Рис. 5. Нижний уровень иерархии «плитки». Массив конфигурационной памяти (40 бит), логический блок с соединительными блоками, маршрутизатор

по выходу (En). На выходах демультиплек-сора предварительно устанавливаются нули, сигнал En = 1 разрешает подключение выхода логического блока к трассировочному каналу. Пример 4 демонстрирует автоматически сгенерированный код языка VHDL блока Crossbar, полученный с помощью Simulink HDL Coder.

1

1

1

Л

SR_2 Msmoryl

п

SR_3 Мэтогу2

п

МетогуЗ

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

П

Метогу4

П

Мвтогу5

П

SR_7 Метогуб »

п

SR_8 Метогу7

п

in convert out

convert out-►( 2 )

SR2

in convert out

in convert out

in convert out

in convert out

in convert out

in convert out

CD-

Q>

Data Type Conversion

SR_mux_R ln_2Jut_R -KJD

в 0 v

SR_mux_L B_0 -KID

T 1 V

T_0 T_1 —К 7 )

В 2 V

B_1 B_2 -►CD

T 2 V

T_2 T_3 -KJD

В 3 in 2 lut L

Œ>

SR_18

QD—

SR_22

GD-

SR 21

QD—

SR_24

QD—

SR_23

QD-

L_1_H

QD-

L_3_H

QD-

Рис. 6. Фрагмент массива конфигурационной памяти Рис. 7. Логический блок и два соединительных блока ^ и С2

о

сю-

CD—

SR_lut_e

GD—

SR lut 9

СиЗ-

SRJutJlO

GD—

GD—

SR lut_12

GD-

SR_lut_13

GD—

SR_lut_14

GD—

SR lut_15

GD—

SR_mux_le_17

Рис. 8. Логический блок «плитки» (мультиплексор 16 в 1, элемент памяти, мультиплексор)

(S-блок) и код языка VHDL мультиплексора 5 в 1, используемый в маршрутизаторе.

Пример 1. Конвертация типа double в тип ufix для генерации кода языка VHDL:

function out = convert(in) hdl_fm = fimath(... 'RoundMode', 'floor', ... 'OverflowMode', 'wrap',...

'ProductMode', 'FullPrecision', 'ProductWordLength', 32, ... 'SumMode', 'FullPrecision', 'SumWordLength', 32, ... 'CastBeforeSum', true);

out = fi(in, 0, 1, 0, hdl_fm) end

Пример 2. Создание двухразрядной шины:

function out = Concat(H, L)

hdl_fm = fimath(s

'RoundMode', 'floor', ... 'OverflowMode', 'wrap', ...

'ProductMode', 'FullPrecision', 'ProductWordLength', 32, ... 'SumMode', 'FullPrecision', 'SumWordLength', 32, . 'CastBeforeSum', true);

out = fi(bitconcat(fi(H, 0, 1, 0, hdl_fm), fi(L, 0, 1, 0, hdl_fm))); end

î_demux

Рис. 9. Соединительный блок С2

EML1 I-CD CD—1 SR mux L SR mux R

sel in1 out mux_4v1 ¡n2 in3 •»-1 L-► sel in 1 in2 mux_4v1 out in3

*-■ ■-►

4- -ь

4- -

T 0 CD- - EML2 В 0 ►CD

CD— T_2 -KD В 2

GD- В 3 CD- -K_D T 3 -KD

Рис. 10. Соединительный блок С1. Подключение межсоединения из вертикального трассировочного канала ко второму входу LUT-таблицы (т_2_1иЫ или т_2_Ш_г)

На рис. 10 показан соединительный блок С1, который осуществляет подключение межсоединения из вертикального трассировочного канала ко второму входу LUT-таблицы, левому или правому соседнему (т_2_1ш_1 или т_2_1ш_г). Пример 5 демон-

стрирует M-файл мультиплексора 4 в 1, входящего в состав соединительного блока C1. Подключение сигналов ко второму in_2_lut_l и третьему in_3_lut_t входу LUT-таблицы осуществляется с помощью элемента задержки Unit Delay. На рис. 11 показан маршрутизатор

Пример 3. M-файл блока Crossbar, входящего в состав соединительного блока C2:

function [outl, out2, out3, out4] = crossbar(sel, in, en, L_1, R_0, L_3, R_2)

hdl_fm = fimath(s

'RoundMode', 'floor', ...

'OverflowMode', 'wrap', s

'ProductMode', 'FullPrecision', 'ProductWordLength', 32, ...

'SumMode', 'FullPrecision', 'SumWordLength', 32, s

'CastBeforeSum', true);

out1_de = fi(0, 0, 1, 0, hdl_fm)

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

out2_de = fi(0, 0, 1, 0, hdl_fm)

out3_de = fi(0, 0, 1, 0, hdl_fm)

out4_de = fi(0, 0, 1, 0, hdl_fm)

if (logical(en))

switch (uint8(sel))

case 0,

out1_de = fi(in, 0, 1 0, hdl_fm);

case 1,

out2_de = fi(in, 0, 1 0, hdl_fm);

case 2,

out3_de = fi(in, 0, 1 0, hdl_fm);

case 3,

out4_de = fi(in, 0, 1 0, hdl_fm);

end

end

outl = fi(bitor(out1_de,L_1), 0, 1, 0, hdl_fm);

out2 = fi(bitor(out2_de,R_0), 0, 1, 0, hdl_fm);

out3 = fi(bitor(out3_de,L_3), 0, 1, 0, hdl_fm);

out4 = fi(bitor(out4_de,R_2), 0, 1, 0, hdl_fm);

end

Пример 4. Код языка VHDL блока Crossbar, входящего в состав соединительного блока C2:

ENTITY demux IS

PORT (

sel : IN std_logic_vector(1 DOWNTO 0);

in_rsvd : IN std_logic;

en : IN std_logic;

L_1 : IN std_logic;

R_0 : IN std_logic;

L_3 : IN std_logic;

R_2 : IN std_logic;

out1 : OUT std_logic

out2 : OUT std_logic

out3 : OUT std_logic

out4 : OUT std_logic);

END demux;

ARCHITECTURE rtl OF demux IS

BEGIN

demux : PROCESS (sel, in_rsvd, en, L_1, R_0, L_3, R_2)

VARIABLE out1_de std_logic;

VARIABLE out2_de std_logic;

VARIABLE out3_de std_logic;

VARIABLE out4_de std_logic;

VARIABLE c_uint : std_logic;

QT_O 0Т_1 Qtj

cz>

SR4

QD—

L_0

CD+-

CD-

O-

sei «—<33

CD—i

SR2 X

0B_3

-KID

R 1

-QD

R 0

-CD

R_2

8i ££ I

mux_4v1

Рис. 11. Маршрутизатор трассировочных ресурсов

Пример 6. Код языка VHDL дешифратора 5 в 1, используемого в маршрутизаторе:

LIBRARY ieee;

USE ieee.std_logic_1164.all;

USE ieee.numeric_std.all;

ENTITY EML1_block IS PORT (

sel : IN std_logic_vector(2 DOWNTO 0); in1 : IN std_logic; in2 : IN std_logic; in3 : IN std_logic; in4 : IN std_logic; in5 : IN std_logic; out_rsvd : OUT std_logic); END EML1_block;

ARCHITECTURE rtl OF EML1_block IS BEGIN

EML1_block : PROCESS (sel, inl, in2, in3, in4, in5) BEGIN

out_rsvd <= '0';

CASE sel IS

WHEN "000" =>

out_rsvd <= inl; WHEN "001" =>

out_rsvd <= in2; WHEN "010" =>

out_rsvd <= in3; WHEN "011" =>

out_rsvd <= in4; WHEN "100" =>

out_rsvd <= in5; WHEN OTHERS => NULL; END CASE;

END PROCESS EML1_block;

END rtl;

VARIABLE b_c_uint : std_logic VARIABLE c_c_uint : std_logic VARIABLE d_c_uint : std_logic

out1_de out2_de out3_de out4_de

IF en /= '0' THEN

CASE sel IS

WHEN "00" =>

out1_de := in_rsvd;

WHEN "01" =>

out2_de := in_rsvd;

WHEN "10" =>

out3_de := in_rsvd;

WHEN "11" =>

out4_de := in_rsvd;

WHEN OTHERS => NULL;

END CASE; END IF;

c_uint := out1_de OR L_1; out1 <= c_uint; b_c_uint := out2_de OR R_0; out2 <= b_c_uint; c_c_uint := out3_de OR L_3; out3 <= c_c_uint;

d_c_uint := out4_de OR R_2; out4 <= d_c_uint; END PROCESS demux; END rtl;

Пример 5. M-файл мультиплексора 4 в 1, входящего в состав соединительного блока C1:

function out = mux_4v1(sel, in1, in2, in3, in4) hdl_fm = fimath(... 'RoundMode', 'floor', ... 'OverflowMode', 'wrap', ...

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

'ProductMode', 'FullPrecision', 'ProductWordLength', 32, ... 'SumMode', 'FullPrecision', 'SumWordLength', 32, ... 'CastBeforeSum', true);

out = fi(0, 0, 1, 0, hdl_fm); switch (uint8(sel)) case 0,

out = fi(in1, 0, 1, 0, hdl_fm); case 1,

out = fi(in2, 0, 1, 0, hdl_fm); case 2,

out = fi(in3, 0, 1, 0, hdl_fm); case 3,

out = fi(in4, 0, 1, 0, hdl_fm);

end

Выводы

Продемонстрирована возможность использования системы визуально-имитационного моделирования MATLAB/Simulink с приложением Simulink HDL Coder для разработки архитектуры академической ПЛИС с одноуровневой структурой межсоединений на уровне системы. Разработанная архитектура ПЛИС обеспечивает однотипность трассировочных ресурсов по всей площади кристалла. ■

Литература

1. Строгонов А., Мотылев М., Давыдов С., Быстрицкий А. ПЛИС типа ППВМ с одноуровневой структурой межсоединений // Компоненты и технологии. 2011. № 1.

2. Строгонов А., Мотылев М., Давыдов С., Быстрицкий А., Цыбин С. ПЛИС в ПЛИС, или Как спроектировать самому // Компоненты и технологии. 2011. № 4.

3. Строгонов А., Мотылев М., Давыдов С., Быстрицкий А., Цыбин С. Проектирование академических ПЛИС типа ППВМ с одноуровневой структурой межсоединений // Компоненты и технологии. 2011. № 6.

4. Солонина А. Моделирование цифровой обработки сигналов ЦОС в MATLAB. Ч. 4. Моделирование структур цифровых фильтров c фиксированной точкой программными средствами MATLAB: анализ характеристик КИХ-фильтров // Компоненты и технологии. 2009. № 2.

BEGIN

i Надоели баннеры? Вы всегда можете отключить рекламу.