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

 
 
> Работа шины процессора 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
Ответов
SM
сообщение Dec 17 2014, 12:37
Сообщение #2


Гуру
******

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



Я предполагал, что все у Вас обойдется более простой реализацией:

if (rising_edge(CLK)) then
RAMOn <= MRDCn;
end if;

то есть, просто задержка на 1 такт. Для этого следует указать set_input_delay по MRDCn, чтобы разводчик FPGA корректно все внутри сделал так, чтобы setup/hold у внутреннего триггера был выдержан.

А вот в Вашем случае, теоретически, может быть нарушение тайминга типа "Removal" или "Recovery" (на внутреннем триггере FPGA, на асинхронный сброс которого Вы заводите MRDCn) - поэтому, нужен констрейн на них (скорее всего, это задается тем же set_input_delay для MRDCn, но я тут не уверен).

Прикрепленное изображение


Цитата(justontime @ Dec 17 2014, 15:18) *
Позволю не согласиться - на мой взгляд,

А тут не с чем соглашаться, или нет, я не считал, сколько там это TCLCL-40нс, я просто предупредил.
Go to the top of the page
 
+Quote Post
justontime
сообщение Dec 18 2014, 17:07
Сообщение #3


Местный
***

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



Цитата(SM @ Dec 17 2014, 15:37) *
Я предполагал, что все у Вас обойдется более простой реализацией:

if (rising_edge(CLK)) then
RAMOn <= MRDCn;
end if;

то есть, просто задержка на 1 такт.


К сожалению, даже с этим изменением после 9 часов работы теста произошла все та же (насколько могу судить) ошибка... Я уже начинаю снова возвращаться к мысли, что дело может быть в случайных помехах, а не во времянках...

Пока думаю над тем, как поточнее локализовать причину, или хотя бы добиться большей регулярности сбоя.
Go to the top of the page
 
+Quote Post
SM
сообщение Dec 18 2014, 17:33
Сообщение #4


Гуру
******

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



Цитата(justontime @ Dec 18 2014, 20:07) *
К сожалению, даже с этим изменением после 9 часов работы теста произошла все та же (насколько могу судить) ошибка...

Значит, она не совсем там. Однозначно, на этом пути: память->FPGA->транслятор->проц, но она может быть на любом из этих участков... Нет там никаких случайных помех, с вероятностью 99%
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 - спасибо за участие ! 1. Попробую - хотя ...   Dec 17 2014, 10:37
|- - SM   Цитата(justontime @ Dec 17 2014, 13:37) 2...   Dec 17 2014, 10:42
|- - 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
|- - 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   Хотя я в (далеком) прошлом программист, мне очень ...   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 Текстовая версия Сейчас: 11th August 2025 - 20:09
Рейтинг@Mail.ru


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