0
'x'또는 잘못된 입력을 감지 할 수있는 합성 가능 Verilog 코드를 만들려고합니다. 기본적으로 x
은 합성 가능하지 않으므로 x
을 피하고 있습니다. 모든 클럭 사이클에서 입력을 읽으려고하는데, 0
또는 1
이면 새 레지스터에로드됩니다. 다음은 코드입니다. Verilog에서 합성 가능 'X'또는 잘못된 입력 감지 시스템
[email protected](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입니다.
그러나이 값은 의 값만 load_input_8
에 저장됩니다. 0
은 load_input_8
에 저장됩니다. 또한 회로는 입력을로드하는 데 이상한 동작을합니다. 다음은 시뮬레이션 그림입니다. 감사합니다.
'in = 1'만이 if 조건을 만족시킬 수 있습니다. –
@Laleh, 고맙습니다. 문제가 해결되었습니다. –