Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Нельзя просто взять и записать что-либо в регистр в разных местах кода, если компилятор не может четко обозначить условия: при таких — пишем это, при таких — это. Почему так происходит понятно — вход на запись у регистра один и нельзя подать 2 сигнала без какой-либо логики на один вход.
И даже переключил свое сознание в этом направлении на синхронный дизайн: из-за особенности архитектуры ПЛИС в целом (не важно, CPLD это или FPGA), комбинаторика тут работает непредсказуемо из-за непредвиденных задержек сигнала, вносимых путями сигналов, которые образуются после принятия решения фиттером куда что положить в кристалле.
always @(posedge CLK1 or posedge CLK2)
reg <= value
always @(posedge CLK1)
reg1 <= A
always @(posedge CLK2)
reg2 <= A
И да, я задаю только клок и пины. А после пытаюсь избавиться от всех (ну или большинства) варнингов.
always @(posedge CLK1)
reg1 <= A
always @(posedge CLK2)
reg2 <= A
Так шим предусматривает, что на выходе импульсы будут сглажены
River Raid на FPGA