MyHDL
MyHDLMyHDL은[1] Python 기반의 하드웨어 기술 언어(HDL)입니다.
My HDL의 특징은 다음과 같습니다.
- MyHDL [2]설계에서 VHDL 및 Verilog 코드를 생성하는 기능.
- Python의 복잡한 계산을 기반으로 VHDL 또는 Verilog에서 테스트 벡터를 사용하여 테스트 벤치(테스트[3] 벤치 변환)를 생성하는 기능.
- 신호 [4]목록을 변환하는 기능.
- 출력 [5]검증을 변환하는 기능.
- Verilog와 [6]공동 시뮬레이션을 할 수 있습니다.
- 기존 데이터 유형과 독립적인 고급 데이터 유형 시스템입니다.MyHDL의 번역 툴은 변환 기능이 필요한 경우 변환 기능을 자동으로 씁니다.
MyHDL은 Jan Decaluwe에 [7]의해 개발되었습니다.
변환 예
여기에서는 MyHDL 설계에서 VHDL 및/또는 Verilog로 [8]변환된 몇 가지 예를 볼 수 있습니다.
소형 조합 설계
이 예는 작은 조합 설계, 구체적으로는 바이너리-그레이 코드 변환기입니다.
방어하다 bin2params(빈2param(빈)(B, G, 폭: 인트): 회색 인코더. B -- 입력 intbv 신호, 바이너리 부호화 G -- 출력 intbv 신호, 회색 부호화 width -- 비트 폭 """ @always_comb 방어하다 논리(): 벡스트 = 내부(0)[폭 + 1 :] 벡스트[:] = B 위해서 i 에 범위(폭): G.다음 분.[i] = 벡스트[i + 1] ^ 벡스트[i] 돌아가다 논리
다음과 같이 인스턴스를 생성하고 Verilog 및 VHDL로 변환할 수 있습니다.
폭 = 8 B = 신호.(내부(0)[폭:]) G = 신호.(내부(0)[폭:]) bin2syslog_inst = Verilog로(bin2params(빈2param(빈), B, G, 폭) bin2syslog_inst = VHDL에 접속하다(bin2params(빈2param(빈), B, G, 폭)
생성된 Verilog 코드는 다음과 같습니다.
모듈 bin2params(빈2param(빈) ( B, G ); 입력 [7:0] B; 산출량 [7:0] G; 조정하다 [7:0] G; 항상 @(B) 시작한다.: BIN2GRAY_Logic 정수 i; 조정하다 [9-1:0] 벡스트; 벡스트 = 9시 0분; 벡스트 = B; 위해서 (i=0; i< >8; i=i+1) 시작한다. G[i] <=> (벡스트[(i + 1)] ^ 벡스트[i]); 끝. 끝. 엔드 모듈
생성된 VHDL 코드는 다음과 같습니다.
도서관 IEEE; 사용하다 IEEE.std_logic_1164.모든.; 사용하다 IEEE.numeric_std.모든.; 사용하다 표준.textio를 클릭합니다.모든.; 사용하다 work.pck_myhdl_06 입니다.모든.; 독립체 bin2params(빈2param(빈) 이 항구 ( B: 에 서명되어 있지 않다(7 까지 0); G: 나가. 서명되어 있지 않다(7 까지 0) ); 끝. 독립체 bin2params(빈2param(빈); 아키텍처 MyHDL 의 bin2params(빈2param(빈) 이 시작한다. BIN2GRAY_Logic: 과정 (B) 이 변수 벡스트: 서명되어 있지 않다(8 까지 0); 시작한다. 벡스트 := 행선지(0, 9); 벡스트 := 크기 조정(B, 9); 위해서 i 에 0 로. 8-1 고리 G(i) <=> (벡스트((i + 1)) xor 벡스트(i)); 끝. 고리; 끝. 과정 BIN2GRAY_Logic; 끝. 아키텍처 MyHDL;
「 」를 참조해 주세요.
- 무료 EDA 소프트웨어 비교
- EDA 소프트웨어 비교
- 전자설계자동화(EDA)
- C-HDL 컴파일러
레퍼런스
- ^ "Home". myhdl.org.
- ^ "Conversion to Verilog and VHDL — MyHDL 0.11 documentation".
- ^ "What's new in MyHDL 0.6 — MyHDL 0.11 documentation".
- ^ "What's new in MyHDL 0.6 — MyHDL 0.11 documentation".
- ^ "What's new in MyHDL 0.6 — MyHDL 0.11 documentation".
- ^ "Co-simulation with Verilog — MyHDL 0.11 documentation".
- ^ "MyHDL: A Python-Based Hardware Description Language Linux Journal".
- ^ "Conversion examples — MyHDL 0.11 documentation".