VHDL
자가 점검 테스트벤치는 출력을 수동으로 검사하기 위해 작업자에 의존하지 않고 테스트 대상 장치(DUT)의 정확성을 검증하는 VHDL 프로그램입니다. 자체 검사 테스트벤치는 완전히 자체적으로 실행되며 마지막에 "OK" 또는 "Failed" 메시지를 출력합니다.
모든 VHDL 모듈에는 자체 검사 테스트벤치가 연결되어 있어야 합니다. 모든 모듈이 언제든지 의도한 동작을 하는지 확인할 수 있는 것이 중요합니다. 예를 들어, DUT, 하위 모듈 또는 인터페이스 모듈을 변경할 때. 우리 모두는 물건이 깨질 수 있다는 것을 알고 있으며 이러한 문제를 포착하는 가장 좋은 도구는 자가 점검 테스트벤치입니다.
바로 들어가서 자체 검사 테스트벤치의 예를 만들어 보겠습니다. 먼저 테스트할 DUT가 필요합니다. 이를 위해 아래 코드에서 모듈을 만들었습니다. 바이너리-그레이 코드 변환기입니다.
library ieee; use ieee.std_logic_1164.all; entity gray_converter is port ( bin : in std_logic_vector; gray : out std_logic_vector ); end gray_converter; architecture rtl of gray_converter is begin process(bin) is begin gray(gray'high) <= bin(bin'high); for i in bin'high - 1 downto bin'low loop gray(i) <= bin(i + 1) xor bin(i); end loop; end process; end architecture;
그레이 코드는 일반 이진 인코딩과 다른 대체 숫자 코딩 방식입니다. 그레이 코드의 주요 속성과 목적은 인접한 숫자 값 사이에서 카운트할 때 1비트만 변경된다는 것입니다.
소수점 | 바이너리 | 회색 |
---|---|---|
0 | 0000 | 0000 |
1 | 0001 | 0001 |
2 | 0010 | 0011 |
3 | 0011 | 0010 | 4 | 0100 | 0110 | 5 | 0101 | 0111 | 6 | 0110 | 0101 | 7 | 0111 | 0100 | 8 | 1000 | 1100 | 9 | 1001 | 1101 | 10 | 1010 | 1111 | 11 | 1011 | 1110 | 12 | 1100 | 1010 | 13 | 1101 | 1011 | 14 | 1110 | 1001 | 15 | 1111 | 1000 |
위의 표는 그레이 코드가 바이너리 코드와 어떻게 다른지 보여줍니다.
기본 테스트벤치를 만들고 그 안에서 DUT를 인스턴스화하는 것으로 시작하겠습니다. 아래 코드는 DUT가 인스턴스화되고 필요한 모든 가져오기가 포함된 테스트벤치 파일을 보여줍니다.
library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; use std.env.finish; entity gray_converter_tb is end gray_converter_tb; architecture sim of gray_converter_tb is signal bin : std_logic_vector(3 downto 0) := (others => '0'); signal gray : std_logic_vector(3 downto 0); begin DUT : entity work.gray_converter(rtl) port map ( bin => bin, gray => gray ); end architecture;
std.env.finish
을(를) 가져오고 있습니다. VHDL-2008이 필요합니다. 아무 것도 변경하지 않고 ModelSim에서 테스트벤치를 컴파일하려고 하면 다음 오류가 발생합니다.
# ** Warning: gray_converter_tb.vhd(6): (vcom-1516) Package "STD.ENV" does not exist in this language version.
VHDL
터치 스위치는 전자 장치의 사용성을 개선합니다. 추가된 기능을 제공하는 동안 이러한 특정 구성 요소는 고유한 경험을 제공합니다. 호환되는 장치를 더 많이 제어할 수 있기 때문입니다. 새로운 기술 개발은 아니지만 터치 스위치는 오늘날에도 여전히 인기를 얻고 있습니다. WellPCB는 더 깊은 통찰력을 얻을 수 있도록 노력하고 있습니다. 이 기사를 읽은 후 현재 세 가지 유형의 터치 스위치가 존재한다는 것을 발견하고 해당 기능, 작동 방식 및 응용 프로그램을 이해하게 될 것입니다. 직접 만들고 싶으신가요? 또한 터치 스위치를 설계하기
3D 프린팅에는 항상 사용자에 따라 달라지는 일련의 요소가 있습니다. , 인쇄가 만족스럽거나 실패하는 경우가 많습니다. 각 사용자가 각 3D 프린트에서 사용하는 프린트 프로필에 모든 요소가 수집됩니다. 3D FDM 인쇄 프로필에서 무한한 수의 매개변수를 수정할 수 있습니다. :프린팅 온도 및 속도, 내부 및 외부 부품 제조 방법 및 3D 프린팅에 영향을 미치는 나머지 모든 매개변수. 이러한 이유로 가장 중요한 정보는 인쇄 프로필을 만들 때 아래에서 설명합니다. 고려할 측면 인쇄 매개변수를 수정하기 전에 직접적으로 영향을 미치