질문이용~
261
작성한 질문수 2
testbench에서 if의 조건문에서 !== 의 연산자를 사용해주셨는데 !== 보통 잘 사용하지 않는 걸로 권장하는 걸로 알고 있습니다! 왜 굳이 != 말고 !==을 사용하셨는지 궁금합니다!
답변 1
0
안녕하세요 :)
해당 문법의 차이를 알고계신가요?!!
정리해서 작성해주시면 공부에 도움이 되실꺼에요.
ps
누가 잘 안쓴다고 권장했는지...?
(상황에 따라 사용해야죠)
하지만 지금 예제에서는 != 이걸로 하셔도 됩니다 :)
실무에서 써야하는 순간이 있어요.
정리해주시면 적어드릴께요.
2
시간이 있어서 미리 작성드립니다.
IEEE Std (1800-2009), section 11.4.5 "Equality operators"
For the logical equality and logical inequality operators (== and !=), if, due to unknown or high-impedance bits in the operands, the relation is ambiguous, then the result shall be a 1-bit unknown value (x).
!= 는 logical 0,1 만을 비교하게됩니다.
HW 는 0,1 뿐만아니라, z, x 의 state 도 존재하죠.
!== 연산은 나머지 z,x 의 상태또한 비교하게 됩니다.
저는 필요에 따라서 써야한다 생각하구요. 실무에서 !== 비교로 버그를 Fix 했던 적이 있었습니다.
"x" 는 초기화를 해주지 않았을때, 발생하는 case 이구요.
x 는 0,1 상관없는 값이죠. 즉 x type 이 포함된 연산을 하게 되면, 잘못된 결과가 출력되게 됩니다. ex) 1+1 = 2, x+1 = ?
대신 !== 는 4가지 Type 을 check 함으로 상대적으로 != 대비 simulation 속도는 느려지는 단점이 존재하겠네요. 아니면 x 를 포함에도 설계자가 보장한다, 이러면 != 이거 쓰셔도 되구요.
결론
1. 지금 예제코드에서는 != 이걸로 하셔도 돼요. (x 가 들어올일이 없으니..)
2. !== 비교는 상황에 맞게 사용하면 됩니다.
즐공하세요 :)
latency 개념 구현
1
126
3
비바도 all os버전
1
91
2
초기화를 reset_n 이 '1'일 때가 아닌 '0' 일 때 실행시키는 이유 질문
1
98
2
다운로드용량
1
82
2
비바도리눅스설치
1
97
2
전체path복사넣기
1
73
2
Vivado 2025.2 리눅스 설치 후 실행 에러와 솔루션 (libxv_commontasks.so)
1
178
2
explorer.exe오류
1
119
3
mobaxterm설치오류
1
102
2
./build시, waveform 'divide color' 사용
1
61
2
Latch와 관련하여 (Time borrowing, Latch-based design)
1
145
2
clean 명령어가 안되는데, 따로 저장해줘야 하는지 궁금합니다.
0
73
1
안녕하세요 설치 관련 질문 드립니다.
1
72
3
16장 mealy 설계.
1
80
2
14장 Cycle 관련, Testbench 코드.
1
75
2
21강(16장) 초기값 설정이 적용되는 시점 질문
1
68
1
20강(15장) - 밀리 머신 관련하여 질문 드립니다.
1
76
2
build에러 질문
0
63
2
1장 ./build에서 에러가 나요
1
82
2
FPGA 강의 보드 문의 드립니다.
1
115
2
5장 DFF특성에 대한 질문
1
87
3
vivado linux 사용 이유.
1
150
2
메모리의 형태가 전체설계에 미치는 영향이 궁금합니다.
1
114
2
디스코드 멤버쉽 등업 관련 문제
1
96
2





