Положительный сдвиг. Я уже повторяюсь, но ничего. Поскольку принципиальная разница между тем, что работает и тем, что не работает, явно в декодированном адресе, я стал смотреть, что там может быть ненадежно.

Вкратце релевантные фрагменты кода (рад бы показать все, но там сейчас такое поле брани, что даже мне стыдно):
Код:
// clk_cpu это никакой не cpu, это 24мгц клок от фапчи
// cинхронизатор
reg [1:0] samp_ras_n;		
reg [1:0] samp_cas_n;

always @(posedge clk_cpu) begin: _vu_sampler
	samp_ras_n <= {samp_ras_n[0],VU_RAS_N};
	samp_cas_n <= {samp_cas_n[0],VU_CAS_N};
end

wire negedge_cas_n = {samp_cas_n,VU_CAS_N} == 3'b100;
wire negedge_ras_n = {samp_ras_n,VU_RAS_N} == 3'b100;

// декодер адреса 
reg [7:0]	ra;
wire[7:0]	ca = VU_SHAP_N;

always @(posedge clk_cpu) begin
	if (negedge_ras_n)
		ra <= VU_SHAP_N;

	// if (negedge_cas_n) -- это работает только если сигналтап
	if (~VU_CAS_N)           // это работает без сигналтапа, причем без спец опций агрессивной оптимизации
			decoded_a <= {ca[6], ~ca[7], ~ra[7], ra[4], ra[3], ra[2], ra[1],ra[0],
			     ca[5],  ca[4],  ca[3], ca[2], ca[1], ca[0], ra[6],ra[5]};	
end
Вот если у меня написано как сейчас, то у меня тест держится неопределенно долгое время. Может быть что-то другое не работает, но вот это работает.
А если написано так, как мне кажется, что должно быть правильно, то есть закоментированный if, работает только с СигналТапом.

- - - Updated - - -

Цитата Сообщение от tnt23 Посмотреть сообщение
Для 24 мегагерц-то? у тебя небось и сдрам ишачит на осторожных 100, тут не место для таймквеста.
Ты записан следующий за седобородым старцем ранг.