-
KIV
-
Автор темы
-
Не в сети
-
Давно я тут
-
-
Сообщений: 121
-
Спасибо получено: 5
-
-
|
Будет ли работать такая конструкция?
module abc( ... );
...
always @(posedge clk)
if(a==1)
b <= constanta1;
else
b <= constanta2;
always @(negedge clk)
c <= b + constanta3;
endmodule
Если нет, то как можно за время одного периода клока модифицировать переменную, а затем сразу же возвратить в другую переменную сумму первой модифицированной переменной и константы?
Можно ли в теле одного модуля неоднократно использовать блоки always с разными параметрами, или для синхронного дизайна лучше в одном блоке always применять многоэтажные/вложенные if/else, и в них уже задавать параметры для выполнения той, или иной операции, по разным условиям?
Можно ли задавать задержки между последовательно выполняемыми операциями внутри одного блока always?
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от KIV.
|
-
Leka
-
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
Можно использовать блокирующее присваивание: module abc( ... );
...
always @(posedge clk) begin
if(a==1)
b = constanta1;
else
b = constanta2;
c = b + constanta3;
end
endmodule
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Leka.
|
-
Leka
-
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
Можно ли в теле одного модуля неоднократно использовать блоки always с разными параметрами, или для синхронного дизайна лучше в одном блоке always применять многоэтажные/вложенные if/else, и в них уже задавать параметры для выполнения той, или иной операции, по разным условиям?
Присваивать одной переменной разные значения в разных always нельзя. Поэтому только многоэтажные if/else в одном always.
Можно ли задавать задержки между последовательно выполняемыми операциями внутри одного блока always?
Нельзя, это не синтезируется. Задание задержек используется только для симуляции.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Falcon
-
-
Не в сети
-
Осваиваюсь на форуме
-
-
Сообщений: 31
-
Спасибо получено: 8
-
-
|
А так разве не лучше? always @(posedge clk)
if (a) c <= constanta1 + constanta3;
else c <= constanta2 + constanta3;
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Falcon.
|
-
Leka
-
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
Для синтеза д/б без разницы (в смысле числа ЛЕ), но не проверял.
А если намечается увеличение числа скоростей, то лучше, наверно, использовать массив констант: always @(posedge clk) begin
b <= constantaB[a];
c <= constantaC[a];
endТогда с тем-же числом ЛЕ можно получить до 16 разных констант (скоростей). Но я против усложнения исходников на данном этапе. Сначала в железе должен заработать самый простой вариант.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
KIV
-
Автор темы
-
Не в сети
-
Давно я тут
-
-
Сообщений: 121
-
Спасибо получено: 5
-
-
|
Leka, Falcon, спасибо.
Еще вопрос. Нужно ли (и когда нужно) в многоэтажных if разделять блоки операций словами begin/end?
Допустим:
always@(...)
if(a==1)
begin
b <= c+d;
c <= d - x;
d <= d >>2;
end
if(y==z)
n <= r+s;
s <= o+p;
else
s <= r+s;
n <= o+p;
Два блока if. Какой из них написан правильно, какой не правильно?
Является ли эта конструкция "вложенным" if, или оба блока будут выполняться параллельно?
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от KIV.
|
-
Leka
-
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
Научитесь задавать такие вопросы Квартусу, и получать/расшифровывать от него ответы.
Хорошо разбираетесь в схемотехнике - смотрите синтезированные схемы.
Надоела схемотехника - изучаете в минимальном объеме поведенческий Верилог (используемый для симуляции), и экспериментируете в Icarus Verilog. Про Icarus Verilog есть на этом сайте.
marsohod.org/11-blog/113-icarus
А по поводу ключевых слов языка - для этого существуют учебники/примеры.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Leka.
|
-
KIV
-
Автор темы
-
Не в сети
-
Давно я тут
-
-
Сообщений: 121
-
Спасибо получено: 5
-
-
|
Leka пишет: А по поводу ключевых слов языка - для этого существуют учебники/примеры.
Иногда так хочется сказать ... спасибо... :lol:
Leka, я же не вынуждаю отвечать именно вас на каждый мой вопрос.
До симуляции я еще не дорос, нужно с базовыми понятиями разобраться хотя бы в первом приближении. Учебники читаю. Но не всегда их авторы обладают совокупностью "знает, и умеет". Мы уже как-то говорили об этом.
Совсем офф: Беда современного образования в том, что глобальный процесс обучения трансформировался из доброжелательного "вот это так-то, и так-то", в прагматичное "об этом можно почитать в инете". Стоит ли ограничивать тех, кто обращается за помощью в получении знаний, в живом общении? Разве не в этом главный смысл тематических форумов?
Конечно, если это не просьба за деньги выполнить курсовую работу. :woohoo:
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Falcon
-
-
Не в сети
-
Осваиваюсь на форуме
-
-
Сообщений: 31
-
Спасибо получено: 8
-
-
|
KIV пишет:
Leka пишет: А по поводу ключевых слов языка - для этого существуют учебники/примеры.
Иногда так хочется сказать ... спасибо... :lol:
Leka, я же не вынуждаю отвечать именно вас на каждый мой вопрос.
До симуляции я еще не дорос, нужно с базовыми понятиями разобраться хотя бы в первом приближении. Учебники читаю. Но не всегда их авторы обладают совокупностью "знает, и умеет". Мы уже как-то говорили об этом.
Совсем офф: Беда современного образования в том, что глобальный процесс обучения трансформировался из доброжелательного "вот это так-то, и так-то", в прагматичное "об этом можно почитать в инете". Стоит ли ограничивать тех, кто обращается за помощью в получении знаний, в живом общении? Разве не в этом главный смысл тематических форумов?
Конечно, если это не просьба за деньги выполнить курсовую работу. :woohoo:
Вы поймите, что есть определенные правила.
У вас тема этого топика как называется???
А какие вы вопросы задаете???
Поэтому мало кто будет вам отвечать и отвечать в полной раскрытой форме.
Вы создайте новую тему скажем Помогите освоить Verilog и вот там и задавайте подобные вопросы.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Leka
-
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
KIV пишет: "вот это так-то, и так-то"
Это уже называется - дрессировка, а не обучение. Открывается новая тема, типа "натаскивания по Верилогу", и приглашаются желающие. Меня там не будет.
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Leka.
|
Время создания страницы: 0.150 секунд