Проектирование микросхемы памяти
Создание текстового описания модуля проекта на языке 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