std_logic 또는 std_ulogic?


24

세계는 VHDL에서 비트를 나타내는 기본 방법 이라고 std_logic(및 std_logic_vector) 결정한 것 같습니다 . 대안은 std_ulogic해결되지 않습니다.

이것은 일반적으로 버스를 설명 하지 않기 때문에 놀랍습니다 . 따라서 여러 드라이버를 원하지 않고 신호 를 해결할 필요가 없습니다 . 여러 드라이버가있는 경우 컴파일러에서 조기에 경고한다는 이점 이 있습니다.std_ulogic

질문 : 이것은 문화적 / 역사적인 것입니까, 아니면 std_logic을 사용해야하는 기술적 이유가 있습니까?


3
"세계"가 잘못되었습니다. 스마트 엔지니어는 올바른 의미를 가지고 있기 때문에 std_ulogic을 사용합니다.
wjl

@wjl 나는 그것을 "문화적 / 역사적인 것"으로 해석 할 것이다. 아래의 답변은 여기의 의견보다 훨씬 유용합니다.
Philippe

나는 먼저 의견을 썼고, 더 구체적으로 대답하는 것이 더 적절할 것이라고 생각했다. 죄송합니다, 약간의 플립 팬트 소리가납니다. 그러나 내 의견은 대부분의 사람들이 std_logic을 사용하여 시작한다는 점에서 문자 그대로입니다. 그런 다음 잠시 후에 std_ulogic에 대해 궁금해하기 시작하고 그것을 찾은 다음 의미를 깨닫고 변환합니다. =)
wjl

답변:


16

Std_logic은 std_ulogic의 하위 유형이며 정확히 하나의 추가 속성을 갖 습니다. 여러 드라이버가있는 경우 해결됩니다.

일반적인 관행에 관계없이 std_ulogic은 9 값 논리가 필요한 비 해결 신호에 사용하는 올바른 유형입니다. (예를 들어, 'X'또는 'U'와 같은 것이없는 일부 FPGA 아키텍처에서 "비트"를 사용하는 것이 훨씬 더 정확합니다.)

기본적으로 가장 좋은 방법은 작업에 올바른 유형을 사용하는 것입니다. 종종 나쁜 관행은 사람들이 다른 사람들이 사용하는 방식을 이해하고 이유를 이해하지 않고 전파함으로써 전파됩니다.


8
아키텍처에는 'U'가 없을 수 있지만 잘못된 초기화를 찾을 수있는 것처럼 시뮬레이션하는 것이 유용합니다. "가장 최선의 방법은 작업에 맞는 유형을 사용하는 것"이지만, "최고의 것"에 대해 배우면서 배우는 경향이 있습니다. :)
Martin Thompson

8

내 역사는 이렇습니다 :

나는 std_ulogic*당신이 묘사하는 이유 때문에, 옳은 일이기 때문에 항상 ( 1999 IIRC에서) 시작 했습니다.

그런 다음 인터페이스 전체에 마법사가 생성 한 공급 업체 IP를 생성해야했습니다 std_logic. 이는 포트 매핑 ( _vector요소)에 대한 변환을 의미했으며, 게으르고를 사용하여 옮겼습니다 std_logic*.

그러나, 나는 "이중 드라이버"실수 std_ulogic를 거의 하지 않는 것 같아서, 내가 생각했던 것만 큼 그리워하지 않았습니다 . Modelsim의 drivers명령을 사용하면 가끔 필요할 때 "누가 무엇을 운전하고 있는지"를 쉽게 찾을 수 있습니다.


예, IP 코어 (특히 Verilog에서 자동으로 변환되는 것)는 std_logic을 사용하는 경향이 있습니다. 귀하의 답변은 그 이유가 대부분 "문화적 / 역사적"인 것으로 보입니다.
Philippe

포트에서 std_logic과 std_ulogic을 변환 할 필요는 없습니다. std_logic_vector와 std_ulogic_vector 사이를 변환해야한다는 의미입니까?
wjl

@ wjl : 미안, 그래 그게 내 뜻이야. 게시물을 업데이트하겠습니다.
마틴 톰슨

AFAIK, std_logic 및 std_ulogic은 기본 유형이 동일하므로 할당 호환 가능합니다. 따라서 수동 변환이 필요하지 않습니다.
Val

@Val : 그것이 wjl이 말한 것입니다 (그리고 동의합니다) – *vector포트 부분은 여전히 ​​변환이 필요합니다
Martin Thompson

4

IIRC는 유명한 재사용 방법론 매뉴얼 (Reuse Methodology Manual)이 권장 한 std_logic(_vector)것이므로 회사 등의 방법론 그룹이 (필수) 코딩 가이드의 형태로 더욱 확산 될 수 있습니다. 개인적으로, std_ulogic가능하면 +1 하십시오.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.