Projekt prostego procesora

Podobne dokumenty
Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYNTEZA UKŁADÓW CYFROWYCH ES2D100005

Język VERILOG w praktyce

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL

Projektowanie hierarchiczne Mariusz Rawski

Technika cyfrowa projekt: Sumator 4 bitowy równoległy

Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje.

Projektowanie Urządzeń Cyfrowych

Układy reprogramowalne i SoC Język VHDL (część 4)

Specyfika projektowania Mariusz Rawski

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

WOJSKOWA AKADEMIA TECHNICZNA im. Jarosława Dąbrowskiego LABORATORIUM UKŁADÓW PROGRAMOWALNYCH I SPECJALIZOWANYCH

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

Systemy Czasu Rzeczywistego FPGA

Systemy Czasu Rzeczywistego FPGA

Altera Quartus II. Opis niektórych komponentów dostarczanych razem ze środowiskiem. Opracował: mgr inż. Leszek Ciopiński

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYNTEZA UKŁADÓW CYFROWYCH ES2D100005

Systemy Czasu Rzeczywistego FPGA

Realizacja algorytmu wyznaczania wyrazów ciągu w języku VHDL z zastosowaniem podziału projektu na moduły: FSM i Data Path.

Struktura i działanie jednostki centralnej

Sposoby projektowania systemów w cyfrowych

Architektura typu Single-Cycle

PUCY Kolos 2: Reloaded

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

A Machine Architecture that is Really Intuitive and Easy. Dane: notacja dwójkowa, zapis w kodzie dopełnieniowym

1. ISE WebPack i VHDL Xilinx ISE Design Suite 10.1 VHDL Tworzenie projektu Project Navigator Xilinx ISE Design Suite 10.1 File

Modelowanie złożonych układów cyfrowych (1)

Projektowanie w VHDL

Krótkie wprowadzenie do ModelSim i Quartus2

Synteza strukturalna

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Ćwiczenie 1 VHDL - Licznik 4-bitowy.

Układy reprogramowalne i SoC Testbenches. Symulacja sterowana zdarzeniami.

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. Automaty stanów

Projektowanie automatów z użyciem VHDL

LABORATORIUM ELEKTRONIKA Projektowanie koderów, transkoderów i dekoderów w języku VHDL

Quartus. Rafał Walkowiak IIn PP Wer

Organizacja typowego mikroprocesora

LEKCJA TEMAT: Współczesne procesory.

Układy Cyfrowe laboratorium

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Języki opisu sprzętu VHDL Mariusz Rawski

SPIS TREŚCI. 2. Arytmetyka rozproszona Symulacja układu programowalnego Realizacja algorytmu cyfrowego filtrowania

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci RAM w FPGA.

Szkolenia specjalistyczne

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS

Architektura komputerów

Materiały pomocnicze do ćwiczeń z podstaw techniki cyfrowej (przygotował R.Walkowiak) Dla studiów niestacjonarnych rok AK 2017/18

UKŁADY MIKROPROGRAMOWALNE

Podstawy techniki cyfrowej zima 2015 Rafał Walkowiak

Programowalne układy logiczne

Podstawy techniki cyfrowej zima 2017 Rafał Walkowiak Synteza strukturalna wyższego poziomu

organizacja procesora 8086

1. Synteza układów opisanych w języku VHDL Xilinx ISE Design Suite 10.1 VHDL 2. Obsługa przetwornika CA Project Add source...

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Laboratorium Projektowania Systemów VLSI-ASIC Katedra Elektroniki Akademia Górniczo-Hutnicza

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Magistrala systemowa (System Bus)

XC4000: LUT jako ROM Układy Cyfrowe i Systemy Wbudowane 2 Układy FPGA cz. 2 ROM32X1 VHDL inference example ROM 16x2b type

Architektura komputerów

Układy reprogramowalne i SoC Implementacja w układach FPGA

Zakład Cyberbezpieczeństwa, Instytut Telekomunikacji, Politechnika Warszawska,

Projektowanie hierarchiczne Mariusz Rawski

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec

LABORATORIUM OPTOELEKTRONIKA I SENSORYKA Oprogramowanie bariery podczerwieni w układzie CPLD

Języki formalne i techniki translacji

VHDL. Behawioralny Strukturalny Czasowy. Poziom RTL

Laboratorium z podstaw techniki cyfrowej Studia inżynierskie niestacjonarne/stacjonarne, II rok III semestr, 2016/2017. W ramach laboratorium używamy:

1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro

Układy reprogramowalne i SoC Język VHDL (część 3)

Wyświetlacz siedmiosegmentowy

Programowalne układy logiczne

Elementy języka VHDL. obiekty typy danych atrybuty pakiety i biblioteki instrukcje współbieżne instrukcje sekwencyjne. PUE-w3 1

Architektura komputerów

Układy FPGA w przykładach, część 2

Mikroprocesor Operacje wejścia / wyjścia

DOKUMENTACJA PROJEKTU

ARCHITEKTURA PROCESORA,

VHLD Very High Speed Integrated Circuit (VHSIC) Hardware Description Language (VHDL)

Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM

Technika Cyfrowa. Wprowadzenie do laboratorium komputerowego część II

KURS Hexcalcul (2) Implementacja kalkulatora kodu BCD na Hex w układzie programowalnym

Logiczny model komputera i działanie procesora. Część 1.

Aby w pełni przetestować układ o trzech wejściach IN_0, IN_1 i IN_2 chcemy wygenerować wszystkie możliwe kombinacje sygnałów wejściowych.

. III atyka, sem, Inform Symulator puterów Escape rchitektura kom A

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

Przykład realizacji ćwiczenia nr 8.

mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec

Quartus. Rafał Walkowiak IIn PP Listopad 2017

Przestrzeń pamięci. Układy dekoderów adresowych

Bezpieczeństwo informacji oparte o kryptografię kwantową

Architektura komputerów wer. 7

VHDL cz.1. Rafał Walkowiak IIn PP Wer

VHDL. Zebrał i opracował R.Walkowiak PTC wykład 2013/2014

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. Instrukcje do zajęć laboratoryjnych. Laboratorium z przedmiotu:

Sprzęt i architektura komputerów

PRZEMYSŁAW SOŁTAN

Transkrypt:

Projekt prostego procesora Opracowany przez Rafała Walkowiaka dla zajęć z PTC 2012/2013 w oparciu o Laboratory Exercise 9 Altera Corporation Rysunek 1 przedstawia schemat układu cyfrowego stanowiącego elementy struktury prostego procesora. W skład układu wchodzą: rejestry 16 bitowe, multiplekser, sumator, licznik i układ sterujący. Dane są wprowadzane do systemu za pomocą 16 bitowe magistrali wejściowej. Dane mogą być ładowane do rejestrów za pomocą multipleksera. Multiplekser umożliwia również przesyłanie danych między rejestrami. Operacje arytmetyczne są realizowane w oparciu o zawartość rejestru akumulatora A. Drugi operand jest pobierany z rejestru R*, wynik działania jest zapisywany do rejestru G, a następnie przepisywany do dowolnego rejestru R. Rysunek 1 Układ cyfrowy prostego procesora System może realizować różne operacje zarządzane za pomocą układu sterującego. Jest on odpowiedzialny za umieszczenie danych na wewnętrznej magistrali danych oraz podanie sygnałów sterujących zapisem danych do wybranego rejestru. Przykładowo wysterowanie sygnałów R0out i Ain powoduje umieszczenie informacji z R0 na magistrali, a następnie (w kolejnym kroku sterowania) załadowanie do rejestru A. Układ sterujący zarządza realizacją operacji zdefiniowanych jako instrukcje. Listę instrukcji zawiera Tabela 1. Notacja RX [RY] oznacza, że zawartość rejestru RY jest ładowana do

rejestru RX (instrukcja mv). Wyrażenie RX D oznacza, że 16-bitowa stała jest ładowana do rejestru RX (instrukcja mvi). Tabela 1 Instrukcje i realizowane funkcje Instrukcja jest zapisywana w rejestrze instrukcji IR w 6 bitowym formacie IIXXYY, gdzie bity II koduj ą instrukcję, XX kodują rejestry RX a YY kodują rejestry RY. Instrukcje są pobierane z magistrali wejściowej układu. W przypadku instrukcji mvi pole YY nie ma znaczenia, natomiast kolejne (konieczna synchronizacja podawania danych wejściowych z działaniem układu sterującego) po instrukcji słowo podawane na magistralę wejściową zawiera wartość przeznaczoną do załadowania do rejestru. Niektóre instrukcje wymagają dla swojej realizacji kilku stanów układu, przykładowo: konieczne jest realizowanie wielu przesłań danych dla sumowania. Układ sterujący korzysta z dwubitowego licznika dla określenia kolejnych kroków realizacji instrukcji. Układ przechodzi do realizacji instrukcji podanej na magistrali wejściowej w odpowiedzi na wysterowanie sygnału wejściowego Run oraz wysteruje sygnał Done po ukończeniu realizacji rozkazu. Tablica 2 określa sygnały sterujące aktywne w poszczególnych krokach realizacji poszczególnych instrukcji. W kroku T0 jedynym aktywnym jest sygnał IRin. Tabela 2 Sygnały aktywne w poszczególnych krokach realizacji rozkazów (dla innych niż wersja 1 procesora konieczne modyfikacje). Wersje projektów procesora: Wersja 1 według powyższej specyfikacji Wersja 2 dodatkowy rozkaz przepisania danych między rejestrem a akumulatora, operacje ADD i SUB dotyczą akumulatora jako pierwszego operandu, wynik jest zapisywany w akumulatorze. Wersja 3 wynik operacji arytmetycznych zostaje zapisany do rejestru REG3, brak rejestru G, jeden rozkaz arytmetyczny add-sub, niewykorzystane bity (brak konieczności kodowania rejestru docelowego) rozkazu arytmetycznego służą do określenia czy mamy do czynienia z dodawaniem czy odejmowaniem.

Wersja 4 procesor posiada rozkaz skoku bezwarunkowego, w tym celu układ jest rozszerzony o licznik adresowy określający adres następnego do pobrania rozkazu, do licznika można przepisać wartość z rejestru. Dodatkowy rozkaz jest kodowany na 3 bicie kodującym rozkaz (bit ten nie jest wykorzystany ze względu na 4 rejestry). Do rejestru adresowego należy zapisać wartość o jeden cykl procesora wcześniej przed pobraniem kolejnego rozkazu. Wersja 5 procesor może realizować operację zapisu do pamięci wartości pobranej z rejestru pod adres pobrany z innego rejestru. Dodatkowy rozkaz jest kodowany na 3 bicie kodującym rozkaz (bit ten nie jest wykorzystany ze względu na 4 rejestry). W celu realizacji zapisu należy użyć dodatkowy sygnał /MW memory write aktywny poziomem niskim przez jeden cykl procesora. Zadania do realizacji w ramach ćwiczenia: 1. Przygotuj plik VHDL określający działanie opisanego powyżej układu. Kody pomocnicze do wykorzystania jako elementy składowe projektu przedstawiają rysunki 3a, 3b. 2. Przeprowadź symulację funkcjonalną dla sprawdzenia poprawności kodu. Zaprezentuj realizację każdego typu rozkazu. Przykładowe przebiegi umieszczono na Rysunku 2. 3. Utwórz projekt dla implementacji układu w płycie DE2. Użyj przełączników SW15-0 do wysterowania wejść danych. Sygnały Run, Resetn, Clock i Done podłącz odpowiednio do SW17, KEY0, KEY1, LEDR17. Stan magistrali wewnętrznej procesora obserwuj za pomocą LEDR15-0, za pomocą diód obserwuj inne kluczowe sygnały układu. Przetestuj krokowo działanie procesora określając sygnały wejściowe po załadowaniu do układu FPGA płyty DE2. Rysunek 2 Symulacja pracy układu procesora. LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_signed.all; ENTITY proc IS PORT ( DIN : IN STD_LOGIC_VECTOR(15 DOWNTO 0); Resetn, Clock, Run : IN STD_LOGIC; Done : BUFFER STD_LOGIC; BusWires : BUFFER STD_LOGIC_VECTOR(15 DOWNTO 0));

END proc; ARCHITECTURE Behavior OF proc IS... declare components... declare signals High <= 1 ; Clear <=... Tstep: upcount PORT MAP (Clear, Clock, Tstep_Q); I <= IR(1 TO 3); decx: dec3to8 PORT MAP (IR(4 TO 6), High, Xreg); decy: dec3to8 PORT MAP (IR(7 TO 9), High, Yreg); controlsignals: PROCESS (Tstep_Q, I, Xreg, Yreg)... specify initial values CASE Tstep_Q IS WHEN "00" => - - store DIN in IR as long as Tstep_Q = 0 IRin <= 1 ; WHEN "01" => - - define signals in time step T1 CASE I IS... WHEN "10" => - - define signals in time step T2 CASE I IS... WHEN "11" => - - define signals in time step T3 CASE I IS... reg_0: regn PORT MAP (BusWires, Rin(0), Clock, R0);... instantiate other registers and the adder/subtracter unit... define the bus Rys 3a Podstawowe elementy opisu jednostki projektowej procesora. LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_signed.all; ENTITY upcount IS PORT ( Clear, Clock : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(1 DOWNTO 0));

END upcount; ARCHITECTURE Behavior OF upcount IS SIGNAL Count : STD_LOGIC_VECTOR(1 DOWNTO 0); PROCESS (Clock) IF (Clock EVENT AND Clock = 1 ) THEN IF Clear = 1 THEN Count <= "00"; ELSE Count <= Count + 1; Q <= Count; ARCHITECTURE Behavior OF dec3to8 IS PROCESS (W, En) IF En = 1 THEN CASE W IS WHEN "000" => Y <= "10000000"; WHEN "001" => Y <= "01000000"; WHEN "010" => Y <= "00100000"; WHEN "011" => Y <= "00010000"; WHEN "100" => Y <= "00001000"; WHEN "101" => Y <= "00000100"; WHEN "110" => Y <= "00000010"; WHEN "111" => Y <= "00000001"; ELSE Y <= "00000000"; LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY regn IS GENERIC (n: INTEGER := 16); PORT ( R : IN STD_LOGIC_VECTOR(n-1 DOWNTO 0); Rin, Clock : IN STD_LOGIC; Q : BUFFER STD_LOGIC_VECTOR(n-1 DOWNTO 0)); END regn;

ARCHITECTURE Behavior OF regn IS PROCESS (Clock) IF Clock EVENT AND Clock = 1 THEN IF Rin = 1 THEN Q <= R; Rys. 3b Jednostki licznika, selektora i rejestru dla układu procesora.