Программируемая логика - это не так уж и сложно. Разберемся вместе.
Ответить

Помогите начинающему вникнуть в мир EPM240

Ср ноя 27, 2013 18:54:41

И снова здравствуйте!
Решил попробывать свои силы в реализации 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 бит по кругу, мне можно это и на верилоге написать как кейсами - тоесть на мультиплексорах и можно напрямую из входных пинов кидать на выходные? триггеров там или регистров не нужно?

Re: Помогите начинающему вникнуть в мир EPM240

Чт ноя 28, 2013 08:15:53

Рекомендую сперва реализовать синтез всех ваших "штучек-примочек", и лишь после этого выбирать в какую ПЛИС разместить(в ква есть возможнось автоматического назначения микросхемы). Желательно иметь под финал некоторый запас, ибо если к примеру сами назначите вывода (допустим развели уже плату, а проект не готов был), то может потребоваться еще некоторые ресурсы.
Про делитель. Роль делителя очень хорошо выполняет счетчик, в вашем случае достаточно 6 разрядов (2^6=64).
Относительно реализации семи (или восьми? из текста не слишком понятно) подсчетов до 255, и одного счета до 512. Можно сделать так: счетчик на 11 разрядов из которых 8- для счета 0-255. Далее схема сравнения (элемент 2И для самых старших разрядов), на выходе которой признак 0- первые подсчеты, 1- последний подсчет. Ну и наконец мультиплексор, если признак=0, то к значениям счетчика добавляем 0, иначе добавляем 1.
Импульс раз в N тактов делается при помощи счетчиков и комбинаторных схем. Только учтите, выход комбинаторики д.б. синхронизирован тактовыми импульсами, если этого не сделать, то рискуете создать узел со случайным числом вызванным не одновременным сбросом триггеров счетчика.

Re: Помогите начинающему вникнуть в мир EPM240

Чт ноя 28, 2013 17:53:12

Попробывал в квартусе и ксилинксе поработать...остановился на ксилинксе...

пробую написать на верилоге 19 битный счетчик с енейблом паралельной загрузкой и сбросом(все синхронно) и чтото как-то не могу понять где я торможу?

Код:
module cnt19erl(
    output [18:0] outp,
    input [18:0] data,
    input enable,
    input clk,
    input reset,
    input load);
   
reg [18:0] out;

//---------- кода-------
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) Скачиваний: 301

Re: Помогите начинающему вникнуть в мир EPM240

Чт ноя 28, 2013 20:35:18

Испытываю трудности с верилогом (надо конечно начать с ним общаться), но можно ведь и подглядеть что да как делают другие :idea:

Re: Помогите начинающему вникнуть в мир EPM240

Чт ноя 28, 2013 20:47:49

дело в том что я-то как программист всё в этом коде понимаю...а вот в среде, настройках и окружении нет...

в общем если у кого есть желание и нервов помочь начинающему реализовать этот проектик в альтере или ксилинксе по телефону или аське или скайпе - я буду очень благодарен.
Верилог показался более прозрачным чем vhdl... но учитывая что я пустая книга - как начлене меня учить так и поеду....собственно код и был взят чей-то готовый только подправлены разрядности и логика работы.
например что не монимаю - есть у меня шина 16 бит и ещё 4 отдельно стоящие wire на схематике....как мне их обьединить в одну шину 20 бит?чтоб потом арифметику с этой шины делать или присвоение в регистр?копать assign ?

второе:
есть у меня декларация output out[18:0]

в этом счетчике я завел регистр reg[18:0]

пишу что по позеджу инкрементировать этот reg <= reg+1;

а как мне этот рег назначить на выход? ведь вроде симулятор isim чтото показывает но выход всегда равен нулю вне зависимости от входных сигналов и тактов

часот в примерах вижу
Код:
 15 output [7:0] out;
 16 //---------- Ports--------------
 17 input [7:0] data;
 18 input enable, clk, reset;
 19 //---------- Variables--------
 20 reg [7:0] out;


вот такое но среда не компилирует - орет переназначение out некоректное! а вправду как разобраться где регистр а где выход?

Re: Помогите начинающему вникнуть в мир EPM240

Пн дек 02, 2013 13:23:01

Мне разобраться с EPM240 очень помог сайт http://marsohod.org/.

Re: Помогите начинающему вникнуть в мир EPM240

Пн дек 02, 2013 14:29:32

вот оттуда копи-паста счетчика-делителя и кукиш :)

Re: Помогите начинающему вникнуть в мир EPM240

Пт фев 21, 2014 20:27:46

clawham писал(а):как начлене меня учить

Чего-чего? :))

Re: Помогите начинающему вникнуть в мир EPM240

Пт фев 21, 2014 20:36:05

БГГгг...опечатко..начнете.....наверное...:))) а поредактировать не могу :(

Re: Помогите начинающему вникнуть в мир EPM240

Сб фев 22, 2014 16:50:28

clawham писал(а):дело в том что я-то как программист всё в этом коде понимаю...а вот в среде, настройках и окружении нет...


http://fpga.in.ua/
Зайдите, почитайте.

clawham писал(а):часот в примерах вижу
Код:
 15 output [7:0] out;
 16 //---------- Ports--------------
 17 input [7:0] data;
 18 input enable, clk, reset;
 19 //---------- Variables--------
 20 reg [7:0] out;


а вправду как разобраться где регистр а где выход?

Можно назначить другое имя вместо out. Возможно, есть зарезервированное слово в верилоге.
В строке 15 у вас назначен выход, а в строке 20 он обозначен как регистровый.
Дальше ему нужно назначать неблокирущее присвоение (<=).
Сам тоже сейчас разбираюсь с верилогом, а то всё графика, схемы, схемы... :)
Ответить