И снова здравствуйте! Решил попробывать свои силы в реализации viewtopic.php?f=60&t=97244 отсюда. Потратил пол дня на квартус и возникло 100500 вопросов Если кому не сложно поделитесь своим мнением по этим поводам: 1) попвробывал кинуть в схеме счетчик адреса 19 бит он занял 19 логических ячеек сам по себе!!! а у меня всего 240....хватит ли мне? мне ещё промежуточную защелку надо , мультиплексор 19 бит и т.д. ну там по пунктам все расписано... Хватит? или брать 570 ячеек? 2) Как понять тактование? у микрухи по краям 6 тактовых входов что это значит? они все запаралелены или кварц на платке http://www.ebay.com/itm/1PCS-NEW-EPM240 ... 3f225bed8b только к одному выводу подключен?
3) Как делать делители частоты? просто триггерами? а мне на 64 надо поделить не дофифа ли триггеров рисовать прийдётся?
4) как мне раз в 32 такта изобразить один тактовый прямоугольниц(короткий) 5) как в верилоге обращаться к питам уже существующего элемента на схематике? или пока не стоит заморачитваться и рисовать все в схематике? 6) мне нужно по кругу выдавать на выход числа 0...255(адреса) а потом начинать сначала 0...255....так восемь раз а потом на 8-й раз уже начать с 256 и до 512... для этого мой счетчик 19 битный будет иметь паралельную синхронную загрузку, я раз в 256 тактов буду перегружать его с предварительной ячейки а вот как мне потом инкрементнуть по фронту какого-то импульса эту промежуточную ячейку на 256? ставить сумматор и с выхода этого триггера на его же вход? это же сожрет тучу вентилей...а ещё куча делителей и т.д. 7) Если мне надо на выход подавать то что я получил на входе по 8-мибитной шине только прокрученную на 1-2-3-4-5-6-7 бит по кругу, мне можно это и на верилоге написать как кейсами - тоесть на мультиплексорах и можно напрямую из входных пинов кидать на выходные? триггеров там или регистров не нужно?
_________________ Что нас не убило сделало нас осторожней Не доверяйте русским лужам - это может быть вход в метро.
Рекомендую сперва реализовать синтез всех ваших "штучек-примочек", и лишь после этого выбирать в какую ПЛИС разместить(в ква есть возможнось автоматического назначения микросхемы). Желательно иметь под финал некоторый запас, ибо если к примеру сами назначите вывода (допустим развели уже плату, а проект не готов был), то может потребоваться еще некоторые ресурсы. Про делитель. Роль делителя очень хорошо выполняет счетчик, в вашем случае достаточно 6 разрядов (2^6=64). Относительно реализации семи (или восьми? из текста не слишком понятно) подсчетов до 255, и одного счета до 512. Можно сделать так: счетчик на 11 разрядов из которых 8- для счета 0-255. Далее схема сравнения (элемент 2И для самых старших разрядов), на выходе которой признак 0- первые подсчеты, 1- последний подсчет. Ну и наконец мультиплексор, если признак=0, то к значениям счетчика добавляем 0, иначе добавляем 1. Импульс раз в N тактов делается при помощи счетчиков и комбинаторных схем. Только учтите, выход комбинаторики д.б. синхронизирован тактовыми импульсами, если этого не сделать, то рискуете создать узел со случайным числом вызванным не одновременным сбросом триггеров счетчика.
_________________ Загружая на вход компьютера "мусор", на выходе получим "мусор^32". PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
//---------- кода------- always @(posedge clk) if (reset) begin out <= 18'b0 ; end else if (load) begin out <= data; end else if (enable) begin out <= out + 1; outp=out; end endmodule
что я не так делаю?
и даже если получится как мне это проверить в симуляторе?
Вложения:
Комментарий к файлу: проект four.rar [903.46 KiB]
Скачиваний: 316
_________________ Что нас не убило сделало нас осторожней Не доверяйте русским лужам - это может быть вход в метро.
_________________ Загружая на вход компьютера "мусор", на выходе получим "мусор^32". PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
дело в том что я-то как программист всё в этом коде понимаю...а вот в среде, настройках и окружении нет...
в общем если у кого есть желание и нервов помочь начинающему реализовать этот проектик в альтере или ксилинксе по телефону или аське или скайпе - я буду очень благодарен. Верилог показался более прозрачным чем vhdl... но учитывая что я пустая книга - как начлене меня учить так и поеду....собственно код и был взят чей-то готовый только подправлены разрядности и логика работы. например что не монимаю - есть у меня шина 16 бит и ещё 4 отдельно стоящие wire на схематике....как мне их обьединить в одну шину 20 бит?чтоб потом арифметику с этой шины делать или присвоение в регистр?копать assign ?
второе: есть у меня декларация output out[18:0]
в этом счетчике я завел регистр reg[18:0]
пишу что по позеджу инкрементировать этот reg <= reg+1;
а как мне этот рег назначить на выход? ведь вроде симулятор isim чтото показывает но выход всегда равен нулю вне зависимости от входных сигналов и тактов
а вправду как разобраться где регистр а где выход?
Можно назначить другое имя вместо out. Возможно, есть зарезервированное слово в верилоге. В строке 15 у вас назначен выход, а в строке 20 он обозначен как регистровый. Дальше ему нужно назначать неблокирущее присвоение (<=). Сам тоже сейчас разбираюсь с верилогом, а то всё графика, схемы, схемы...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения