Регистрация | Последние сообщения | Персональный список | Поиск | Настройка конференции | Личные данные | Правила конференции | Список участников | Top 64 | Статистика раздела | faq | Что нового v.2.3 | Чат
Skunk Forum - Техника, Наука, Общество » Форум разработчиков РЭА »
Подключение 16-ти разрядной памяти к ISA (PC/104) (страница 7)

Версия для печати (настроить)
Страницы: 1 2 3 4 5 6 7 8 9

Новая тема | Написать ответ

Подписаться

Автор Тема:   Подключение 16-ти разрядной памяти к ISA (PC/104)
forrest
Member

Сообщений: 74
Откуда: Россия, Москва
Регистрация: Январь 2002

написано 27 Апреля 2002 15:47ИнфоПравкаОтветитьIP

skunk
1. Я конечно сейчас проверю с минимальным Grid Size, но это не объясняет то, как может один и тот же проект работать по разному при компиляции с фильтром и без него. Да кстати, я не имею достаточного опыта работы с ПЛИС и поэтому не совсем в курсе, что значит временное моделирование, а что значит функциональное.
2. На счёт роста проекта ты не совсем так меня понял, дело не в его усложнении. Ну например есть две схемы, которые работают независимо друг от друга. Одна из них уже отлажена и работает, это проверено. Затем я начинаю делать другую (с первой она не связана ни как, кроме того, что обе находятся внутри одной ПЛИС). И тут первая, уже отлаженная схема перестаёт работать.
3. Как может быть схема стробирована, если разные её элементы работают асинхронно друг от друга, например на шине ISA сигнал SYSCLOCK поступает асинхронно по отношению ко всем остальным, однако при цикле доступа в 0 тактов ожидания сигнал 0WS нужно вырабатывать по заднему фронту SYSCLOCK. Но это я так для примера привёл. С ISA я уже давно разобрался.
Или ты имеешь ввиду, что стробирование необходимо как один из методов по устранению рисков сбоя в комбинационных схемах ?
4. Задержки, это например когда по одному входящему импульсу вырабатывается два выходящих с задержкой между ними. В моём случае сначала поступает сигнал WE/OE к памяти, затем через 25нс, когда гарантировано данные из памяти считаны (или записаны в неё) происходит увеличение счётчика адреса.
5. По поводу выхода комбинационной схемы. Каким образом тогда можно разрешать и запрещать тактовые импульсы внешнего тактового генератора ?

[Это сообщение изменил forrest (изменение 27 Апреля 2002 16:28).]

skunk
Злобный админ

Сообщений: 3309
Откуда: СССР, город-герой Ленинград
Регистрация: Ноябрь 2000

написано 27 Апреля 2002 17:40ИнфоПравкаОтветитьIP

1. Объясняет, потому что разводка прошла по другому. Еще раз повторю, схема у тебя асинхронная. Ты сам писал: на один вход элемента AND поступает разрешающий сигнал 1. На второй вход поступает частота от генератора. На выходе соответственно то же частота, с того момента как это разрешено. Если выход подключить например ко входу сдвигового регистра. Уверен, что у тебя таких мест еще вагон.

Временное моделирование - это с учетом внутренних задержек распространения сигнала в ПЛИС. Если схема полностью синхронная, то достаточно и функционального моделирования. И не забывай, что симулятор при временном моделировании не даст точных задержек, а покажет наибольшие возможные.

2. Ну ты же сам пишешь, что они находятся внутри одной ПЛИС. Ресурсов становится меньше, задержки возрастают.

3. Стробировать нужно своей внутренней тактовой частотой.

4. Нужно взять тактовую с периодом 25 нс и из нее сгенерировать четкую последовательность управляющих сигналов.

5. Ну есть куча способов, самый простой - простробируй выход комбинационной схемы на триггере. Можно поставить мультиплексор, переключающийся по не рабочему фронту, чтобы гарантировано попадать в середину периода.

На все эти вопросы ответ один. Сделай синхронную схему, все вопросы отпадут.

я не имею достаточного опыта работы с ПЛИС
Ну с цифровой схемотехникой хотя бы знаком? Асинхронные схемы - радиолюбительский подход начинающих схемотехников.

forrest
Member

Сообщений: 75
Откуда: Россия, Москва
Регистрация: Январь 2002

написано 27 Апреля 2002 21:28ИнфоПравкаОтветитьIP

1. Спасибо за разъяснения, думаю проблемма именно в асинхронной работе схемы, а именно в возникновении статических и динамических рисков сбоев, потому как другим способом логика работы схемы нарушена быть просто не может. Скорее всего этим можно объяснить, что каждый раз схема ведёт себя по разному, то есть риск сбоя то происходит в каком то узле схемы то нет.
2. Если использовать в качестве строба сигнал поступающий с обычного входа I/O, то при реализации синхронной схемы, например когда несколько триггеров срабатывают по одному CLK, на выходе триггеров сигналы всё равно появляются с различными задержками относительно друг друга где-то 0.3 - 0.6 нс. Насколько я понимаю это и есть тот случай когда возникает риск сбоя. Насколько существенным является такой сдвиг в выходных импульсах и если он существеннен, то возможно как то решить подобную проблему без использования входов Global CLK и Ded.Input ?

Добавление от 28 Апреля 2002 10:11:

skunk
Слушай я тут по всякому думал на счёт того, чтобы “простробировать выход комбинационной схемы на триггере” и так и не понял, что ты имел ввиду. Если например разрешающий сигнал, о котором я писал подать на вход D, обычного DFF, а частоту от внешнего тактового генератора на вход CLK, то на выходе то что получится ? В общем навыков мне не хватает, да и знаний наверное тоже, чтобы сходу симметричные схемы делать. Ты бы если не трудно подробнее описал этот способ подключения и если можно, то про мультиплексор тоже, а там бы я уже додумал, как всю схему править. Весь вечер вчера просидел в сети, но наглядных примеров раз да ничего. Всё что я смог сделать, это переработать несколько счётчиков на синхронный режим работы (когда загрузка во все разряды происходит по одному CLK) , да и то осталась проблема, о которой я вчера написал (импульсы на выходах появляются не совсем синхронно)

[Это сообщение изменил forrest (изменение 28 Апреля 2002 10:12).]

skunk
Злобный админ

Сообщений: 3309
Откуда: СССР, город-герой Ленинград
Регистрация: Ноябрь 2000

написано 28 Апреля 2002 10:44ИнфоПравкаОтветитьIP

forrest
Тут вообще-то диаграммы рисовать желательно, чтобы доходчиво объяснить. У меня если будет свободное время, я рисуночки сделаю.
А словами, ну сам подумай, у тебя на выходе AND - "0" при запрете тактов, значит разрешающую "1" надо подать сразу же после обратного фронта такта, тогда на выходе будет все чисто (это по поводу мультиплексора). Или просто выход AND подаешь на триггер, которой тактируешь той же частотой из которой формируешь сигнал, тычков не будет.

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

forrest
Member

Сообщений: 76
Откуда: Россия, Москва
Регистрация: Январь 2002

написано 28 Апреля 2002 12:47ИнфоПравкаОтветитьIP

skunk
На счёт мультиплексора и триггера кажется теперь понял, сейчас попробую вставить в схему.

Слушай а многоразрядные счётчики, например на 16 или 24 разряда нужно тоже синхронными делать или можно каскадировать синхронные 8 разрядные. Уж больно нагромождений много получается. К тому же у меня есть момент, где нужен нестандартный счётчик на 32759 (17*1927). Я его раньше делал из двух асинхронных на 17 и 1927, кстати скорее всего где-то здесь и происходил риск сбоя. Вот и хотел посоветоваться, если заменить эти асинхронные счётчики на пару синхронных (тех же 17 и 1927), или тут всё от схемы зависит, и опять где то может риск сбоя возникнуть ?

NiM
Рё-нин

Сообщений: 111
Откуда: ныне Санкт-Петербург
Регистрация: Март 2001

написано 28 Апреля 2002 15:40ИнфоПравкаОтветитьIP

Извиняюсь что вклинился - но тема известная.
Счётчики во FLEX нужно делать ТОЛЬКО синхронные,
с использованием CARRY примитива для формирования
логики ускореного переноса. Как и почему это
следует делать, подробно расписано в Application
Brief no. 124, 135. Расписано для 8000, но для
10К тоже сгодится.

skunk
Злобный админ

Сообщений: 3310
Откуда: СССР, город-герой Ленинград
Регистрация: Ноябрь 2000

написано 28 Апреля 2002 16:16ИнфоПравкаОтветитьIP

forrest
Я тебе раньше писал - используй lpm-макросы. Обязательно! Там в счетчике просто задашь разрядность какую нужно и все, компиллятор за тебя все сам сделает. А использование устаревших mf Альтерой крайне не рекомендуется, так как оптимизатор с ними плохо работает.

forrest
Member

Сообщений: 77
Откуда: Россия, Москва
Регистрация: Январь 2002

написано 28 Апреля 2002 21:48ИнфоПравкаОтветитьIP

Да я как то пока сам справлялся, без макросов, мне вполне хватало примитивов (наверное это от того, что программы тоже привык писать на низком уровне). Поэтому не сразу понял что такое функциональное моделирование, при схемном то вводе используется только временное. В принципе как оказалось это не так уж и сложно сделать синхронный счётчик на 32759. И если раньше, когда я делал 16 разрядный асинхронный счётчик для шины адреса максимальная частота с которой он мог работать не превышала 10МГц, то синхронный на Timing Analyzer показывает для флекса с градацией 4 около 60Мгц

Добавление от 29 Апреля 2002 11:31:

skunk
В сети нашёл интересную ссылку ссылка
Там говорится о необходимости создания нескольких тактовых сеток, например двух, сдвинутых друг относительно друга на четверть периода. Решение на самом деле очень полезное, однако там же говорится, что сдвиг на четверть периода легко реализуется при помощи двух D-триггеров. Я по всякому думал, и так и не понял как это можно реализовать. Может тебе где то подобная схемка встречалась ?

skunk
Злобный админ

Сообщений: 3294
Откуда: СССР, город-герой Ленинград
Регистрация: Ноябрь 2000

написано 29 Апреля 2002 13:37ИнфоПравкаОтветитьIP

forrest
Реализация такой сетки возможна при наличии в 2 раза большей частоты. Уверен, что для твоей схемы вполне будет достаточно сетки частот, сдвинутых на полпериода.

forrest
Member

Сообщений: 80
Откуда: Россия, Москва
Регистрация: Январь 2002

написано 05 Мая 2002 02:53ИнфоПравкаОтветитьIP

skunk
Для работы самой схемы мне действительно достаточно сетки частот, сдвинутых на полпериода, однако при анализе входных данных схема коррекции должна быть реализована именно с учетверённой частотой (данные считываются четыре раза и берётся среднее, это нужно для того, чтобы правильно определить состояние линии данных в момент, когда на ней происходит перепад)
Сделать это можно только имея сетку, сдвинутую относительно основной на четверть периода и соответственно обратную ей (сдвинутую относительно основной на 3/4). Я нашёл в нете схему на кольцевых счётчиках, то есть как раз с применением двух D-триггеров, но реализация её возможна только при учетверённой частоте. В моём случае это потребует при входной частоте 30МГц, генератора на 120МГц. Ты же пишешь, что частота нужна удвоенная. Боюсь, что просто 120МГц моя схема не потянет. Вот мне и стало интересно, как сделать то же самое, но всего с удвоенной частотой (т.е. 60МГц)

skunk
Злобный админ

Сообщений: 3317
Откуда: СССР, город-герой Ленинград
Регистрация: Ноябрь 2000

написано 05 Мая 2002 10:26ИнфоПравкаОтветитьIP

forrest
60 МГц делишь пополам и полученные 30 МГц стробируешь 60-ю передним и обратным фронтами. Получаешь две частоты по 30 МГц, сдвинутые на четверть периода.
А вот как анализировать входные данные - это еще вопрос. Обработка только по цифре с учетверенной частотой, ИМХО, недостаточно этого будет. Или я забыл для чего предназначен сей девайс, или ты об этом не писал.

forrest
Member

Сообщений: 84
Откуда: Россия, Москва
Регистрация: Январь 2002

написано 05 Мая 2002 14:27ИнфоПравкаОтветитьIP

skunk
А можно обойтись двумя триггерами и например сигнал строба сформировать с выхода элемента OR, который подключен например на вход разрешения счёта ENA. На вход OR подать передний и обратный фронт 60-ти ?

skunk
Злобный админ

Сообщений: 3321
Откуда: СССР, город-герой Ленинград
Регистрация: Ноябрь 2000

написано 05 Мая 2002 16:10ИнфоПравкаОтветитьIP

forrest
Чтоб я понял, что ты написал. Предлагаешь работу на тычках, что ли?

forrest
Member

Сообщений: 85
Откуда: Россия, Москва
Регистрация: Январь 2002

написано 13 Мая 2002 23:19ИнфоПравкаОтветитьIP

skunk
Я сам не понял, что тебя спросил. Частоты и так две получаются.

Слушай я вот по какому вопросу. Ранее мы обсуждали вопрос по поводу висячего входа КМОП. Там же было сказано, что надо цеплять его через резистор на VCC или GND, но вот что мне стало интересно, чем определяется минимальное значение нагрузки, например 10кОм. Фактически меня интересует, будет ли тот же результат, если снизить нагрузку например вдвое, до 4 - 5кОм ?

И ещё, столкнулся тут с такой ситуацией. Кое что проверял на ПЛИС, ну вообще чисто логика и всего то 3 - 4 вывода использовал. Компилирую проект. Всё нормально. Программирую ПЛИС, строка состояния доходит до 100%, но выводится сообщение, что загрузка прошла не удачно. Тут же запихиваю в эту ПЛИС другой проект, где использованы все пользовательские выводы и всё ОК. В чём тут дело, так и не понял.

Весельчак У
Moderator

Сообщений: 2094
Откуда: Санктъ-Питербурхъ
Регистрация: Декабрь 2000

написано 14 Мая 2002 01:12ИнфоПравкаОтветитьIP

Фактически меня интересует, будет ли тот же результат, если снизить нагрузку например вдвое, до 4 - 5кОм ?
Только потребление возрастёт, ежели это нагрузка, а ежели только вход - то никакой разницы (можно и напрямую к GND или Vcc).

forrest
Member

Сообщений: 87
Откуда: Россия, Москва
Регистрация: Январь 2002

написано 14 Мая 2002 03:08ИнфоПравкаОтветитьIP

Весельчак У
Резистор будет стоять между VCC и шиной, поддерживая тем самым уровень лог.1 на ней в момент, когда оба приёмопередатчика находятся в режиме ожидания. Так как его расценивать, как нагрузку ?

skunk
Злобный админ

Сообщений: 3378
Откуда: СССР, город-герой Ленинград
Регистрация: Ноябрь 2000

написано 14 Мая 2002 14:26ИнфоПравкаОтветитьIP

forrest
будет ли тот же результат, если снизить нагрузку например вдвое, до 4 - 5кОм ?
Получается не снизить, а увеличить. Результат тот же.

По второму вопросу - это мистика. ПЛИС какая, CPLD или FLEX?

NiM
Рё-нин

Сообщений: 118
Откуда: ныне Санкт-Петербург
Регистрация: Март 2001

написано 14 Мая 2002 20:28ИнфоПравкаОтветитьIP

По вопросу два от forrest я , кажется имею ответ.
1). Если это EPM7xxxSLCxx , возможны два варианта
а) В схеме очень "грязное" питание и на JTAG -раз-
ъёме нет pull-up резисторов 1к0. В таком случае
замечены подобные глюки. Правда, обязательным для
их воспроизводства условием является подача на
кристалл клока выше 10МГц во время программирования
б) Применена херовенькая панелька и проблемы с
питанием VCCIO.
2) Если это EPF10k10LC84-x и используется не-JTAG
конфигурирование - рекомендуется ВНИМАТЕЛЬНО по-
смотреть, не забыли ли мы про использование неко-
торых многофункциональных выводов в юзерском режиме.
Тема 1)б) так же актуальна.

Весельчак У
Moderator

Сообщений: 2100
Откуда: Санктъ-Питербурхъ
Регистрация: Декабрь 2000

написано 15 Мая 2002 01:34ИнфоПравкаОтветитьIP

forrest
Нагрузка.

forrest
Member

Сообщений: 90
Откуда: Россия, Москва
Регистрация: Январь 2002

написано 16 Мая 2002 04:30ИнфоПравкаОтветитьIP

Это именно EPF10k10LC84. Используется не JTAG. А насчёт пользовательских выводов, то я по всякому пробовал, вплоть до того, что в схеме было всего три I/O, внутри проекта был всего один tri буфер и больше ничего. На счёт панельки, то это самая обычная SMD панелька, в которой кстати ПЛИС стоит уже последних три месяца и по несколько раз на дню программируется, только как я писал ранее проект у меня всегда один и тот же был, и в нём использованы все 59 I/O.

skunk
Злобный админ

Сообщений: 3379
Откуда: СССР, город-герой Ленинград
Регистрация: Ноябрь 2000

написано 16 Мая 2002 15:34ИнфоПравкаОтветитьIP

forrest
А насчёт пользовательских выводов, то я по всякому пробовал, вплоть до того, что в схеме было всего три I/O
А все остальные глобальные, специальные, двойного назначения и т.п. были подключены в соответствии с rpt файлом?

forrest
Member

Сообщений: 92
Откуда: Россия, Москва
Регистрация: Январь 2002

написано 16 Мая 2002 22:46ИнфоПравкаОтветитьIP

skunk
RPT файл я никогда не смотрел. Выводы назначал при помощи Floorplan Editor, после чего компилировал проект и сразу же программировал ПЛИС. Быть может дело именно в неназначенных специальных и т.п. выводах ? Если можно в двух словах как это делается.

skunk
Злобный админ

Сообщений: 3384
Откуда: СССР, город-герой Ленинград
Регистрация: Ноябрь 2000

написано 16 Мая 2002 23:03ИнфоПравкаОтветитьIP

forrest
В двух словах, подключать согласно rpt файлу. Удобнее назначать выводы не в Floorplan Editor, а прямо в графическом редакторе, чтобы не перекомпиллировать. Иначе это не серьезный разговор.

Ваш ответ:

Коды форума
Смайлики


Ник:    Пароль       
Отключить смайлики
Страницы: 1 2 3 4 5 6 7 8 9

Все время MSK

Склеить | Разбить | Закрыть | Переместить | Удалить

Новая тема | Написать ответ
Последние сообщения         
Перейти к:

Свяжитесь с нами | skunksworks.net

Copyright © skunksworks.net, 2000-2018

Разработка и техническая поддержка: skunksworks.net


Рейтинг@Mail.ru Яндекс.Метрика