Я пытаюсь создать код Verilog с возможностью синтеза, который может обнаруживать «x» или недопустимые входные данные. По сути, x
не может быть синтезирован, поэтому я избегаю x
. Я пытаюсь читать входные данные на каждом тактовом цикле, и если это 0
или 1
, я загружаюсь в новый регистр. Вот код;
always@(posedge clk)
begin
if(in & gate_check == 0 | in & gate_check == 1)
begin
load_input_8 <= {in,load_input_8[8:1]};
end
end
Итак, я загружаю новые входные данные в регистр load_input_8
после проверки достоверности входных данных. Кстати, gate_check
имеет значение 1, т.е. `gate_check = 1.
Но это только сохранение значения 1
в load_input_8
. В load_input_8
нет 0
. И схема также имеет странное поведение при загрузке входов. Вот изображение симуляции; Спасибо.
in = 1
может удовлетворить ваше условие if. - person Karan Shah   schedule 19.02.2017