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

 
 
> Работа шины процессора 8088
justontime
сообщение Dec 17 2014, 09:56
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 254
Регистрация: 6-12-14
Из: СПб
Пользователь №: 84 003



В процессе выяснения причин сбоев моей схемы на 8088 процессоре все более отчетливо начало появляться подозрение, что проблема не в помехах, а в неправильных времянках самой схемы.

К сожалению, публиковать здесь схему нет особого смысла - вряд ли кто захочет тратить время на разбирательство с дикой смесью VHDL и схемного дизайна в Quartus'е, поэтому пока на словах:

Процессор работает в максимальном режиме с использованием 8288. На моей платке установлены 8088, 8284, 8288 и 74373 (защелка младших адресов по ALE). Далее все это уходит в отладочную плату FPGA, на которой, в частности, есть SRAM, используемая процессором.

Память подключена очень просто, без какого-либо дополнительного контроллера памяти. На /CS подается сигнал от дешифратора адреса, на /OE - /MRDC, на /WE - /AMWC. И еще по сигналу /MRDC шина данных памяти подключается к шине данных процессора (естественно, все происходит внутри FPGA).

Так вот, при анализе всей имеющейся информации по сбоям у меня появилась мысль попробовать удлинить время, на которое шина данных памяти подключена к процессору. Для этого я вместо сигнала /MRDC использовал сигнал DT/R.
И вот после этого схема проработала без сбоев всю ночь.

К сожалению, есть две проблемы:

1. При таком подходе не понятно, как отделить чтение памяти от чтения ввода-вывода, если адреса портов совпадают с адресным пространством памяти. Но даже это не проблема, проблема вот:
2. А почему это все-таки происходит ??? Первоначальная схема, по идее, правильная (даже, скажем, классическая). Процессор защелкивает данные при чтении по окончании T3, а сигнал /MRDC снимается заметно позже, т.е. проблемы изначально быть не должно. Конечно, могу подержать данные из памяти на шине на пол такта дольше, но это какой-то странный костыль получается...

Как уже мне неоднократно советовали в предыдущей теме, можно посмотреть на констрейны FPGA. Только с этим тоже есть пара проблем:

1. Исключительно по внутренним ощущениям, не должны имеющиеся цепи вносить такие задержки, что это так критично сказывается на вроде совершенно некритичном месте...
2. Ну не умею я работать с констрейнами, весь мой опыт с FPGA - десятка полтора часов в общей сложности sad.gif И опять таки, смотри п.1 - кажется мне, что здесь что-то намного проще...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
justontime
сообщение Dec 17 2014, 10:37
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 254
Регистрация: 6-12-14
Из: СПб
Пользователь №: 84 003



SM - спасибо за участие !

1. Попробую - хотя тоже на костыль похоже. Правда, слегка поэлегантнее sm.gif

2. Быстро погуглил - не понял, о чем речь. Не можете пальцем ткнуть, если не очень сложно (у меня FPGA - Altera) ?

3. Могу отмазаться красиво, но честно скажу причину - быстро не придумал, как понять направление шины адреса/данных в каждый отдельно взятый момент (а именно - как переключить пины FPGA на прием для чтения адреса с AD0-7 именно на нужное время, чтобы этот адрес защелкнуть внутри FPGA). Если же адресную составляющую убираем, то все становится очень просто.
Go to the top of the page
 
+Quote Post
SM
сообщение Dec 17 2014, 10:42
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(justontime @ Dec 17 2014, 13:37) *
2. Быстро погуглил - не понял, о чем речь. Не можете пальцем ткнуть, если не очень сложно (у меня FPGA - Altera) ?

Это про что? Про bus holder? Или про констрейн? Альтера (более-менее современная) умеет и то, и это.

Цитата(justontime @ Dec 17 2014, 13:37) *
3. Могу отмазаться красиво, но честно скажу причину - быстро не придумал, как понять направление шины адреса/данных в каждый отдельно взятый момент (а именно - как переключить пины FPGA на прием для чтения адреса с AD0-7 именно на нужное время, чтобы этот адрес защелкнуть внутри FPGA). Если же адресную составляющую убираем, то все становится очень просто.

Дык они всегда на приеме (кроме, как Вы их по DT/R или MRDC на передачу переключаете). Так что их не надо дополнительно переключать.

Код
always @(posedge ale)
  if (ale)
      addr[7:0] <= ad[7:0]


и все.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- justontime   Работа шины процессора 8088   Dec 17 2014, 09:56
- - SM   Проблема, скорее всего, в том, что FPGA слишком шу...   Dec 17 2014, 10:15
|- - justontime   Цитата(SM @ Dec 17 2014, 11:42) Это про ч...   Dec 17 2014, 10:49
|- - SM   Цитата(justontime @ Dec 17 2014, 13:49) П...   Dec 17 2014, 10:52
|- - justontime   Цитата(SM @ Dec 17 2014, 11:52) Так тем ж...   Dec 17 2014, 11:15
- - SM   Пожалуй, Вы правы, не все так просто, когда буфера...   Dec 17 2014, 11:26
- - justontime   На данный момент решил все-таки просто задержать M...   Dec 17 2014, 11:35
- - SM   Только смотрите, чтобы уже TRHAV не нарушить - есл...   Dec 17 2014, 11:45
|- - justontime   Цитата(SM @ Dec 17 2014, 12:45) Только см...   Dec 17 2014, 12:18
- - SM   Я предполагал, что все у Вас обойдется более прост...   Dec 17 2014, 12:37
|- - justontime   Цитата(SM @ Dec 17 2014, 13:37) Я предпол...   Dec 17 2014, 14:08
||- - SM   Цитата(justontime @ Dec 17 2014, 17:08) P...   Dec 17 2014, 14:16
|- - justontime   Цитата(SM @ Dec 17 2014, 15:37) Я предпол...   Dec 18 2014, 17:07
|- - SM   Цитата(justontime @ Dec 18 2014, 20:07) К...   Dec 18 2014, 17:33
- - justontime   Хотя я в (далеком) прошлом программист, мне очень ...   Dec 17 2014, 14:29
|- - SM   Цитата(justontime @ Dec 17 2014, 17:29) Х...   Dec 17 2014, 23:03
- - toweroff   а уписать 8088 в циклон не получится? и освободить...   Dec 17 2014, 15:15
|- - justontime   Цитата(toweroff @ Dec 17 2014, 16:15) а...   Dec 17 2014, 16:06
- - justontime   Во, я такой документ (правда, по VHDL) как раз иск...   Dec 18 2014, 06:15
- - justontime   Вряд ли кому это реально интересно, но для полноты...   Jan 24 2015, 12:48


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

 


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


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