Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА:

Система управления синхронным многофазным электрод 10 года 7 мес. назад #5235

  • KIV
  • 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.

Система управления синхронным многофазным электрод 10 года 7 мес. назад #5236

  • Leka
  • Leka аватар
  • Не в сети
  • Живу я здесь
  • Живу я здесь
  • Сообщений: 635
  • Спасибо получено: 54
Можно использовать блокирующее присваивание:
module abc( ... );
...
always @(posedge clk) begin
  if(a==1)
    b = constanta1;
  else
    b = constanta2;
  c = b + constanta3;
end
endmodule

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Leka.

Система управления синхронным многофазным электрод 10 года 7 мес. назад #5237

  • Leka
  • Leka аватар
  • Не в сети
  • Живу я здесь
  • Живу я здесь
  • Сообщений: 635
  • Спасибо получено: 54

Можно ли в теле одного модуля неоднократно использовать блоки always с разными параметрами, или для синхронного дизайна лучше в одном блоке always применять многоэтажные/вложенные if/else, и в них уже задавать параметры для выполнения той, или иной операции, по разным условиям?

Присваивать одной переменной разные значения в разных always нельзя. Поэтому только многоэтажные if/else в одном always.

Можно ли задавать задержки между последовательно выполняемыми операциями внутри одного блока always?

Нельзя, это не синтезируется. Задание задержек используется только для симуляции.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Система управления синхронным многофазным электрод 10 года 7 мес. назад #5238

  • Falcon
  • Falcon аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 31
  • Спасибо получено: 8
А так разве не лучше?
always @(posedge clk)
if (a) c <= constanta1 + constanta3;
else c <= constanta2 + constanta3;

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Falcon.

Система управления синхронным многофазным электрод 10 года 7 мес. назад #5239

  • Leka
  • Leka аватар
  • Не в сети
  • Живу я здесь
  • Живу я здесь
  • Сообщений: 635
  • Спасибо получено: 54
Для синтеза д/б без разницы (в смысле числа ЛЕ), но не проверял.
А если намечается увеличение числа скоростей, то лучше, наверно, использовать массив констант:
always @(posedge clk) begin
    b <= constantaB[a];
    c <= constantaC[a];
end
Тогда с тем-же числом ЛЕ можно получить до 16 разных констант (скоростей). Но я против усложнения исходников на данном этапе. Сначала в железе должен заработать самый простой вариант.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Система управления синхронным многофазным электрод 10 года 7 мес. назад #5240

  • KIV
  • 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.

Система управления синхронным многофазным электрод 10 года 7 мес. назад #5241

  • Leka
  • Leka аватар
  • Не в сети
  • Живу я здесь
  • Живу я здесь
  • Сообщений: 635
  • Спасибо получено: 54
Научитесь задавать такие вопросы Квартусу, и получать/расшифровывать от него ответы.
Хорошо разбираетесь в схемотехнике - смотрите синтезированные схемы.
Надоела схемотехника - изучаете в минимальном объеме поведенческий Верилог (используемый для симуляции), и экспериментируете в Icarus Verilog. Про Icarus Verilog есть на этом сайте.
marsohod.org/11-blog/113-icarus
А по поводу ключевых слов языка - для этого существуют учебники/примеры.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Leka.

Система управления синхронным многофазным электрод 10 года 7 мес. назад #5242

  • KIV
  • KIV аватар Автор темы
  • Не в сети
  • Давно я тут
  • Давно я тут
  • Сообщений: 121
  • Спасибо получено: 5

Leka пишет: А по поводу ключевых слов языка - для этого существуют учебники/примеры.

Иногда так хочется сказать ... спасибо... :lol:
Leka, я же не вынуждаю отвечать именно вас на каждый мой вопрос.
До симуляции я еще не дорос, нужно с базовыми понятиями разобраться хотя бы в первом приближении. Учебники читаю. Но не всегда их авторы обладают совокупностью "знает, и умеет". Мы уже как-то говорили об этом.
Совсем офф: Беда современного образования в том, что глобальный процесс обучения трансформировался из доброжелательного "вот это так-то, и так-то", в прагматичное "об этом можно почитать в инете". Стоит ли ограничивать тех, кто обращается за помощью в получении знаний, в живом общении? Разве не в этом главный смысл тематических форумов?
Конечно, если это не просьба за деньги выполнить курсовую работу. :woohoo:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Система управления синхронным многофазным электрод 10 года 7 мес. назад #5243

  • Falcon
  • Falcon аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 31
  • Спасибо получено: 8

KIV пишет:

Leka пишет: А по поводу ключевых слов языка - для этого существуют учебники/примеры.

Иногда так хочется сказать ... спасибо... :lol:
Leka, я же не вынуждаю отвечать именно вас на каждый мой вопрос.
До симуляции я еще не дорос, нужно с базовыми понятиями разобраться хотя бы в первом приближении. Учебники читаю. Но не всегда их авторы обладают совокупностью "знает, и умеет". Мы уже как-то говорили об этом.
Совсем офф: Беда современного образования в том, что глобальный процесс обучения трансформировался из доброжелательного "вот это так-то, и так-то", в прагматичное "об этом можно почитать в инете". Стоит ли ограничивать тех, кто обращается за помощью в получении знаний, в живом общении? Разве не в этом главный смысл тематических форумов?
Конечно, если это не просьба за деньги выполнить курсовую работу. :woohoo:


Вы поймите, что есть определенные правила.
У вас тема этого топика как называется???
А какие вы вопросы задаете???
Поэтому мало кто будет вам отвечать и отвечать в полной раскрытой форме.
Вы создайте новую тему скажем Помогите освоить Verilog и вот там и задавайте подобные вопросы.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Система управления синхронным многофазным электрод 10 года 7 мес. назад #5244

  • Leka
  • Leka аватар
  • Не в сети
  • Живу я здесь
  • Живу я здесь
  • Сообщений: 635
  • Спасибо получено: 54

KIV пишет: "вот это так-то, и так-то"

Это уже называется - дрессировка, а не обучение. Открывается новая тема, типа "натаскивания по Верилогу", и приглашаются желающие. Меня там не будет.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Leka.
Время создания страницы: 0.150 секунд
Работает на Kunena форум