Проектирование микросхемы памяти

Создание текстового описания модуля проекта на языке VHDL. Создание тестирующей программы (Test Bench). Функциональная верификация (Behavioral simulation). Полученная диаграмма и ее характеристика. Назначение основных выводов микросхемы К573РФ5.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 18.10.2017
Размер файла 427,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Министерство образования и науки Российской Федерации

НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ МЭИ

Кафедра ВМСиС

ЛАБОРАТОРНАЯ РАБОТА № 4

по дисциплине

«Современные методы проектирования цифровых систем»

Тема: «Проектирование микросхемы памяти»

Выполнил: Сафоненко Д.П

Группа: А-07м-16

Москва, 2016

Выполнение работы

1) Создание текстового описания модуля проекта на языке VHDL:

1.1) Описание микросхемы памяти КР573РФ5

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_UNSIGNED.CONV_INTEGER;

use IEEE.STD_LOGIC_ARITH.CONV_STD_LOGIC_VECTOR;

entity k573rf5 is

generic(текстовый программа верификация микросхема

-- Динамические параметры микросхемы

t_aa:time:=450 ns;-- Время выборки адреса

t_cs:time:=450 ns;-- Время выбора

t_aceo:time:=150 ns;-- Время выборки сигнала разрешения по выходу

t_dis_cs:time:=120 ns;-- Время восстановления высокого сопротивления после сигнала CS

t_dis_ceo:time:=120 ns;-- Время восстановления высокого сопротивления после сигнала CEO

-- Параметры микросхемы

A_WIDTH:integer:=11;-- Ширина шины адреса

MEM_WORDS:integer:=2048;-- Количество слов

MEM_WLENGTH:integer:=8-- Количество разрядов в слове

);

-- Выводы микросхемы

Port ( A : in STD_LOGIC_VECTOR (A_WIDTH-1 downto 0);

CS : in STD_LOGIC;

CEO : in STD_LOGIC;

DO : out STD_LOGIC_VECTOR (MEM_WLENGTH-1 downto 0):=(others=>'Z')

);

end k573rf5;

architecture Behavioral of k573rf5 is

type mem is array ( 0 to MEM_WORDS-1) of std_logic_vector(0 to MEM_WLENGTH-1);

shared variable pzu: mem;

shared variable upAfter: time:=0 ns;

shared variable downAfter: time:=0 ns;

shared variable badAdr: boolean:=false;

shared variable timeUp: time:=0 ns;

shared variable timeDown: time:=0 ns;

shared variable atest: time:=0 ns;

begin

------------------------начало-Заполнение-ПЗУ-------------

process

variable i: integer;

begin

for i in 0 to MEM_WORDS-1 loop

if (i mod 2=0) then

pzu(i):="H0H0H0H0";

else

pzu(i):="HHHH0000";

end if;

end loop;

DO<="HHHHHHHH";

wait;

end process;

----------------------конец-Заполнение-ПЗУ----------------

------------------------начало-Считывание------------------

process(CS,CEO,A)

begin

if (A'event)and(CEO='0')and(CS='0') then

upAfter := t_aa;

if(badAdr) then

DO<="XXXXXXXX" after upAfter;

else

DO<=pzu(conv_integer(A)) after upAfter;

timeUp:=now+upAfter;

end if;

end if;

if falling_edge(CS) then

if(CEO='0') then

upAfter := t_cs;

if(badAdr) then

DO<="XXXXXXXX" after upAfter;

else

DO<=pzu(conv_integer(A)) after upAfter;

timeUp:=now+upAfter;

end if;

end if;

end if;

if falling_edge(CEO) then

if(CS='0') then

if t_aceo-CEO'last_event > t_cs-CS'last_event then

upAfter := t_aceo;

else

upAfter := t_cs-(CS'last_event-CEO'last_event);

end if;

if(badAdr) then

--DO<="XXXXXXXX" after upAfter;

DO<="HHHHHHHH" after upAfter;

else

DO<=pzu(conv_integer(A)) after upAfter;

timeUp:=now+upAfter;

end if;

end if;

end if;

if rising_edge(CS) then

downAfter := t_dis_cs;

DO<=(others=>'H') after downAfter;

timeDown:=now+downAfter;

end if;

if rising_edge(CEO) then

downAfter := t_dis_ceo;

DO<=(others=>'H') after downAfter;

timeDown:=now+downAfter;

end if;

end process;

----------------конец-Считывание-----------------------------------------------

process(A)

begin

badAdr:=false;

for i in 0 to A_WIDTH - 1 loop

if A(i) /= '0' and A(i) /= '1' then

badAdr:=true;

end if;

end loop;

if badAdr and (now>1 ns) and (CS='0') then

report time'image(now) & ": Некорректные сигналы на адресных входах" severity ERROR;

end if;

if (CS='0')and(now>1 ns)and(CS'last_event < t_cs or CEO'last_event < t_aceo or atest+t_aa > now) then

report time'image(now) & ": Некорректная расстановка сигналов: Изменение адреса в момент считывания" severity ERROR;

end if;

atest := now;

end process;

-------------------------начало-Проверка--------------------------------

process(CS)

begin

if (now<timeUp)and(now>1 ns) and (CS='1') then

report time'image(now) & ": Некорректная расстановка сигналов: Изменение CS=1 в момент считывания" severity ERROR;

end if;

if (now<timeDown)and(now>1 ns) and (CS='0') then

report time'image(now) & ": Некорректная расстановка сигналов: Изменение CS=0 в момент отключения выходов" severity ERROR;

end if;

if badAdr and (now>1 ns) and (CS='0') then

report time'image(now) & ": Некорректные сигналы на адресных входах" severity ERROR;

end if;

end process;

process(CEO)

begin

if (now<timeUp)and(now>1 ns) and (CEO='1') then

report time'image(now) & ": Некорректная расстановка сигналов: Изменение CEO в момент считывания" severity ERROR;

end if;

if (now<timeDown)and(now>1 ns) and (CEO='0') then

report time'image(now) & ": Некорректная расстановка сигналов: Изменение CEO в момент отключения выходов" severity ERROR;

end if;

end process;

------------------конец-Проверка-----------------------------------------------

end Behavioral;

2) Создание тестирующей программы (Test Bench)

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

-- Uncomment the following library declaration if using

-- arithmetic functions with Signed or Unsigned values

--USE ieee.numeric_std.ALL;

ENTITY TBZU IS

END TBZU;

ARCHITECTURE behavior OF TBZU IS

-- Component Declaration for the Unit Under Test (UUT)

COMPONENT k573rf5

PORT(

A : IN std_logic_vector(10 downto 0);

CS : IN std_logic;

CEO : IN std_logic;

DO : OUT std_logic_vector(7 downto 0)

);

END COMPONENT;

--Inputs

signal A : std_logic_vector(10 downto 0) := (others => '0');

signal CS : std_logic := '0';

signal CEO : std_logic := '0';

--Outputs

signal DO : std_logic_vector(7 downto 0);

-- No clocks detected in port list. Replace <clock> below with

-- appropriate port name

-- constant <clock>_period : time := 10 ns;

BEGIN

-- Instantiate the Unit Under Test (UUT)

uut: k573rf5 PORT MAP (

A => A,

CS => CS,

CEO => CEO,

DO => DO

);

-- Stimulus process

ADDREC_proc: process

begin

CS <= '1';

CEO <= '1';

wait for 100 ns;

CS <= '0';

wait for 120 ns;

CEO <= '0';

wait for 500 ns;

A <="01010010101";

wait for 500 ns;

A <="01010010110";

wait for 500 ns;

A <="01010011110";

wait for 500 ns;

A <="01011110101";

wait for 500 ns;

end process;

END;

3) Функциональная верификация (Behavioral simulation). Полученная диаграмма.

Справочные данные

Размещено на Allbest.ru

...

Подобные документы

  • Разработка тестирующей программы для проверки знаний студента по математике на языке программирования Turbo Pascal с использованием подпрограмм "Vvod" (создание файла с вопросами и ответами) и "Initialization" (запуск тестирование и инициализация файла).

    курсовая работа [137,7 K], добавлен 28.03.2010

  • Необходимые компоненты и порядок составления текстового редактора. Текст программы решения задачи на языке программирования C++. Контрольный пример работы текстового редактора. Создание и произведение операции форматирования простого документа.

    курсовая работа [1,6 M], добавлен 03.09.2011

  • Проектирование арифметико-логических устройств (АЛУ). Отладка описания логических схем на языке VHDL. Классификация АЛУ по способу представления чисел, характеру использования элементов и узлов. Список стандартных функций АЛУ, его описание на языке VHDL.

    лабораторная работа [633,4 K], добавлен 11.03.2014

  • Создание модели информационной системы оптовой базы с помощью средства ModelMaker. Диаграммы последовательности, диаграмма классов, создание предварительного модуля проекта на языке Object Pascal. Документирование информационной системы оптовой базы.

    курсовая работа [516,4 K], добавлен 01.06.2016

  • Классификация и важнейшие принципы организации запоминающих устройств и систем памяти. Микросхемы оперативных (статических и динамических) и постоянных носителей информации. Их внутренняя структура, основы функционирования и тактовая диаграмма.

    реферат [706,5 K], добавлен 09.08.2011

  • Настройка текстового редактора MS Word. Создание текстового документа. Создание шаблона. Форматирование сложного документа. Создание списков и колонок текста. Создание таблиц. Создание формул. Связывание и внедрение объектов. Создание макросов.

    контрольная работа [36,6 K], добавлен 10.05.2004

  • Проектирование программного модуля в среде программирования Borland Delphi 7.0. Схемы алгоритмов решения задач по темам "Символьные переменные и строки", "Массивы", "Работа с файлами", "Создание анимации". Реализация программного модуля, код программы.

    отчет по практике [961,6 K], добавлен 21.04.2012

  • Иерархия запоминающих устройств ЭВМ. Микросхемы и системы памяти. Оперативные запоминающие устройства. Принцип работы запоминающего устройства. Предельно допустимые режимы эксплуатации. Увеличение объема памяти, разрядности и числа хранимых слов.

    курсовая работа [882,6 K], добавлен 14.12.2012

  • Разработка принципиальной электрической схемы электронного устройства ЭВМ. Построение модуля памяти ПЗУ на основе Intel 80286. Описание микросхемы, основных узлов и блоков. Расчет максимальной мощности, потребляемой устройством в рабочем режиме.

    курсовая работа [944,8 K], добавлен 26.12.2012

  • Требования к тестовому контролю. Разработка электронной контролирующей программы по спецдисциплинам, направленной на упрощение проведения проверочных работ. Инструкция пользователю и программисту. Определение затрат на создание тестирующей программы.

    курсовая работа [4,9 M], добавлен 15.10.2013

  • Сравнительный анализ статической и динамической памяти. Быстродействие и потребление энергии статической памятью. Объем памяти микросхем. Временные диаграммы чтения и записи памяти. Микросхемы синхронной и асинхронной памяти. Режимы модулей памяти.

    презентация [114,2 K], добавлен 27.08.2013

  • Разработка программы тестирования студентов по MS PowerPoint с кодом на языке Delphi. Создание алгоритма для решения функциональных требований задачи. Описание переменных, вспомогательных процедур, входных и выходных данных для реализации программы.

    курсовая работа [1,5 M], добавлен 21.09.2010

  • Общая характеристика и функциональные особенности микросхем динамической памяти SDRAM, их классификация и типы, внутреннее устройство. Основные требования к конструкции корпусов. Отношение между тактовым сигналом и циклами передачи данных памяти RDRAM.

    презентация [277,4 K], добавлен 27.08.2013

  • Описание разрабатываемой программы с точки зрения пользователя и программиста. Поэтапная разработка программной системы. Создание базы данных в Access. Разработка структуры классов. Создание структуры для хранения данных. Проектирование интерфейса.

    курсовая работа [1,4 M], добавлен 07.08.2013

  • Создание математической модели системы массового обслуживания на примере банка. Разработка имитационной модели на языке программирования С++. Блок-схема программы, перевод модели на язык программирования. Верификация и валидация имитационной модели.

    курсовая работа [630,5 K], добавлен 01.06.2015

  • Написание программы на языке Delphi - создание электронной записной книжки. Описание типов "запись", полей и массива, составление процедур. Создание приветствия и редактирование записи. Создание команды для вызова справки. Принцип работы программы.

    контрольная работа [17,9 K], добавлен 23.09.2010

  • Проектирование модульной структуры программы сетевого мессенджера, назначение модуля "frmMsg". Разработка главной формы и интерфейса пользователя программы. Проектирование модуля формы "About". Разработка методики тестирования и отладка программы.

    курсовая работа [606,7 K], добавлен 19.01.2012

  • Создание базы данных информационной системы для учета продаж бытовой техники и автоматизации документооборота в phpMyAdmin. Функциональная диаграмма IDEF0. Создание нового пользователя, таблиц, записей в таблице. Организация сайта на локальном сервере.

    курсовая работа [2,8 M], добавлен 11.05.2014

  • Временная диаграмма формирования знака на дисплее, изучение документации на микросхемы, отладка и тестирование прошивки с помощью интерфейса. Написание программ для построения многоуровневой модели на платформе лабораторного макета с микроконтроллером.

    курсовая работа [1,4 M], добавлен 25.04.2012

  • Создание программного модуля, выполненного на языке программирования VBA (Visual Basic for Applications) и позволяющего во введенном массиве символов удалить все повторные вхождения этих символов. Разработка пользовательского интерфейса. Код программы.

    курсовая работа [317,4 K], добавлен 11.10.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.