MyHDL

MyHDL

MyHDL[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; 

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Home". myhdl.org.
  2. ^ "Conversion to Verilog and VHDL — MyHDL 0.11 documentation".
  3. ^ "What's new in MyHDL 0.6 — MyHDL 0.11 documentation".
  4. ^ "What's new in MyHDL 0.6 — MyHDL 0.11 documentation".
  5. ^ "What's new in MyHDL 0.6 — MyHDL 0.11 documentation".
  6. ^ "Co-simulation with Verilog — MyHDL 0.11 documentation".
  7. ^ "MyHDL: A Python-Based Hardware Description Language Linux Journal".
  8. ^ "Conversion examples — MyHDL 0.11 documentation".