Стъпки в процеса на проектиране на цифрови устройства върху конфигурируеми чрез маски сгис. Пример за проектиране “отгоре-надолу”



Дата21.01.2018
Размер87.96 Kb.
#49919

Проектиране на СГИС Лекция No 11

Стъпки в процеса на проектиране на цифрови устройства върху конфигурируеми чрез маски СГИС. Пример за проектиране “отгоре-надолу” (top-down design).
Едно цифрово устройство в процес на проектиране може да бъде описано на различни нива на абстракция или детайлизация. Практически използваните понастоящем нива на описание бяха представени графично на така наречената Y -диаграма (в предните лекции). Тук, на Фиг.4.1 е показана схема с нивата на представяне, погледнати от поведенческа и структурна гледна точка.

Процесът на проектиране на цифровo устройствo върху СГИС започва с идеята за устройството, първоначалните изисквания към него и завършва след определен брой стъпки със създаване на описание, а оттам и документация, необходима за реализацията му върху чипа. В този смисъл процесът на проектиране е свързан с трансформиране на получени от всяка негова стъпка описания на устройството и последователното им детайлизиране. Той се придвижва на схемата от Фиг.4.1 от по-горните (по-абстрактни) нива към по-долните (по-детайлизирани) нива. Затова го наричат процес на проектиране “отгоре - надолу“ (top-down design).



Фигура 4.1

Фигура 4.2

Основните стъпки в процеса на проектиране на цифрови устройства върху масково конфигурируеми интегрални схеми (ASICs) са описани чрез диаграмата от Фиг.4.2. Диаграмата показва един типичен процес на проектиране по метода "отгоре - надолу". Резултатът от всяка следваща стъпка представя проектираното цифровото устройство на по-детайлно ниво на описание според схемата от Фиг.4.1.

Ще опишем по-долу пример за проектиране на цифрово устройство върху създавана чрез маски (фотошаблони) интегрална схема (ASIC - чип). Примерът ще демонстрира VHDL - описанието и основните стъпки на процеса по метода "отгоре - надолу". Примерът е за проектиране на устройство - филтър на Гаус (Gauss), който се използва в областта на обработка на изображения.

Ще разглеждаме едно изображение като двумерна матрица от пиксели с M реда и N стълба. Операциите на филтъра на Гаус изискват матрицата на изображението да бъде обходена с по-малка матрица (апертура на филтъра) с коефициенти, която се налага върху пикселите. В нашия пример ще използваме апертура на този филтър с размери (3х3) пиксела. Матрицата на изображението и две от положенията на апертурата при обхождане на матрицата са показани на Фиг.4.3.

Фигура 4.3


Ще означаваме стойностите на пикселите от изображението, върху които в момента е апертурата, с P1, P2, …,P5, …, P9. Основната операция на филтъра е операция – конволюция между вектора от тези тези кодове и вектора от елементите (коефициентите) на апертурата, означени с К1, К2,…,К9:

Резултатът от конволюцията се присвоява като нова стойност на пиксела под средата на апертурата - P5. В горния израз той е означен с P(i, j), с което е показано, че операцията – конволюция според филтъра трябва да се извърши многократно, като присвои нови стойности за всички пиксели от изображението. Това се става чрез обхождане на матрицата на изображението от апертурата на филтъра, както бе казано и по-горе. С N е означен така нареченият нормализиращ множител, чиято стойност ще бъде определена по-долу.

В текущия пример ще проектираме филтър на Гаус с коефициенти на апертурата, показани на Таблица 4.1. Стойностите на коефициентите имат значение за ефекта от работата на филтъра според теорията на обработка на изображения, но този въпрос тук няма да се дискутира.

Таблица 4.1



1

2

1

2

4

2

1

2

1

Нормализиращият множител за този модел на Гаусов филтър (с тези коефициенти) е равен на:




Аритметичните операции, които трябва да се извършат за филтрирането (намирането на новата стойност) на един пиксел от изображението тогава се определят от записването на формулата за конволюцията в следния вид:

(4.1)


Ще искаме от устройството, което проектираме, да чете последователно чрез входа си за данни стойностите на пикселите от изображението и да генерира на изхода си последователно новите стойности в резултат от филтрирането. От горното разглеждане се установи, че за извършване на изчисленията за намиране на новата стойност на всеки пиксел са необходими 9 стойности на пиксели, разположени по определен начин в матрицата, представяща изображението. За да удовлетворим това, ще проектираме устройството, съставено от два блока: първият от тях – блок с памет за съхраняване на стойности (кодове) на пиксели от изображението; вторият – изчислителен (операционен) блок, извършващ изчисленята за всеки пиксел. Структурната схема на устройството на това, най-високо ниво на описание е изобразена на Фиг. 4.4.

Фигура 4.4

Ще разгледаме проектирането и съставянето на VHDL -описание на операционния блок на устройството (компонент OperBlock от структурната му VHDL - архитектура). От дадения по-горе израз (4.1), който трябва да изчисли блокът, се вижда, че стойностите на пикселите трябва да се умножат с коефициенти 1, 2, 4, а намерената сума трябва да се раздели на 16. Всички тези коефициенти са точни степени на 2 и тъй като представяме в устройството стойностите на пикселите с двоични числа (кодове), то горните операции по умножение и делене ще се реализират чрез просто преместване на данните на определен брой позиции, както е дадено на Табл.4.2. В таблицата терминът наляво означава по посока на старшите разряди, а надясно – по посока на младшите разряди.

Таблица 4.2


Операция

Реализация на операцията

1.P1

Преместване 0 позиции наляво

2.P2

Преместване 1 позиции наляво

1.P3

Преместване 0 позиции наляво

2.P4

Преместване 1 позиции наляво

4.P5

Преместване 2 позиции наляво

2.P6

Преместване 1 позиции наляво

1.P7

Преместване 0 позиции наляво

2.P8

Преместване 1 позиции наляво

1.P9

Преместване 0 позиции наляво

Res/16

Преместване резултата 4 позиции надясно

На практика не се налага да се извършват операции по преместване на данните в някакви преместващи регистри. Тъй като стойностите Р1, Р2, …, Р9 са изходни за блока с памет за пиксели и входни за операционния блок, то умножението се извършва чрез слепване на битове със стойност ‘0’ като младши разряди, а деленето – чрез игнориране на младши разряди на резултата. Такива преобразувания са показани съответно на Фиг. 4.7 и Фиг.4.8.

Фигура 4.7


Фигура 4.8


По-долу е представена интерфейсната (entity- ) декларация на операционния блок.
library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity OperBlock is

port(


P1,P2,P3,P4,P5,P6,P7,P8,P9: in std_logic_vector(7 downto 0);

CLK: in std_logic;

RSTN: in std_logic;

Fout: out std_logic_vector(7 downto 0)

);

end OperBlock;



Следва представянето на VHDL – архитектурата на блока. Преди нея да разгледаме RTL – модела, който е основа на тази архитектура. Схемата е показана на Фиг. 4.9. Операндите постъпват на входовете й, вече умножени с коефициентите на филтъра (слепени с нули), както бе указано по-горе. За да могат да представят резултатите от умножението, а след това и от събирането, операндите, суматорите и регистрите за междинните резултати са 12 – разрядни.

Сумирането на произведенията с коефициентите се извършва с 8 суматора, конвейерно в 4 стъпала, означени с Stage1, …, Stage4. От това следва, че резултатът от една операция – конволюция (нова стойност на пиксел) ще се появи на изхода 4 периода на синхросигнала след подаване на операндите, но след запълване на FIFO - паметта в блока с памет за пиксели устройството ще генерира на изхода си нова стойност на пиксел за всеки период. Конкретно за изход се вземат 8 – старши разряда на изходния регистър, като се пренебрегват 4 – те младши, с което намерената сума се разделя на 16, както изисква формулата на филтъра.



Фигура 4.9


architecture RTL1 of OperBlock is

signal sl_P1,sl_P2,sl_P3,sl_P4,sl_P5,sl_P6,sl_P7,sl_P8,sl_P9: std_logic_vector(11 downto 0);

signal ms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8: std_logic_vector(11 downto 0);

signal msl_P3,msl_P6,msl_P9: std_logic_vector(11 downto 0);

signal mms6: std_logic_vector(11 downto 0);

begin


sl_P1 <= "0000"&P1;

sl_P2 <= "000"&P2&'0';

sl_P3 <= "0000"&P3;

sl_P4 <= "000"&P4&'0';

sl_P5 <= "00"&P5&"00";

sl_P6 <= "000"&P6&'0';

sl_P7 <= "0000"&P7;

sl_P8 <= "000"&P8&'0';

sl_P9 <= "0000"&P9;

sum: process(CLK, RSTN)

begin

if (RSTN = '0') then



ms1 <= "000000000000";

ms2 <= "000000000000";

ms3 <= "000000000000";

ms4 <= "000000000000";

ms5 <= "000000000000";

ms6 <= "000000000000";

ms7 <= "000000000000";

ms8 <= "000000000000";

msl_P3 <= "000000000000";

msl_P6 <= "000000000000";

msl_P9 <= "000000000000";

mms6 <= "000000000000";

elsif (CLK ='1' and CLK'event) then

ms1 <= sl_P1 + sl_P2;

msl_P3 <= sl_P3;

ms2 <= sl_P4 + sl_P5;

msl_P6 <= sl_P6;

ms3 <= sl_P7 + sl_P8;

msl_P9 <= sl_P9;

ms4 <= ms1 + msl_P3;

ms5 <= ms2 + msl_P6;

ms6 <= ms3 + msl_P9;

ms7 <= ms4 + ms5;

mms6 <= ms6;

ms8 <= ms7 + mms6;

end if;


end process;

Fout <= ms8(11 downto 4);

end RTL1;

От съставените VHDL - описания на филтъра на Гаус развойната система може да продължи проектирането на устройството и реализирането му върху ASIC, по стъпките на процеса на проектиране, изобразени на диаграмата на Фиг. 4.2. От диаграмата се вижда, че основни стъпки след проектирането на RTL – ниво (което направихме досега) са: логическо проектиране – схемотехническо проектиране – топологическо проектиране. Ще покажем по-долу някои резултати от тези стъпки на работа на развойна система.



Фигура 4.10

Прегледът на структурата на устройството на RTL – ниво установява, че тя е съставена основно от възли - суматори и регистри (и за двата й блока). Системата за проектиране разглежда всеки суматор, съставен от едноразрядни комбинационни суматори, а всеки регистър – от синхронизирани по тактов сигнал D - тригери. Това е показано на Фиг.4.10.

Логическото проектиране дава логическата схема на суматора, представена на Фиг.4.11 (А и В са събираемите, С – входният пренос).



Фигура 4.11

От логическата схема на Фиг.4.11 схемотехническото проектиране генерира електрическата схема на Фиг. 4.12. За реализацията на тази схема са необходими 32 транзистора.

Фигура 4.12

В резултат на топологическото проектиране се получава топологична клетка, отговаряща на едноразрядния суматор, която е показана на Фиг.4.13.

Фигура 4.13

За другия основен възел в структурата на устройството - D – тригерът, са получени електрическа схема и топологична клетка, показани съответно на Фиг.4.14 и Фиг.4.15.

Фиг.4.14


Фиг.4.15


Развойната система разполага и свързва топологичните клетки в проектирания ASIC – чип, след което създава документите, управляващи производствения процес – фотошаблони, описания за корпуса, тестови файлове и др.

Диаграмата от Фиг.4.2, представяща стъпките на проектиране “отгоре – надолу” на цифрово устройство върху ASIC, е опростена. Тя не показва някои важни задачи, които се налага да се изпълнят в този процес. Допълнената диаграма на Фиг.4.16 и Фиг.4.17 включва тези задачи.


Фигура 4.16

Една от допълнителните дейности, които се извършват, е симулирането след всяка от стъпките на проектиране и оценката на резултатите. Това дава възможност за “отсяване” на грешките, допуснати още на по-предните, по-горни нива на проектиране и избягване в последствие на работа по грешни решения.

Друга, необходима дейност е оптимизацията при проектирането. Глобалните, общи параметри, по които се търси оптимизация, са площта на реализираното устройство върху чипа, консумираната мощност и бързодействието.


Фигура 4.17


Фигура 4.20








Каталог: KST%202%20kurs%20Mag -> 2%20sem -> PSGIS -> Lekcii
Lekcii -> Лекция №2 Проектиране на сгис
Lekcii -> Интегрални Схеми. Определения. Процеси на проектиране и производство. Основни елементи и технологии
Lekcii -> Лекция No 5 Преглед на архитектурните и схемотехнически особености на съвременните fpga чипове
Lekcii -> Лекция №4 Проектиране на сгис памети в компютърните системи архитектура, логически и схемотехнически характеристики
Lekcii -> Лекция No7 Основни типове данни и операции при vhdl описания на цифрови устройства. Реализа
PSGIS -> Проектиране на сгис упражнение No 6


Сподели с приятели:




©obuch.info 2024
отнасят до администрацията

    Начална страница