Из сегодняшних ужасов. Вот это работает 100%, выдерживает даже пересборку с нуля без сигналтапа:
Код:
always @* begin: _cpu_datain
casez(di_select)
6'b1?????: cpu_di <= boot_vec; // boot vector
6'b?????1: cpu_di <= sdram_do; // do not move this line
6'b010000: cpu_di <= lowmem_do;
6'b001000: cpu_di <= bufmem_do;
6'b000100: cpu_di <= ram_do;
6'b000010: cpu_di <= display_idata;
default: cpu_di <= ioports_do;
endcase
end
Вот это нет:
Код:
always @* begin: _cpu_datain
casez(di_select)
6'b1?????: cpu_di <= boot_vec; // boot vector
6'b010000: cpu_di <= lowmem_do;
6'b001000: cpu_di <= bufmem_do;
6'b000100: cpu_di <= ram_do;
6'b000010: cpu_di <= display_idata;
6'b?????1: cpu_di <= sdram_do; // fml im ded x_x
default: cpu_di <= ioports_do;
endcase
end
- - - Updated - - -
Да, важный момент, я немного несправедлив к Квартусу, потому что это приоритетный шифратор. То есть по учебнику casez специально для этого предназначен, а я его заставляю работать. sdram_do имеет приоритет над остальными выборками (почему - отдельная история, сейчас неважно). А раз приоритет, будь добр подвинуть строчкой повыше!