Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Проектування компютерних систем та мереж

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 25.11.2024

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА

Звіти до лабораторних робіт № 47

«Проектування комп’ютерних систем та мереж»

Виконав:

ст. гр. КСМсі-11з

Мархоцький В.С.

Прийняв:

Бачинський Р.В.

Львів – 2013

ЛР № 4.

Імплементування та дослідження VHDL моделі машини з архітектурою MIPS

Мета: опанування технікою створення та використання софтконтролерів з архітектурою MIPS.

Хід роботи:

Вікно програми XILINX WebPack після завантаження , перевірки та імплементації проекту має наступний вигляд (рис. 1):

Рис. 1 Вікно XILINX із завантаженим проектом.

Імплементована схема проекту має вигляд (рис 2):

Рис. 2 RTL-схема проекту.

Для перевірки правильності функціонування моделі потрібно створити тестовий файл:

clock <= not clock after 50ns;

reset <= '0' after 180ns;

Результат роботи цього файлу наведено на рисунку 3.

Рис. 3 Результат симуляції проекту.

Як видно з діаграми, значення програмного лічильника збільшується в кожному такті на 4, оскільки саме така ширина інструкції. Програмний лічильник – регістр що вказує на наступну команду у пам’яті. Отже, за результатами видно, що команди вибираються поступово, без переходів.

ЛР № 5

Імплементування та дослідження VHDL моделі софтконтролера XILINX PicoBlaze

Мета роботи: опанування технікою створення і використання 8 бітових софтконтролерів з архітектурою Xilinx PicoBlaze.

Хід роботи:

Тестова програма для PicoBlaze:

Load s7, 01 ; init shifter reg

Output s7, 04

SL0 s7 ; rotate left

Jump NZ, 01

Jump 00

VHDL модель програмної  пам’яті з тестовою програмою:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity demo_test is

port( address : in std_logic_vector(7 downto 0);

 clk : in std_logic;

 dout : out std_logic_vector(15 downto 0));

end;

architecture v1 of demo_test is

constant ROM_WIDTH: INTEGER:= 16;

constant ROM_LENGTH: INTEGER:= 256;

subtype rom_word is std_logic_vector(ROM_WIDTH-1 downto 0);

type rom_table is array (0 to ROM_LENGTH-1) of rom_word;

constant rom: rom_table := rom_table'(

"0000011100000001",

"1000111100000100",

"1010011100000110",

"1101010100000001",

"1101000000000000",

"0000000000000000",

"0000000000000000",

"0000000000000000",

…………………………………

"0000000000000000");

begin

process (clk)

begin

if clk'event and clk = '1' then

 dout <= rom(conv_integer(address));

end if;

end process;

end v1;

Завантаження VHDL проекту до САПР

Рис. 1. Завантажений до WebPack VHDL проект софтконтролера Xilinx PicoBlaze

На рис. 1. Показано проектні джерельні файли, що утворюють ієрархію проекту. Тестбенч файлу містить автоматично задані нульові початкові значення вхідних сигналів. Зміни вхідних сигналів змінюються, а саме: на 10 нс сигнал скиду приймає значення 0 і припиняє свою дію; через кожні 15 нс рівень такту інвертується; отже такт має період 30 нс, відповідно частоту зміни 1/30нс =33 МГц.

Інтерфейс софтконтролера

Рис. 2. Інтерфейсні сигнали софтконтролера з архітектурою Xilinx PicoBlaze

На даному рисунку показано два вхідні сигнали: clk і reset,  та чотири вихідні сигнали(output + три сигнали для контрольного спостереження на симуляційній часовій діаграмі: out_port_view – інформація, що виводиться на порт, port_id_view – номер порту, write_strobe_view – звернення до порту запису).

Симуляційна часова діаграма:

Рис. 3. Часова діаграма симуляційного виконання програмного коду


ЛР № 6

Імплементування та дослідження VHDL моделі софтконтролера XESS Gnome

Мета: опанування технікою створення і використання 4 бітового софтконтролера з архітектурою XESS Gnome.

Теоретичні відомості:

Рис. 1. Інтерфейсні сигнали софтконтролера з архітектурою Xilinx XESS Gnome

Праворуч розташовані два вхідні сигнали (clk, reset). Реалізовано не весь софтконтролер, а лише його ядро. Підсистеми введення/виведення немає. Її має додати студент. Всі вихідні сигнали розташовано праворуч. Присутність в назві сигналу слова view свідчить про те, що це є синал, трасу якого тз метою налаштування можна побачити на симуляційній часовій діаграмі. Перелічимо вихідні сигнали:

acc_view – вихід акумулятора;

addr_view – шина адреси;

data_view – шина даних;

ir_view – вихід регістра інструкцій;

pc_view – вихід програмного лічильника;

сarry_view – сигнал переносу;

sel_ram_view – сигнал вибору пам’яті даних (регістрового файлу);

we_view – сигнал дозволу запису до пам’яті даних.

Хід роботи:

Завантаження VHDL проекту XESS Gnome до САПР

Рис. 2. Завантажений до WebPack VHDL проект софтконтролера XESS Gnome

На рис. 2. подані проектні джерельні файли, що утворюють ієрархію проекту. В редакторі текстів показано фрагмент тестбенч файлу, що містить автоматично задані нульові початкові значення вхідних сигналів.  Темним фоном виділено два рядки, що записані вручну і задають бажані зміни цих вхідних змінних, а саме: на 17 нс сигнал скиду приймає значення 0 і припиняє свою дію; через кожні 25 нс рівень такту інвертується; отже такт має період 50 нс, відповідно частоту зміни 1/50нс = 20 МГц.

Симуляційна часова діаграма виконання тестової програми

Рис. 3. Симуляційна діаграма виконання тестової програми ядром Gnome

На рис. 3. показано трасу зміни сигналу скиду, потім розташовано трасу такту. Далі йдуть траси всіх вихідних сигналів, що присутні в інтерфейсі ядра. Видно, що період такту складає 50 нс, частота тактування дорівнює 20МГц.

Функційна (RTL) схема софтконтролера

Рис. 4. Функційна (RTL) схема софтконтролера з архітектурою XESS Gnome


ЛР № 7

Імплементування та дослідження софтконтролера з шиною wishbone

Мета: опанування технікою створення і використання машин на основі стандартної системної шини wishbone.

Завдання:

В САПР WebPack імплементувати до ПЛІС Virtex-II проект софтконролера “Micro8”, побудований на системній шині wishbone. Результат проектування верифікувати методом часової симуляції. Необхідними змінами в VHDL коді моделі забезпечити візуалізацію с подальшим аналізом часових діаграм циклів, що відбуваються на шині wishbone. Скласти звіт з проведених лабораторних досліджень і захистити його.

Теоретичні відомості:

Передусім розглянемо систему машинних інструкцій того варіанту софтконтролера Micro8, що розглядається в лабораторній роботі. Зауважимо, що відомі декілька модифікацій софтконтролера. Перший варіант софтконтролера мав наступні інструкції: ADD (додавання), NOR (логічного додавання з запереченням), STA та JCC (Jump on Carry, збереження акумулятора в пам’яті і умовний перехід за ознакою переносу). It had a singlecarry bit which was reset by the JCC instruction. При цьому більш складні машинні інструкції інших контролерів вдається запрограмувати кодами софтконтролера Micro8.

Зараз всі машинні інструкції мають наступний двохбайтовий формат.

Рис. 1. – Двохбайтовий формат інструкції процесора контролера Micro8

Старшу частину адреси (high) формують біти B2, B1 та B0 першого байту формату

машинної інструкції of the opcode, а молодші біти (low) адреси або безпосереднє значення (immediate value) задають біти від B7 до B0 другого байту формату. Отже, можна адресувати 2(3+8=11) × 1 byte = 2 KВ пам’яті, тоді як первинний варіант дозволяв адресування (шістьма бітами однобайтового формату інструкції) лише 26 = 64 байти пам’яті. До першого варіанту внесено наступні зміни:

  1.  Додано 8 бітовий індексний регістр.
  2.  Bit 7 визначає регістр, а саме: акумулятор А (коли В7=0) або індексний регістр Х (коли В7=1).
  3.  Чотири первинні інструкції залишилися без змін:

  1.  Додані чотири режими адресування (спочатку існував лише один режим

абсолютної адреси):

  1.  Додано 8 інструкцій умовного переходу (відносно програмного лічильника PC)

Далі ми розглянемо тестову програму, що виконує Micro8. Подамо текст програми, що “зашита” до програмної пам’яті мікроконтролера Micro8 та імплементується разом з мікроконтролером:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity boot_rom is

port (WB_ADR_I : in std_logic_vector(5 downto 0);

WB_DAT_O : out std_logic_vector(7 downto 0);

WB_STB_I : in std_logic;

WB_ACK_O : out std_logic);

end entity boot_rom;

architecture basic of boot_rom is

constant width : integer := 8;

constant memsize : integer := 64;

type rom_array is array(0 to memsize-1) of std_logic_vector(width-1 downto 0);

constant rom_data : rom_array :=

( "10100000", "11111111", -- 0000 - a0 ff RESET NORX #$FF

"00100000", "11111111", -- 0002 - 20 ff POLL1 NORA #$FF

"00001111", "11111101", -- 0004 - 0f fd ADDA UARTCR

"00100000", "11111110", -- 0006 - 20 fe NORA #not(TXBE)

"11101111", "11111000", -- 0008 - ef f8 BNE POLL1

"00100000", "11111111", -- 000a - 20 ff NORA #$FF

"00010000", "00110000", -- 000c - 10 30 ADDA MSG,X

"01101000", "00000110", -- 000e - 68 06 BEQ POLL2

"10000000", "00000001", -- 0010 - 80 01 ADDX #1

"01001111", "11111100", -- 0012 - 4f fc STA UARTDR

"11101111", "11101100", -- 0014 - ef ec BNE POLL1

"00100000", "11111111", -- 0016 - 20 ff POLL2 NORA #$FF

"00001111", "11111101", -- 0018 - 0f fd ADDA UARTCR

"00100000", "11111101", -- 001a - 20 fd NORA #not(RXBF)

"11101111", "11111000", -- 001c - ef f8 BNE POLL2

"00100000", "11111111", -- 001e - 20 ff NORA #$FF

"00001111", "11111100", -- 0020 - 0f fc ADDA UARTDR

"01100111", "11011100", -- 0022 - 67 dc BRA RESET

"00000000", "00000000", -- 0024 - 00 00 fcb $00,$00

"00000000", "00000000", -- 0026 - 00 00 fcb $00,$00

"00000000", "00000000", -- 0028 - 00 00 fcb $00,$00

"00000000", "00000000", -- 002a - 00 00 fcb $00,$00

"00000000", "00000000", -- 002c - 00 00 fcb $00,$00

"00000000", "00000000", -- 002e - 00 00 fcb $00,$00

"01001000", "01100101", "01101100", -- 0030 - 48 65 6c MSG FCC "Hel"

"01101100", "01101111", "00100000", -- 0033 - 6c 6f 20 FCC "lo "

"01010111", "01101111", "01110010", -- 0036 - 57 6f 72 FCC "Wor"

"01101100", "01100100", -- 0039 - 6c 64 FCC "ld"

"00001010", "00001101", "00000000", -- 003b - 0a 0d 00 FCB LF,CR,NULL

"00000000", "00000000" -- 003e - 00 00 fcb null,null);

begin

WB_DAT_O <= rom_data(conv_integer(WB_ADR_I));

WB_ACK_O <= WB_STB_I;

end architecture basic;

Проект Micro8 містить асинхронний приймач-передавач UART, що дозволяє в нашому випадку виводити з мікроконтролера послідовним асинхронним кодом повідомлення Hello World. Rx позначає приймач UART, на вхід якого ми в симуляції задамо рівень rxbit = ‘1’ (нема сигналу, тобто, пасивний стан входу). Послідовний код повідомлення hello World спостерігає на бітовому виході передавача Tx, який позначено через txbit. VHDL модель універсального асинхронного приймача-передавача містять файли miniUART.vhd (а це є локальний топ-файл вкладеного проекту), txunit.vhd, rxunit.vhd та utils.vhd. VHDL модель процесора містить файл cpu8bit2.vhd, а програму, що виконує процесор, містить файл bootrom.vhd. Зараз подамо копію вікна навігатора із завантаженим VHDL проектом Micro8. Цільова ПЛІС – Xilinx Virtex2 (40 тис. вентилів).

Рис. 2. Вікно навігатора з завантаженим проектом Micro8

Рис. 3. Інтерфейс мікроконтролера Micro8

В симуляціє на вхід rxbit треба подати одиницю, на вхід Reset_n (низькоактивний скид) на короткий час (декілька періодів тактових імпульсів, але не на ціле число їхнє число) треба подати нуль. На вхід SysClk треба подати тактові імпульси (в нас – частотою 10 МГц, період 100 нс). Вихідні сигнали треба спостерігати (на часових симуляційних діаграмах).

Маємо наступні вихідні сигнали:

· ram_address(16 : 0) є адресою зовнішньої щодо мікроконтролера пам’яті,

· led є вхідним сигналом зовнішнього світлодіода, що розташований на прототипній платі, засобами якою емулюють проект (в нас прототипної плати нема, сигнал можна не спостерігати),

· ram_cs є сигналом вибору кристала зовнішньої пам’яті,

· ram_wrin

· ram_wrun

· ram_data(7:0) є двохнаправленою шиною поміж ram та Micro8.

Подамо витяг із звіту про синтез проекту (мікростатистика витрат базових елементів ПЛІС). Звіт отримано по завершенню синтезу.

Рис. 4. Топологія мікроконтролера Micro8

Рис. 5. - Часова поведінка мікроконтролера Micro8 на початку виконання програми

Розглянемо VHDL модель пам’яті стартової програми, а ця модель ще містить код повідомлення Hello World, що виводиться на бітову лінію txbit передавача Tx вихідного каналу UART, що є в складі мікроконтролера.

Копію коду повідомлення Hello World подано нижче.

"01001000", "01100101", "01101100", -- 0030 - 48 65 6c MSG FCC "Hel"

"01101100", "01101111", "00100000", -- 0033 - 6c 6f 20 FCC "lo "

"01010111", "01101111", "01110010", -- 0036 - 57 6f 72 FCC "Wor"

"01101100", "01100100", -- 0039 - 6c 64 FCC "ld"

"00001010", "00001101", "00000000", -- 003b - 0a 0d 00 FCB LF,CR,NULL

"00000000", "00000000" -- 003e - 00 00 fcb null,null

Залишається пересвідчитися в тому, що поданий симуляційною часовою діаграмою код відповідає саме коду повідомленню Hello World.

Рис. 7. Cимуляційна часова діаграма виконання програми Hello World комп’ютера Micro8

Надамо пояснення щодо часової діаграми для перших двох символів He повідомлення Hello World на виході txbit, яка від самого початку знаходиться в стані “1” (нема передачі в асинхронному послідовному інтерфейсі).

Рис. 8. Відповідний кодовій послідовності фрагмент симуляційної часової діаграми




1. термін використання; 2 чи зберігають свою матеріальну форму за один виробничий цикл; 3 характер перенесення
2. Реферат- Матеріально-технічна підготовка проектів
3. Разработка шиномонтажного отделения АТП на 405
4. тема общественополитических отношений которая являясь господствующей в государстве закреплена в конститу
5. Порядок составления организационно-распорядительной документации
6. Слухи в обществе- их источники и динамика
7.  Основные факторы внутренней среды их влияние на условия и результаты деятельности компании
8. Экономика отрасли
9. тематического знания Греции мегарскую школу в Аттике и пифагорейскую общину в Италии
10. Культура нашей речи роскошь или целесообразность
11. Тема 1- Київська Русь у системі міжнародних відносин ІХ ~ ХІІІ ст
12. Лекция 2 3 Основы анализа прочностной надежности двигателей Под прочностной надежностью понимается
13. 12 мая 2012 г. 15 час
14. варіанта використання грошей
15. Доклад- Применение имплантации коллагеновой губки в лечении глаукоматозной атрофии зрительного нерва
16. ТЕМА- Экологическая политика государства в рыночной экономике и механизм ее реализацииrdquo;
17. во отработанных часов застрахованным лицом за этот период
18. ХХХ Деятельность компании ХХХ нуждается в интенсификации т
19. Реферат- LL(k) - Грамматики
20. Понимающая социология М