임베디드
이 기사에서는 Verilog 모듈의 기본 구조를 연구하고 Verilog "와이어" 데이터 유형과 해당 벡터 형식을 사용하는 몇 가지 예를 살펴보고 VHDL과 Verilog의 몇 가지 차이점에 대해 간략하게 설명합니다.
Verilog와 VHDL은 디지털 회로를 설명하는 데 일반적으로 사용되는 두 가지 언어입니다. AAC에는 VHDL의 기본 개념을 논의하는 일련의 기술 기사가 있습니다. 이 기사는 Verilog에 관한 시리즈의 출발점으로 사용됩니다.
토론을 시작하기 전에 이 두 가지 언어를 모두 알아야 합니까? 라는 분명한 질문에 답하겠습니다.
Verilog와 VHDL은 모두 복잡한 디지털 회로를 설계하는 데 사용할 수 있는 강력한 도구입니다. 이 두 HDL 간에는 약간의 차이점이 있지만 마스터하고 사용할 둘 중 하나를 자유롭게 선택할 수 있습니다. 그러나 언젠가는 두 언어에 대한 최소한의 기본적인 이해가 있으면 도움이 될 것이라고 믿습니다. 때로는 디자이너로서 프로젝트 코딩에 대한 아이디어를 얻기 위해 샘플 코드 세그먼트가 필요합니다. 우리는 몇 시간 동안 그물을 서핑하고 마침내 필요한 것을 찾았지만 우리에게 의미가 없었습니다. 그것은 우리에게 완전히 낯선 HDL로 작성되었습니다. 언어에 대한 기본적인 이해가 없으면 기술을 완전히 이해하지 못할 수 있습니다.
Verilog는 1984년 초 Gateway Design Automation에 의해 설계되었습니다(VHDL이 미국 국방부에서 시작된 지 약 3년 후). DoD의 지원으로 VHDL은 1987년에 IEEE 표준이 되었습니다. Verilog는 1995년이 되어서야 등장했습니다. 오늘날 VHDL과 Verilog는 모두 인기 있는 HDL이며 FPGA 설계 도구는 일반적으로 두 언어를 모두 지원합니다.
Verilog라는 단어는 "verification"과 "logic"의 합성어로, 시뮬레이션 및 검증 도구로 처음 제안된 언어이기 때문입니다. Verilog 개념과 구문을 시작하겠습니다.
첫 번째 예로서 그림 1과 같은 회로에 대한 Verilog 코드를 작성해 보겠습니다.
2개의 입력과 1개의 출력이 있습니다. 포트의 너비는 모두 1비트입니다. 회로의 기능은 두 입력을 AND하고 그 결과를 out1 포트에 넣는 것입니다.
Circuit_1 모듈에 대한 가능한 Verilog 설명은 다음과 같습니다.
이 두 줄은 "module"과 "endmodule"이라는 키워드를 사용하여 그 사이의 줄(2~7줄)이 모두 "Circuit_1"이라는 회로를 설명하도록 지정합니다. 이 이름은 임의적이며 나중에 이 회로를 참조할 수 있습니다.
이 라인은 주변 환경과 "Circuit_1"의 인터페이스를 지정합니다. 입력 및 출력 포트는 "입력" 및 "출력" 키워드를 사용하여 설명됩니다. 이 키워드 뒤에는 "wire"라는 또 다른 키워드와 포트 이름이 옵니다(그림 1 참조). 키워드 "wire"는 무엇을 지정합니까? "와이어"는 설계에서 물리적 와이어를 나타내는 Verilog 데이터 유형입니다. Verilog 데이터 유형에 대해서는 향후 기사에서 더 자세히 논의할 것이지만 현재로서는 우리 모듈에 3개의 와이어, b 및 out1이 있다는 것을 알고 있으며 이들은 포트 선언에 지정되어 있으므로 다음과 같습니다. 모듈 인터페이스.
이 줄은 비트 AND 연산자, 즉 &를 사용하여 회로의 기능을 설명합니다. 키워드 "assign"은 출력 포트 out1에 &b를 넣습니다. 이러한 유형의 할당을 연속 할당이라고 합니다. 오른쪽에 있는 피연산자가 변경될 때마다 할당이 항상 활성화되어 있고 &b가 평가되어 out1에 할당되기 때문에 그렇게 부릅니다. 입력에 따라 출력이 지속적으로 업데이트되는 조합 회로로 연속 할당을 상상할 수 있습니다. 이 예에서 이 조합 회로는 단순한 AND 게이트입니다. Verilog HDL에는 향후 기사에서 논의될 절차적 할당도 있습니다.
이제 Xilinx ISE와 같은 소프트웨어 패키지를 사용하여 위의 코드를 확인할 수 있습니다. 여기(PDF)에서 이 소프트웨어의 Verilog 기반 자습서를 찾을 수 있습니다.
아래 그림 2는 Circuit_1 모듈에 대한 Verilog 및 VHDL 설명을 보여줍니다.
보시다시피 VHDL로 코딩할 때 일부 라이브러리를 포함해야 합니다. 이러한 라이브러리는 데이터 유형 및 연산자에 대한 정의를 제공합니다. 이러한 라이브러리의 추가와 VHDL의 일반 형식을 고려하면 VHDL 코드가 더 장황하다는 것을 알 수 있습니다. 그러나 이러한 장황함에 장점이 없는 것은 아닙니다. 예를 들어, VHDL의 라이브러리 관리 기능은 상위 레벨 시스템을 모델링할 때 유용할 수 있습니다. 향후 기사에서 때때로 이 두 HDL의 장단점에 대해 논의할 것입니다.
대부분의 Verilog 데이터 유형에는 4가지 기본 값이 사용됩니다. Listing 1에 정의된 와이어는 다음 값 중 하나를 사용할 수 있습니다.
<울>VHDL std_logic 데이터 유형은 9가지 다른 값을 가질 수 있지만 일반적으로 사용되는 값은 '0', '1', 'Z' 및 '-'입니다('-'는 상관 없음을 나타냄).
또 다른 예로, 그림 3에 표시된 회로(Circuit_2로 레이블 지정)에 대한 Verilog 코드를 작성해 보겠습니다.
다음 Verilog 코드는 이 회로를 설명합니다.
위 코드에 사용된 요소는 코드의 10행에 내부 신호가 정의되어 있다는 점을 제외하고 예제 1과 유사합니다. "wire" 키워드는 이 연결의 데이터 유형을 지정하는 데 사용됩니다. 위에서 논의한 바와 같이 "와이어" 데이터 유형은 설계에서 물리적 와이어로 변환됩니다.
위의 코드는 또한 몇 가지 새로운 Verilog 비트 연산자를 사용합니다. ~ for NOT 및 | OR 연산용. 또 다른 유용한 비트 연산자는 XOR 연산에 대한 ^입니다. 그림 4는 Circuit_2 모듈에 대한 Verilog 및 VHDL 설명을 모두 보여줍니다. 이러한 비교를 통해 두 언어 간의 차이점과 유사점을 파악할 수 있습니다.
세 번째이자 마지막 예에서는 그림 5에 표시된 회로도에 대한 Verilog 코드를 제공합니다.
보시다시피 파란색 입력 포트와 빨간색 입력 포트 사이에는 특정 관계가 있습니다. 해당 입력은 AND 연산자와 결합됩니다. 결과는 출력 포트에 할당됩니다. 이러한 경우 신호를 그룹화하고 벡터로 처리할 수 있습니다. 이렇게 하면 코드가 간결하고 가독성이 높아집니다.
Verilog의 벡터 개념을 사용하면 Listing 1의 코드를 쉽게 확장하여 위의 회로를 설명할 수 있습니다(아래 Listing 3의 코드 참조).
벡터의 인덱스 범위는 오름차순(위에서 사용된 [0:2]) 또는 내림차순([2:0])일 수 있습니다. 위에서 오름차순 형식이 사용되었지만 일반적으로 내림차순 형식을 사용하는 것이 오류가 덜 발생합니다. 이는 내림차순 스타일이 이진수의 가장 왼쪽 위치에 가장 높은 인덱스가 있다는 우리의 인식과 일치하기 때문입니다. 벡터는 VHDL에서도 사용됩니다.
아래 그림 6은 목록 3에 있는 코드의 ISE 시뮬레이션을 보여줍니다.
이 기사에서 우리는 VHDL과 Verilog를 모두 배우는 것이 좋은 아이디어라고 논의했고 Verilog 모듈의 기본 구조를 연구했으며 Verilog "와이어" 데이터 유형과 그 벡터 형식에 익숙해졌습니다. 또한 VHDL과 Verilog의 몇 가지 차이점에 대해서도 간략하게 설명했습니다. Verilog 시리즈의 다음 기사에서는 Verilog의 조합 회로 설계에 대해 설명합니다.
임베디드
촉각 센서와 관련하여 터치 스위치 회로는 가장 간단한 회로 중 하나입니다. 단순함에도 불구하고 이러한 놀라운 기술은 어디에나 있습니다. 예를 들어 터치 스크린은 디스플레이 상단에 있는 터치 스위치의 배열일 뿐입니다. 그들은 벽 스위치, 램프 및 공용 컴퓨터 터미널을 포함하여 다른 광범위한 응용 프로그램을 가지고 있습니다. 이 기사에서는 터치 스위치 회로에 대해 필요한 모든 정보를 제공합니다. 전기 또는 전자 장치에 현대적인 터치 기능을 추가하는 데 필요한 모든 것입니다. 터치 회로 그림 터치 스위치 회로는 어떻게 작동합니까
이 비디오는 저렴한 기성품 USB 카메라와 함께 Tormach ScanCAD 셰어웨어를 사용하여 공장을 2D 스캐닝 및 측정 시스템으로 전환하는 방법을 보여줍니다. CNC 스캐너 시작하기 이 비디오에서 CNC 기계공은 부품을 스캔한 다음 가공합니다.스캐닝 목적으로 사용할 수 있는 다양한 카메라에 대해 알려줍니다. Tormach CNC 스캐너 소개 Tormach CNC 스캐너는 PCNC를 고해상도 2D 광학 스캐너 및 리버스 엔지니어링 시스템으로 전환합니다. 이것은 도구 제작, 예술성, 수리 및 복원, 정밀 측정, 품질 보증