... 11

Verilog HDL을 사용한 디지털 로직 설계

디지털 블록 설계 과정 (직접 설계)프로그래밍 언어처럼 사용되며, 회로의 동작, 신호의 흐름을 기술함으로써 하드웨어의 설계가 이루어짐.프로그래밍된 HDL을 논리합성을 통해 실제 IC로 구현이 가능해짐.특정 ASIC 기술 및 공정에 무관하게 사용 가능.다양한 레벨의 디자인 및 혼합 가능.이때 FPGA는 IC칩 제작 전에 미리 검증하는 단계이고 합성을 통해 게이트 레벨에서 시뮬레이션을 하는 것은 IC 구현 과정의 일부분이라고 생각하면 된다.Cadence Genus synthesis Solution (구 Encounter RTL Compiler)Innovus Implementation System (구 Encounter Digital Implementation)SoC EncounterStandard cell-..

hls4ml

여러 종류의 SW -> Verilog HDL 플랫폼이 존재하며, 그 중 대표적인 예가 hls4ml임.Keras, tensorflow 등을 Verilog HDL로 바꿔주지만 parameter 수가 적어야 함.hls4ml의 내부 구조 참고 링크: https://github.com/fastmachinelearning/hls4ml GitHub - fastmachinelearning/hls4ml: Machine learning on FPGAs using HLSMachine learning on FPGAs using HLS. Contribute to fastmachinelearning/hls4ml development by creating an account on GitHub.github.comhls4ml/hls4..

Vivado HLS 사용

Vivado high-level synthesisC/C++로 작성된 system을 synthesis를 통해 Verilog 파일 등으로 변환 해줌.New projectAdd source code (header file 포함)Run C simulationRun C synthesisRun C/RTL co-simulation (solution에 있음).Export RTL (IP Catalog) implementation에 zip 파일 형태로 저장됨.다른 프로젝트를 여는 경우에는 vivado command prompt에서 vivado_hls –f script.tcl 등을 실행해주면 프로젝가 생성되며, 해당 프로젝트를 vivado_hls –p project를 실행해 주면 됨.아래는 convolution neural..

Verilog HDL을 활용한 뉴런의 설계

이전의 포스팅에서도 말했지만 XOR problem이 있다. 가장 중요한 내용은 학습 알고리즘을 통한 bias와 weights의 조절이며, back propagation learning이 일반적으로 사용됨.기대값과 실제 출력값과의 차이를 통해 weights를 보정하는 방법임.Unsupervised learning 방법에 STDP가 있으며, 이는 입력과 동일한 출력을 얻 거나 pattern 인식 분야에 효과적임.Learning 알고리즘 구현은 추후에 검토. (실제 응용에서는 학습은 CPU-GPU가 수행하고, FPGA는 inference로 사용되는 것이 일반적임.)대신 아래의 동작을 수행하는 뉴런을 설계하고자 함 (XOR의 경우 여러 가지 해법이 가능함). 뉴런 동작 조건Multiplier 기능이 필요.Add..

Verilog HDL(Level of Modeling)

모델링 레벨(Level of Modeling) Verilog HDL은 하드웨어의 기능을 기술하는 언어로 문장 단위로 동시에 수행되는 병행문이다. 따라서 C언어와 같은 소프트웨어 언어의 순차적인 동작과는 다르게 기술된 순서와 관계없이 동시에 수행된다.동작적(Behavioal) 기술은 모듈의 기능을 직접 서술하여 기술하는 방식을 말한다.반면에 구조적(Structural) 기술은 모듈의 기능을 간단한 모듈들의 조합으로 기술하는 방식을 말한다. Behavioal 기술은 기능 또는 알고리즘 레벨의 기술이라고 하며, 설계자가 하드웨어의 기능을 마치 C언어처럼 기술하여 하드웨어를 설계할 수 있도록 해 준다.  Behavioal 기술로 모델링 된 HDL을 효율적으로 합성하여 회로로 구현할 수 있도록 하는 것을 EDA ..

Verilog HDL(Instantiation)

모듈 연결(Instantiation) 하드웨어는 보통 여러 개의 모듈로 이루어지며, 상위 계층과 하위 계층의 계층적 관계를 가지고 있다. 아래의 그림은 계층적 설계가 되어 있는 회로의 예이다. 최상위 계층의 모듈 top은 하위 sub_0 모듈을 U0라는 이름으로 포함하고 있으며, 하위 sub_1 모듈 두 개를 각각 U1과 U2라는 이름으로 포함하고 있다. 또한 내부 회로 C1이 있다. 이렇게 여러 개의 모듈을 포함하는 계층적 설계를 기술하기 위해서는 상위 모듈에서 하위 모듈을 인스턴스화 하고, 입출력 포트들을 신호로 연결하는 기술 방법이 필요하다.  상위 계층 모듈에서 하위 모듈을 인스턴스화 하고 연결하는 기술 방법은 두 가지가 있다.첫 번째는, 상위 모듈의 신호를 하위 모듈의 포트에 정의된 순서와 동일..

Verilog HDL(Operators)

Verilog는 다양한 연산자를 가지고 있어, 임이의 회로에 대하여 다양한 기술을 가능하게 한다.비트 연산자(Bitwise Operators) 비트 연산자는 비트 레벨의 논리 연산을 표현한다.비트 연산자동작~"bitwise"NOT& / ~&"bitwise"AND,NAND| / ~|"bitwise"OR/NOR^ / ~^"bitwise"XOR/XNOR 비트와이즈 연산자의 사용 예는 다음과 같다. 출력은 4비트의 wire이다.논리 연산자(Logical Operators) 논리 연산자느 연산 결과가 참 또는 거짓 중 하나가 된다.논리 연산자동작&&"logical"AND||"logical"OR!negation 논리 연산자는 0이 아닌 수를 1로 취급한다. 다음 코드에서 a&b 연산의 경우 bitwise로 연산하여..

Verilog HDL(Introduction)

Introduction 1990년대, 하드웨어 개발을 위해서는 로직 게이트를 이용하여 회로도를 그려야 했다. 수 많은 게이트 회로를 그리고, 그 기능을 검증하고 하면서 디지털 회로를 설계했다. DSP(digital signal processor)를 내장한 통신 반도체를 개발하는데 사용할 수 있는 DSP IP가 없었다. 여기서 IP는 재사용 가능한 회로라고 이해하면 된다. 예를 들면 arm사는 자체 개발한 CPU인 ARM core IP를 팹리스 회사에 제공하고, 이 IP를 이용하여 삼성전자, 퀄컴 등에서 애플리케이션 프로세서(AP)를 개발한다. DSP 회사인 TI(texas Instruments)나 아날로그 디바이스 등은 DSP를 자체 판매하고, IP는 따로 제공하지 않았다. 따라서 DSP 코어를 자체 개..