Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программируемая логика: ПЛИС, ПАИС
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
Olejikstu
8 / 8 / 3
Регистрация: 27.09.2010
Сообщений: 50
#1

Каскадирование в VHDL

06.10.2011, 13:52. Просмотров 2307. Ответов 2
Метки нет (Все метки)

Здравствуйте уважаемые форумчане! В университете начал изучать VHDL. Но так вышло что на лекциях нам объяснили только основы языка,в духе общая структура проекта, именно это была последняя тема...Но вот на лабораторных работах нужно уже писать проекты...Пусть простые,но все же, для человека не знающего VHDL большой -это тяжело. А в силу перехода на болонскую систему, не могу ждать пока объяснят нужный материал в лекциях, поэтому вынужден был обратиться за помощью к книгам и онлайн ресурсам. Но вот не особо то и продвинулся я...

Со вступительным словом вроде бы все. Приступлю тогда к разъяснению моей проблемы. Задание звучит следующим образом:
  1. Синтезировать дешифратор, используя макрофункции! Покопавшись немного в литературе,я вроде бы,как понял что являет собой макрофункция. Поэтому полез в библиотеки макрофункций и нашел нужные мне логические элементы , да бы синтезировать данное устройство и вот что вышло:

    Код
    LIBRARY Altera;
    
    USE Altera.maxplus2.ALL;
    
    library IEEE;
    
    use IEEE.std_logic_1164.all;
    
    ENTITY sss IS
    
    GENERIC (IN_WIDTH : INTEGER := 2;
    
    OUT_WIDTH : INTEGER := 4);
    
    PORT (SIGNAL X : IN STD_LOGIC_VECTOR (0 TO 1);
    
    SIGNAL Y : OUT STD_LOGIC_VECTOR(0 TO 3));
    
    END sss;
    
    ARCHITECTURE dec_arch OF sss IS
    
    SIGNAL L : STD_LOGIC_VECTOR (0 TO 3);
    
    BEGIN
    
    L(0) <= X(0);
    
    L(1) <= X(1);
    
    not0 :
    
    a_7404 PORT MAP (X(0), L(2));
    
    not1 :
    
    a_7404 PORT MAP (X(1), L(3));
    
    and0 :
    
    a_7408 PORT MAP (L(2), L(3), Y(0));
    
    and1 :
    
    a_7408 PORT MAP (L(1), L(2), Y(1));
    
    and2 :
    
    a_7408 PORT MAP (L(0), L(3), Y(2));
    
    and3 :
    
    a_7408 PORT MAP (L(0), L(1), Y(3));
    
    END dec_arch;
    Все работает верно. Но вот проблема возникла со второй частью задания.
  2. Реализовать каскад данных устройств.

Почесав немного свою качерышку(голову),я приступил к поиску информации,где бы рассказывалось про то как создать несколько одинаковых устройств и объединить их входные и выходные порты... Но мои поиски не дали особых результатов. Поэтому,я обращаюсь к вам, с просьбой показать как создать 2 идентичных устройства и объединить выходы первого с входами второго. Неважно что это будут за устройства, просто хочу понять как делать копии устройств и их каскадирование на языке VHDL. Заранее огромное спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2011, 13:52
Ответы с готовыми решениями:

Каскадирование дешифраторов
Как из двух дешифраторов 2х4 сделать один дешифратор 3х8?

Каскадирование дешифраторов
Всем добрый вечер! Столкнулся со следующей задачей: необходимо из нескольких...

Каскадирование мультиплексоров 2-1 для 16-1
Всем добрый вечер. Возник вопрос: как из n мультиплексоров 2-1 создать...

VHDL
для моделирование использую Active-HDL, и возникла такая проблема, нужно...

VHDL. D-триггер
Помогите пожалуйста описать на VHDL D-триггер, который находится в Process_2. ...

2
Caruso
29 / 29 / 3
Регистрация: 22.03.2010
Сообщений: 106
06.10.2011, 21:32 #2
А в какой среде вы пишете код?
Пользуюсь Active-HDL. Так вот когда там пишешь код на VHDL и компилируешь, создается библиотека пректа, где каждый отдельный (написанный вами VHDL) файл представлен в виде компанента в графической оболочке. Можно на главный файл проекта поместить несколько ваших компанентов, а затем откомпилировать и посмотреть VHDL код главной страницы.
Может это вам поможет
0
Olejikstu
8 / 8 / 3
Регистрация: 27.09.2010
Сообщений: 50
07.10.2011, 20:31  [ТС] #3
Среда разработки Quartus. Но вроде бы проблему я решил, следующим образом:
Код
LIBRARY Altera;
USE Altera.maxplus2.ALL;
library IEEE;
use IEEE.std_logic_1164.all;

ENTITY decoder1 IS 
GENERIC	(IN_WIDTH : INTEGER := 2;
		 OUT_WIDTH : INTEGER := 4);
PORT	(XA : IN STD_LOGIC_VECTOR (0 TO 1);
	 	 YA : OUT STD_LOGIC_VECTOR(0 TO 3));
END decoder1;
ARCHITECTURE dec_archa OF decoder1 IS

	SIGNAL LA : STD_LOGIC_VECTOR (0 TO 3);

BEGIN
	LA(0) <= XA(0);
	LA(1) <= XA(1);
	not0 : 
		a_7404 PORT MAP (XA(0), LA(2));
	not1 : 
		a_7404 PORT MAP (XA(1), LA(3));
	and0 : 
		a_7408 PORT MAP (LA(2), LA(3), YA(0));
	and1 : 
		a_7408 PORT MAP (LA(1), LA(2), YA(1));
	and2 : 
		a_7408 PORT MAP (LA(0), LA(3), YA(2));
	and3 : 
		a_7408 PORT MAP (LA(0), LA(1), YA(3));

END dec_archa;

LIBRARY Altera;
USE Altera.maxplus2.ALL;
library IEEE;
use IEEE.std_logic_1164.all;

ENTITY decoder IS 
GENERIC	(IN_WIDTH : INTEGER := 3;
		 OUT_WIDTH : INTEGER := 8);
PORT	(X : IN STD_LOGIC_VECTOR (0 TO 2);
	 	 Y : OUT STD_LOGIC_VECTOR(0 TO 7));
END decoder;

ARCHITECTURE dec_arch OF decoder IS
component decoder1 IS 
GENERIC	(IN_WIDTH : INTEGER := 2;
		 OUT_WIDTH : INTEGER := 4);
PORT	(XA : IN STD_LOGIC_VECTOR (0 TO 1);
	 	 YA : OUT STD_LOGIC_VECTOR(0 TO 3));
END component decoder1;
	SIGNAL L : STD_LOGIC_VECTOR (0 TO 3);
BEGIN
ss1: decoder1 port map (x(0 to 1),y(0 to 3));
ss2: decoder1 port map (x(1 to 2),y(4 to 7));
END dec_arch;
Связи, я не правильно подсоединил линии связи, но главное, разобрался с тем,как создавать 2 идентичных устройства и соединить их,может кому пригодиться... если нана будет-то могу скинуть совсем правильный вариант,чуть позже
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2011, 20:31

VHDL. Мультиплексор
1.Описать на поведенческом VHDL двоичный дешифратор «1 из n» с входным портом...

Задание на VHDL
К плис подключены 6 светодиодов , каждый имеет свой выход, переключать их в...

VHDL-Verilog
Есть задание,реализовать защелку с входом разрешения. Есть вот такая таблица...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru