реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Помогите реализовать двунапрваленную шину, EPM3128ATC144
_ZeroCold
сообщение May 5 2006, 14:35
Сообщение #1





Группа: Новичок
Сообщений: 8
Регистрация: 5-05-06
Пользователь №: 16 814



Доброе время суток !

Подскажите пожалуйста как в EPM3128ATC144-5 (Altera)
реализовать двунправленную 8ми битную шину данных ???

это мне нужно для записи чтения байта из внешнего статического ОЗУ

Я делаю так
1.Обозначаю выводы как (BIDIRС) которые непосредственно идут на выводы
(d0..d7) микросхемы.

2.внутри схемы подводит данные порт реализованный на эквиваленте 1533ИР23
3.а выводит 1533ИР27 (если поставить ир23 то ругается компилятор)

так вот читается всякая билеберда !!! (все остальные узлы схемы проверил экспириментально и все ок , проблема имеено в узле ввода вывода , т.е. в реализации двунаправленной шины)

а если исключить из схемы выводы которые идут на м икросхему памяти , тоесть игнорировать ее на время ,чтобы просто проверить передачу байта из регистра в регистр, то компилятор MaxPlus начинает ругаться на то что входы ИР27 оказались подключенными к выходам ИР23 , мол выходы ир23 должны быть подсоеденены только к BIDIRC
Go to the top of the page
 
+Quote Post
sazh
сообщение May 5 2006, 14:48
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Я чем просто BIDIR не устраивает?
Go to the top of the page
 
+Quote Post
maior
сообщение May 5 2006, 14:54
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 177
Регистрация: 21-10-04
Пользователь №: 948



в какой системе ведется проектирование?
Может проще воспользоваться библиотекой LPM модулей (tri-state buffer, etc)
или HDL (AHDL,VHDL,Verilog)?
Go to the top of the page
 
+Quote Post
_ZeroCold
сообщение May 5 2006, 15:12
Сообщение #4





Группа: Новичок
Сообщений: 8
Регистрация: 5-05-06
Пользователь №: 16 814



Цитата(sazh @ May 5 2006, 16:48) *
Я чем просто BIDIR не устраивает?


не совсем понял суть вопроса ???
если про отличие BIDIR от BIDIRC то я и так и так пробывал , всеравно читается не то что выводится

даже если взять и считать во входной регистр не переводя выходной регистр в третье сотояние , то читается совсем не то что выводится !!!


Цитата(maior @ May 5 2006, 16:54) *
в какой системе ведется проектирование?
Может проще воспользоваться библиотекой LPM модулей (tri-state buffer, etc)
или HDL (AHDL,VHDL,Verilog)?



Проектирование ведется в графическом редакторе встроенном в MaxPlus II
динственное что я нашел более менее на взгляд пригодное это LPM-BUSTRI (наверное это и имелось ввиду) но в этом варианте возникает проблема как подвести байт с шины result (LPM-BUSTRI)
к регистру ???
коспилятор все время ругается и говорит что эта шина должна быть подключена к трехстабильным элементам

а Так бы все было бы супер , токо вот незнаю к какому мне регистру подключится для чтения байта

Цитата(_ZeroCold @ May 5 2006, 17:05) *
Цитата(sazh @ May 5 2006, 16:48) *

Я чем просто BIDIR не устраивает?


не совсем понял суть вопроса ???
если про отличие BIDIR от BIDIRC то я и так и так пробывал , всеравно читается не то что выводится

даже если взять и считать во входной регистр не переводя выходной регистр в третье сотояние , то читается совсем не то что выводится !!!


Цитата(maior @ May 5 2006, 16:54) *
в какой системе ведется проектирование?
Может проще воспользоваться библиотекой LPM модулей (tri-state buffer, etc)
или HDL (AHDL,VHDL,Verilog)?



Проектирование ведется в графическом редакторе встроенном в MaxPlus II
динственное что я нашел более менее на взгляд пригодное это LPM-BUSTRI (наверное это и имелось ввиду) но в этом варианте возникает проблема как подвести байт с шины result (LPM-BUSTRI)
к регистру ???
коспилятор все время ругается и говорит что эта шина должна быть подключена к трехстабильным элементам

а Так бы все было бы супер , токо вот незнаю к какому мне регистру подключится для чтения байта





Для более точной ясности вылаживаю файл проекта , при такой схеме компилятор не ругается но читаестя во входной порт не то что выводится в выходной порт !!!
Прикрепленные файлы
Прикрепленный файл  TEST.rar ( 7.25 килобайт ) Кол-во скачиваний: 37
 
Go to the top of the page
 
+Quote Post
vetal
сообщение May 5 2006, 15:48
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



LPM_BUSTRI - то что вам нужно.
Возьмите MegaWizard и создайте нужную вам конфигурацию.
Выход с 3-м состояниям подсоедините к ногам, на result получите данные снятые с ножек, а на data будете подавать то, что вы ходите передать. Направлением передачи управляйте в соответствии с вашим алгоритмом.
Go to the top of the page
 
+Quote Post
Alex11
сообщение May 5 2006, 17:33
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Досточтимые сэры, вы бы хоть на диагностику смотрели. Там ошибка в 74374 N 7 - это тот, который стоит на входе с шины и работает на 74157 - там нельзя ставить деталь с тристабильным выходом, тем более, что он там и не нужен.
Go to the top of the page
 
+Quote Post
_ZeroCold
сообщение May 5 2006, 20:03
Сообщение #7





Группа: Новичок
Сообщений: 8
Регистрация: 5-05-06
Пользователь №: 16 814



Цитата(Alex11 @ May 5 2006, 20:33) *
Досточтимые сэры, вы бы хоть на диагностику смотрели. Там ошибка в 74374 N 7 - это тот, который стоит на входе с шины и работает на 74157 - там нельзя ставить деталь с тристабильным выходом, тем более, что он там и не нужен.


Я заменил 374 на 377(ИР27) она без тристабильных выходов и то же самое
Go to the top of the page
 
+Quote Post
_ZeroCold
сообщение May 5 2006, 20:49
Сообщение #8





Группа: Новичок
Сообщений: 8
Регистрация: 5-05-06
Пользователь №: 16 814



Цитата(vetal @ May 5 2006, 18:48) *
LPM_BUSTRI - то что вам нужно.
Возьмите MegaWizard и создайте нужную вам конфигурацию.
Выход с 3-м состояниям подсоедините к ногам, на result получите данные снятые с ножек, а на data будете подавать то, что вы ходите передать. Направлением передачи управляйте в соответствии с вашим алгоритмом.


Прошу прощение может быть за делитантский вопрос , а что значит сконфигурировать ???
у меня MegaWizard спросил только ширину шины и Bidirect/Undirect и все , после этого он сгенерил новый примитив LPM_BUSTRA который ведет себя точно также как и его родитель LPM_BUSTRI
или имеется ввиду что переписать исходный текст LPM_BUSTRI ???

я впринцыпе пробывал и то и другое
если просто переконфигурировал то компилятор ругается что к result должна быть подключена тристабильная шина!!!
Когда переписал исходник (LPM_BUSTRI) то читается всравно не то что пишется !!!
причем как то странно если писать число 0xFF или 0x7F то и читается то же ,а вот если чтото другое
даже 0x00 то читается совсем иное

исходник я переправил так:



PARAMETERS
(
LPM_WIDTH
);

SUBDESIGN lpm_bustri
(
tridata[LPM_WIDTH-1..0] : BIDIR;
data[LPM_WIDTH-1..0] : INPUT = VCC;
enabletr : INPUT = VCC;
enabledt : INPUT = VCC;
result[LPM_WIDTH-1..0] : OUTPUT;
)

VARIABLE
% Are the enable inputs used? %
IF (USED(enabledt)) GENERATE
dout[LPM_WIDTH-1..0] : TRI;
END GENERATE;
% IF (USED(enabletr)) GENERATE
din[LPM_WIDTH-1..0] : TRI;
END GENERATE;%

BEGIN

ASSERT (LPM_WIDTH > 0)
REPORT "Value of LPM_WIDTH parameter value must be greater than 0"
SEVERITY ERROR
HELP_ID LPM_BUSTRI_WIDTH;

ASSERT (USED(enabledt) & USED(data))
REPORT "lpm_bustri function requires data[] port -- Altera recommends using the TRI primitive instead"
SEVERITY ERROR
HELP_ID LPM_BUSTRI_DATA;

% Connect buffers if they are used %
IF (USED(enabledt)) GENERATE
dout[].oe = enabledt;
dout[] = data[];
tridata[] = dout[];
END GENERATE;

IF (USED(enabletr)) GENERATE
% din[].oe = enabletr;
din[] = tridata[];
result[] = din[];%
result[] = tridata[];
ELSE GENERATE
result[] = tridata[];
END GENERATE;
END;




Ктото практически делал двунаправленную шину на чипе EPM3128ATC144-5 (Altera) ???
Go to the top of the page
 
+Quote Post
Alex11
сообщение May 5 2006, 21:11
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Ну как же то же самое, когда все работает с точностью до требуемого. Вот правильный файл с диаграммами. Я попутно удалил лишний пин (lpt_pin16), наложенный на lpt_pin1 и немного раздвинул провода, чтобы можно было понять, что куда идет.
Прикрепленный файл  test.zip ( 37.02 килобайт ) Кол-во скачиваний: 184
Go to the top of the page
 
+Quote Post
_ZeroCold
сообщение May 11 2006, 14:59
Сообщение #10





Группа: Новичок
Сообщений: 8
Регистрация: 5-05-06
Пользователь №: 16 814



Всем большое спасибо за помощь , все работает
ошибка была в заниженном питании микросхемы !!!
точнее для нее то нормально было а вот для LPT порта мало для еденицы !!!
вот и был трабл с инверсным битом регистра сотояния !!!
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 21:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01917 секунд с 7
ELECTRONIX ©2004-2016