Скачиваний:
21
Добавлен:
09.05.2014
Размер:
176.36 Кб
Скачать

Часть 2. Вспомогательное программное обеспечение. Ассемблер микрокоманд

Для облегчения перевода микрокоманд из текстовой форму в двоичную, был разработан ассемблер микрокоманд mca. Эта программа переводит микрокод из входного текстового файла в файлы промежуточные фалы .mcd(содержит микрокод) и .labelmap. (содержит адреса меток) Затем, две дополнительные утилиты создают из этих фалов файлы .mif, пригодные для использования их в системеQuartus.

Ассемблер поддерживает метки, что облегчает создание и отладку микрокода. Метку можно объявить, если начать строку с символа @ (например, @Metka:). Объявления меток обязательно должны заканчиваться двоеточием. При использовании меток в тексте (в командах перехода) нужно так же начинать их имена с символа @. По принятому соглашению, метки вида @$XX: расцениваются как адреса точек входа в обработчик инструкции с шестнадцатеричным кодомXX(например, @$02: дляljmp). Адреса таких меток потом переводятся в таблицу, загружаемую вrom-память блока управления.

Ассемблер использует хорошо известную технику двойного прохода по тексту, где в первом проходе вычисляются адреса меток, а во втором - подставляются в текст.

Полный исходный код ассемблера mcaи сопутствующих утилит на языкеC# приведен в приложении [4].

Симулятор (модель) процессора

Симулятор процессора позволяет быстро проверить работу микрокоманд, не прибегая

к разработке/изменению схемы. Симулятор выполнен в виде консольной программы для системы Windows. Общение с пользователем происходит в текстовом режиме посредством текстовых команд. Такой интерфейс был выбран для ускорения процесса разработки.

Симулятор поддерживает следующие команды:

CODEbl– вывестиlбайт кода начиная с адресаb

DATAbl- вывестиlбайт памяти данных начиная с адресаb

SETRrd– установить регистрrзначениемd(r=a,b,psw,sp,pc,dptr,r0-r7).

При установке PCсбрасывается счетчик микрокоманд.

REGS- вывести все регистры

SETDa- начать заполнение памятиdataс адресаa

SETCa- начать заполнение памятиcodeс адресаa

INTRn– создать прерывание с номеромn

EXIT– покинуть симулятор

<Enter> - продолжить исполнение микрокоманд

В симуляторе реализована поддержка всех инструкций из задания + инструкцийljmpиretiдля работы с прерываниями. Для облегчения задания начальной программы и регистров симулятор поддерживает скриптовые файлы инициализации. В них можно пользоваться всеми приведенными выше командами, а заканчиваться файл должен символом «.» (обязательное условие). Исходный текст симулятора на языкеC# и примера инициализационного скрипта приведен в приложении [5].

Окно симулятора в процессе работы показано на рисунке 1.

Рис. 1 Окно симулятора sim51

Литература

  1. П.С. Довгий, В.И. Скорубский ПРОЕКТИРОВАНИЕ ЭВМ. Пособие к выполнению курсового проекта. Спб.: СПБГУ ИТМО 2009

  2. Б.С. Иванов. Энциклопедия начинающего радиолюбителя. М: Патриот 1992

Приложение №1. Иерархия блоков эвм.

BE_Mutilation– главный блок ЭВМ

Clock– схема делителя частоты синхронизации

Core– микропроцессорное ядро

Code_xdata– блок памяти кода иXData

Code– блок памяти кода и регистровPCH/L

Control– блок управления

Interrupts – блок контроллера прерываний (управляется непосредственно блокомControl)

Interrupts-fetchблок детектора прерываний

Datasfr– блок памятиDataи основных регистровSfr(Acc,B,Psw,SP,DPTR)

Datasfr_mem– блок памяти и регистровSfr

Data_ram – блок памяти Ram (адреса 0..127)

Acc – Блок регистра-аккумулятора, сдвиговых операций и десятичной коррекции.

B_sp_sfr– блок регистровBиSP

PSW– блок регистраPSW

DPTR– блок регистровDPTR

Wrk_regs– регистры для хранения промежуточных значений

BusA_Selector– блок выбора значения для шиныBusA(формирует так же адресаR0..R7)

MulDiv– блок аппаратного умножения и деления (управляется блокомDataSfr)

Alu– арифметико-логическое устройство

Bit – блок обработки битовых данных

Cn_mcr– ПЗУ констант

Ports– блок портов ввода-вывода.

BIDI x4 – блоки соответствующих портов, имеющие одинаковое устройство.

Соседние файлы в папке Отчет