|
0 / 0 / 0
Регистрация: 04.05.2009
Сообщений: 28
|
|
Verilog. Первые шаги.19.09.2013, 00:33. Показов 96683. Ответов 123
Метки нет (Все метки)
Всем привет.
Светодиодом помигал, динамическую индикацию на 7-ми сегментнике испробовал. Захотелось добавить в HelloWorld несколько последовательно соединенных двоично-десятичных счетчиков. Состряпал для этого модуль bcd счетчика. Не могу понять как его прикрутить к основному модулю. Цель: заставить бегать цифры от 0 до 9 хотя бы на одном из индикаторов. Пробовал сначала прикрутить тетрады data к отдельным счетчикам - не получилось, сейчас выделил для этого r1 - тоже ни в какую изменяться не хочет. Что я делаю не так ? module bcd_counter(CLK, DOUT); input CLK; output [3:0] DOUT; reg [3:0] data; assykn DOUT = data; always @(posedge CLK) begin if(data > 9) data = 0; else data = data + 1; end endmodule module lcd ( input wire clk, output reg [7:0] en, output reg[7:0] seg ); reg [31:0] data = h12345678; reg [31:0] counter; wire [2:0] tid_num; assykn tid_num = counter[17:15]; reg [3:0] tid; always @(posedge clk) begin counter=counter+1; end reg [3:0] r1; wire [3:0] w_r1; assykn w_r1 = r1; wire w_clk; assykn w_clk = counter[20]; bcd_counter cnt_1(w_clk, w_r1); always @(tid_num) begin case(tid_num) 0: en = 8b11111110; 1: en = 8b11111101; 2: en = 8b11111011; 3: en = 8b11110111; 4: en = 8b11101111; 5: en = 8b11011111; 6: en = 8b10111111; 7: en = 8b01111111; endcase end always @(tid_num) begin case(tid_num) 0: tid = r1[3:0]; 1: tid = data[7:4]; 2: tid = data[11:8]; 3: tid = data[15:12]; 4: tid = data[19:16]; 5: tid = data[23:20]; 6: tid = data[27:24]; 7: tid = data[31:28]; endcase end always@(tid) begin case(tid) 4b0000: seg=8b1100_0000; 4b0001: seg=8b1111_1001; 4b0010: seg=8b1010_0100; 4b0011: seg=8b1011_0000; 4b0100: seg=8b1001_1001; 4b0101: seg=8b1001_0010; 4b0110: seg=8b1000_0010; 4b0111: seg=8b1111_1000; 4b1000: seg=8b1000_0000; 4b1001: seg=8b1001_0000; 4b1010: seg=8b1000_1000; 4b1011: seg=8b1000_0011; 4b1100: seg=8b1100_0110; 4b1101: seg=8b1010_0001; 4b1110: seg=8b1000_0110; 4b1111: seg=8b1000_1110; endcase end endmodule Всё это действо для того, чтобы понять иерархию модулей. Следующим шагом хотел выделить модуль lcd в отдельный субмодуль (в духе видеокарты), чтобы отображал регистр из корневого модуля. Но пока затыка...
0
|
|
| 19.09.2013, 00:33 | |
|
Ответы с готовыми решениями:
123
Первые шаги с ATMEGA8-16PU, и первые ссадины Первые шаги Первые шаги |
|
0 / 0 / 0
Регистрация: 04.05.2009
Сообщений: 28
|
|
| 22.10.2013, 00:30 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 02.05.2013
Сообщений: 170
|
|
| 22.10.2013, 00:36 | |
|
открыл проект в 11м квартусе, действительно, чиппланер для семейства поддерживается
The Shyp Planner does not support the current assyknment divice family "MAX3000A". Use the Timing Closure Floorplan. мне пишет 9 квартусе.
0
|
|
|
0 / 0 / 0
Регистрация: 04.05.2009
Сообщений: 28
|
|
| 22.10.2013, 00:49 | |
|
в платной версии наверно можно потроха перекидывать из банка в банк. в халявной похоже только ногами играться.
0
|
|
|
0 / 0 / 0
Регистрация: 02.05.2013
Сообщений: 170
|
|
| 22.10.2013, 00:57 | |
|
хе, заметил, что LogicTosk не поддержан в 11м! и в чём же тогда смысл чиппланера? решать проблемы вроде возникшей у Вас ещё можно, но вот таскать по чипу регионы не получится :( с другой стороны, как-то пох. никогда не пользовал чиппланер в своих проектах, так только экспериментировал, смотрел как работает :)
0
|
|
|
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 931
|
|||||||||||
| 30.11.2013, 16:22 | |||||||||||
|
Дабы не плодить тем, спрошу здесь.
Никто, не подскажет как описать на verilog пирамидальную структуру? К примеру имеем:
Или,другими словами, имеем задержку сигнала на 3 функциях(add). Можно переписать функцию так:
Тут уже лучше, задержка всего на 2 функции (add). Тут конечно, еще могут возникнуть вопросы к коду, но я писал его для примера. Вопрос в том, как соединять такие "пирамидальные" структуры. То есть, если у нас не 4 входа, а скажем 10, 16 и т.д., это же замашешся прописывать что с чем соеденяеться. У меня пока возникла идея, что бы создать макромодули с 4, 8, 16 и т.д., входами, а уж их комбинировать между собой, так что бы получить нужное кол-во входов. Но, возможно существует способ лучше?
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
|
||
| 30.11.2013, 16:47 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 931
|
|
| 30.11.2013, 17:23 | |
|
Спасибо, проверю во что синтезируется. Но все же интересует, соединение в пирамиду ?
0
|
|
|
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
|
||
| 30.11.2013, 18:19 | ||
ЗЫ Fmax у обоих дизайнов получился одинаковым, синтезатор оптимизировал комбинаторную логику ...
0
|
||
|
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 931
|
|
| 30.11.2013, 20:20 | |
|
И да и нет :). Вопрос в том, что если нам надо сложить Y=a1+a2+...+an. Пусть n для удобства будет кратно 2, но больше 4 ( скажем 16, 32), то Fmax, для первого дизайна будет меньше. Но вот как описать второй дизайн на верилоге, что бы не писать что вроде:
Y= ((a1+a2)+(a3+a4))+((a5+a6)+(a7+a8)) Возможно есть более элегантные решения. Пытался искать по тегу Binary Tree Verilog, но ничего вразумительного не нашел. ЗЫ На месте add может быть любая другая функция.
0
|
|
|
0 / 0 / 0
Регистрация: 04.05.2009
Сообщений: 28
|
|
| 01.12.2013, 22:26 | |
|
OtyxPM, у тебя не было проблем с прошивкой epcs4, с той что стоит на мини платке ? У меня стирается (дефолтную прошивку снес), бланкчек без проблем, вроде и пишет (ошибок не выдает кактус), НО циклон с новой прошивой не стартует.
http://**************************/download/file.php?id=17513&sid=01efcf091ab565ddb5 d66dc1co9d77cf
0
|
|
|
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 931
|
|
| 01.12.2013, 22:51 | |
|
Я не много при забыл, но у altera надо провести небольшую пляску с бубном что бы получить прошивку для epcs. А также если есть ихние мегафункции, то возможно прошивка вообще не стартует.
ЗЫ Предлагаю вам зашить какой нибудь хело-ворд на элементарных функциях, что бы убедиться что нет косяков с самим проектом.
0
|
|
|
0 / 0 / 0
Регистрация: 04.05.2009
Сообщений: 28
|
||
| 01.12.2013, 22:54 | ||
был гемор с AS на другой отладке, но там хоть кактус ругался. проблема была в заниженном питании. с этой отладкой вообще никаких ругательств со стороны кактуса.
0
|
||
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
||
| 01.12.2013, 22:55 | ||
А если в ОЗУ - то пишет (прошивка *.sof) и стартует? Если с этим нормально, то для записи во флэшку EPCS4 надо: в-первых, другой файл (*.pof), во-вторых - другой разъём на плате, в-третьих - в прошивальщике выбрать интерфейс Active Serial вместо JTAG.
0
|
||
|
0 / 0 / 0
Регистрация: 04.05.2009
Сообщений: 28
|
|
| 01.12.2013, 22:58 | |
|
флюс конечно китайцы поленились отмыть местами. отдраю, посмотрим...
блин с усб-бластером похоже проблема. сейчас AS на обоих отладках одинаково не работает. прогер шьет, проверяет, но нет старта циклонов.
0
|
|
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
||
| 01.12.2013, 23:44 | ||
Кстати, в моём USB Btosterе был непропай: светодиодик плохо контачил (хотя прозванивался!). Пропаял - с тех пор работает надёжно. А поскольку AS и JTAG пины у Циклона (и, соответственно, Бластера) разные - возможен непропай у AS-пинов или дорожек к ним. И все пути питания на всякий случай пропаять. См.схему, которую я утром присылал.
0
|
||
|
0 / 0 / 0
Регистрация: 04.05.2009
Сообщений: 28
|
|
| 02.12.2013, 00:12 | |
|
на демо-платке есть светик. гореть он должен когда nCONF-DONE = 0. Сейчас после сброса питалова он горит постоянно. Гаснет когда зальешь прошиву через jtag, и она (эта прошивка) стартанет. если снова сбросишь питалово - загорается вновь. раньше такого не было (прошил через AS и он погас. включил питалово, считал циклон прошиву из epcs4, запустился и снова светик погас).
что творится не пойму пока... может это все таки со стороны циклонов идет ? самый прикол, что прошивает ведь и верификацию проходит без ошибок.
0
|
|
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
|||
| 02.12.2013, 00:29 | |||
0
|
|||
|
0 / 0 / 0
Регистрация: 04.05.2009
Сообщений: 28
|
|
| 02.12.2013, 00:54 | |
|
это про другую платку, не ту что у тебя.
http://**************************/download/file.php?id=17514&sid=01efcf091ab565ddb5 d66dc1co9d77cf он у меня постоянно горит после подачи питания. гаснет только если прошить через jtag. http://**************************/download/file.php?id=17515&sid=01efcf091ab565ddb5 d66dc1co9d77cf Либо что-то случилось, либо одно из двух.... (С) "Колобки"
0
|
|
|
0 / 0 / 0
Регистрация: 04.05.2009
Сообщений: 28
|
|
| 02.12.2013, 21:49 | |
|
странно. загрузился под линуксом. попробовал прошить 13-м кактусом. ожили обе платки.
что было так и не понял.
0
|
|
|
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 931
|
|
| 02.12.2013, 21:52 | |
|
shurup а что за плата, ссылочку можно?
0
|
|
| 02.12.2013, 21:52 | |
|
Первые шаги с AVR
первые шаги Первые шаги первые шаги в c# Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|