Verilog - Язык Проектирования Схем §5

preview_player
Показать описание
Verilog §5
Поведенческое описание:
0:01:15 - тактирование и сброс отрицательными сигналами;
0:05:45 - операторы case, casex, casez;
0:43:05 - регистровые регулярные устройства;
1:28:00 - начальная инициализация регистров;
1:30:50 - массивы регистров, оперативная память;
2:00:40 - автоматы.

Теория автоматов:

Другие видео на тему:
Verilog HDL - язык проектирования схем:
Подключаем к ПЛИС(FPGA):
Quartus Prime:
Цифровая схемотехника:
Рекомендации по теме
Комментарии
Автор

1:14:00 Что-то мне кажется там не Q<=15 должно быть, а Q<=W. Т.е. Сброс должен производится в максимальное значение(W), а условия сброса должно быть Q==0. Потому что у вас получился в инкримент у него 6 тактов, а в декримент 10. Какой-то кривой счетчик получился. Т.е. при декрименте должно быть так 0 5 4 3 2 1 0 5 4 3 2 1 0

sergbo
Автор

1:14:00 Это конечно не касается обучения верилог, но так для информации, счетчик получится медленным. Вот эти цепочки из мультиплексоров ограничивают максимальную рабочую частоту такого счетчика очень сильно. Лучше уже делать либо отдельно сдвиговый регистр, либо делать еще одну внутреннюю ступень памяти(триггеров). Да получится что вывод будет запаздывать на 1 такт, но все же частоту можно будет на входе держать выше. Ну или применять уже какие-то другие ухищрения. Потому как явно такой счетчик завалится на анализе таймингов.

sergbo
Автор

В сдвиговом регистре получается, что младший бит шины данных D заполняет в итоге шину Q. Т.е. если на шине D младший бит будет 1 то после сдвига все разряды шины Q будут единицы. Действительно ли всё так было задумано. Предлагаю сделать так Q<= {1'b0, Q[7:1]} для левого сдвига и Q <= {Q[6:0], 1'b0} для правого сдвига. Спасибо!

КонстантинВасинский
Автор

Подскажите,
module Praktika01 (output [16:0] y0, y1, y2, y3, input [14:0]d, input [1:0]a, input c, wr);
reg[16:0] rs [3:0];

always @(posedge c)
begin
if (wr)
rs [a] = {a, d};
end
assign y0 = rs[0], y1 = rs[1], y2 = rs[2], y3 = rs[3];
endmodule
подобный код на 1ч 34м 50с, но попробовал добавить шину адреса к шине данных. Результат в RTL - все как задумывалось, а в технолоджи мап шина адреса не присоединяется к шине данных со всеми вытекающими. Как это можно исправить. Или не важно, что в технолоджи мап? Спасибо.

VadimKapusta
Автор

Cyclone 4 от какой максимальной внешней CLK может тактироваться? Интересует обработчик Ethernet фреймов на скорости до 10 гигабит. Может ли он физически работать на такой скорости?

galchenko
Автор

Возможно неуместный вопрос, но есть ли возможность в верилоге работать с многомерными массивами? Для начала как то их задать, а затем какие то операции производить. Теперь после просмотра я представляю массив регистров, который по сути является одномерным как ни крути. Может быть существует какая то абстракция для этого?

TSkale
Автор

Вот уж твои ламповые, схемные переменные.... Q, X, B Пиздец как информативно... :) Хоть бы комментов добавил к исходнику, на который нет ссылки ;)
Будто по тихому смотришь в предварительно нарисованную схему и в верилоге ее описываешь....
Т.е. из высокоуровнего делаешь низкоуровневое... "Пропитый на самогонке ящик водки" напоминает :)))
+1 конечно, все равно тебя не исправить :))

al_xff_phreaker_us