728x90

반도체 Study/디지털 설계 15

Verilog - CHARACTER LCD에 문자 입력하기

FPGA를 이용한 LCD 문자 출력 결과 화면LCD는 CLK 신호를 기반으로 RS, RW, E, DB0~DB7 핀을 통해 신호를 전달받아 데이터를 출력한다. RS는 Register Select의 약자로RS가 0일 경우 명령 레지스터를 선택한다. 즉, LCD에 보내는 데이터가 명령어 또는 제어 명령어임을 나타낸다.RS가 1일 경우 데이터 레지스터를 선택한다. 즉, LCD에 보내는 데이터가 화면에 표시될 문자 데이터임을 나타낸다. RW는 Read Write의 약자로RW가 0 일 때는 쓰기 모드로 MCU -> LCD로 데이터를 전송한다. 이 모드는 주로 LCD에 문자를 표시하거나 명령을 전송할 때 사용된다.RW가 1일 때는 LCD -> MCU로 데이터를 전송한다. 이 모드는 주로 LCD의 상태를 읽거나, Bu..

Verilog- FPGA를 이용한 DC 모터 구동

https://insoobaik.tistory.com/635 STM32 - PWM를 이용한 모터 제어 및 부저를 이용한 멜로디 생성보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.insoobaik.tistory.comPWM에 대한 내용은 위 글을 통해 참고하면된다.STM32를 가지고 PWM을 통해 모터를 동작시킨 것과 동일하게 FPGA, Verilog를 통해 DC 모터 제어를 해 볼 것이다.MotorMotor StatusIN1IN2IN3IN4MOTOR_AFoward Rotation1/PWM0  Reverse01/PWM  STOP00  Break11   DC 모터의 경우 ARR값에 대한 CCR값을 통해 속도를 조절 할 수 있다.DC 모터의 속도는 ARR에 의해 정해진 타이머 주기의 평균 전압..

Innovus - Script 파일을 이용한 P&R (SETUP ~ GDSII)

https://insoobaik.tistory.com/622 Innovus - P&R (SETUP ~ GDSII)보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.insoobaik.tistory.com이전에 P&R 작업을 GUI를 통해 작업한 바가 있다.매번 위 과정을 계속해서 반복해야 한다면 시간이 오래 걸릴 수도 있고, 중간에 실수가 발생할 수 있기 때문에 Script 파일을 생성하여 동작 시키는 것이 시간과 안정성에 있어서 좋다.innovus를 실행하게 되면 기본 생성 파일로 1. 로그 파일 2. 명령 파일이 생성되는 것을 알고 있다.innovus.cmd 파일을 확인해보면 GUI를 통해 진행한 P&R에 대한 명령어가 기록되어 있는 것을 확인할 수 있다.innovus.cmd 파일을 열어보..

Innovus - P&R (SETUP ~ GDSII)

P&R의 SETUP ~ GDSII 파일 생성P&R은 위 Layout 절차를 따른다. Netlist : Design Netlist - Verilog fileSDC : Constraint fileLEF : Physical LibrariesLIB : Timing Libraries- P&R 이후GDS : Physical LayoutNetlist : P&R 후 NetlistSDF : Standart Delay Format P&R을 위한 파일 설계자, 공정사1. 설계자 제공 파일- Netlist 파일 : 합성 결과물- sdc 파일 : 디자인 제약 조건2. 공정사 제공 파일- 디지털 라이브러리, lef 파일 Innovus를 실행하게 되면 기본적으로 2개의 파일이 생성된다.1. 로그 파일- innovus.log : 기..

Verilog - SPI (Master, Slave, FSM) (2) FSM, MASTER, SLAVE & SLVAE 활용

https://insoobaik.tistory.com/594이전에 간단한 FSM 구조와 SLAVE 구조에 대해 알아보았다.이번에는 FSM을 통한 MASTER, SLAVE 구조를 구성하고MASTER에서 8bit 데이터를 보내게 되면 각 bit가 의미하는 정보를 기반으로 Register에 값을 Read, Write 하는 코드를 작성할 것이다.MASTER 코드 및 코드 분석SLAVE 코드 및 코드 분석SLAVE 활용 코드 및 코드 분석MASTER master는 사용자로부터 데이터를 받아서 해당 데이터를 spi의 sclk 주기에 맞게 slave에게 데이터를 전송하고 받는다.아래 코드는 사용자로부터 데이터를 받아 8비트동안 slave에게 데이터를 전송하고 그 다음 8번의 sclk 주기 동안 slave로부터 데이터..

Verilog - SPI (Master, Slave, FSM) (1) FSM, SLAVE

* SPI에 대한 기본적인 통신 과정은 알고 있다는 가정에 글을 작성합니다.https://insoobaik.tistory.com/571 - SPI  이론FSMFSM_SPI & SPI_SLAVEFSM_SPI (Master)SPI_SLAVEFSMFSM (Finite State Machine)유한 상태 기계는 특정한 상태(state)들 사이를 전이(Transition)하며 동작하는 추상적인 모델이다.이는 상태(state), 상태 전이(transition),  초기 상태(initial state), 종료 상태(final state)로 구성된다. - 상태(state) : 시스템이나 장치가 가질 수 있는 다양한 조건이나 모드를 나타낸다. 각 상태는 시스템의 특정 동작을 나타낸다.- 상태 전이(Transition) ..

Xcelium, Verilog를 이용한 CPU RISC 구조 설계

CPU RSIC Multiplexor Driver ALU Controller Register Memory Counter RISCCPU CPU (Central Processing Unut) : 중앙 처리 장치 - CPU는 4단계의 사이클로 명령어를 처리한다.1. Fetch : 명령어 인출 - CPU에서 명령어를 읽어온다.2. Decode : 명령어 해독 - 읽어온 명령어를 해독한다.3. Execute : 명령어 실행 - 해독한 명령어를 실행한다.4. Store : 결과 저장 - 계산 결과를 저장한다.  - CPU에는 특수한 목적을 가지고 있는 레지스터들이 있다.1. AR(Address Register) : PC에 저장된 명령어가 주소 버스로 이동하기 전에 일시 저장한다.2. PC(Program Counte..

Verilog - 7-Segment Count Up (0~9999) / FPGA

1. Introduction2. Signal Description3. Verilog Code4. Trouble Shooting1. Introduction 1.1. Overview- 0~9999까지의 숫자를 Count하여 7-Segment를 통해 해당 Count한 숫자를 표현하는 기능을 구현 1.2. FeaturesVersion 1 - Clock 신호를 분주하는 모듈- 4-Digits에 필요 신호를 전달하는 모듈- 7-Segment에 필요 신호를 전달하는 모듈- 숫자를 Count하여 TOP 모듈에 신호를 전달하는 모듈 Version 2 - Clock 신호를 분주하는 모듈- 4-Digits에 신호를 전달하는 모듈- 숫자 Count 및 7-Segment에 신호를 전달하는 모듈 1.3. Block Diagram..

Verilog - ILA(Integrated Logic Analyzer) 사용법 (FPGA)

ILA(Integrated Logic Analyzer)는 디지털 회로의 디버깅과 분석을 위해 사용되는 도구이다. FPGA(Flexible Programmable Gate Array) 디자인에서 유용하다. ILA는 디지털 회로의 내부 신호를 모니터링하고 분석하는 데 도움이 되며, 디버깅 시간을 단축하고 회로의 동작을 이해하는데 도움이 된다. 좌측 IP Catalog를 클릭하여 검색창에 ila를 검색한다. Number of probes는 ILA로 캡처하려는 시그널의 수를 지정하는 항목이다. 이 값은 ILA에서 감시하고 분석할 수 있는 시그널의 개수를 결정한다.일반적으로 디버깅할 시그널의 수가 많을수록 문제 해결이 더욱 쉬워지지만, FPGA 디바이스의 리소스가 한정되어 있기 때문에 최적의 수를 지정해야 한다...

Synopsys - Synthesis 합성

Synopsys를 통해 Synthesis 합성을 하기 위해서는 1. verilog-HDL .v 파일 2. 게이트 정보가 담긴 .db 파일 3. .sdc 파일 혹은 제약 정보가 필요하다. remove_design -all //초기화 set FILE "counter" //모듈명 선언 set synthetic_library "../LIB/DBH_1225RS13SD_GEMV1P8V_FF_1P32V_M40C.db" //라이브러리 위치 지정 및 파일 지정 //db 파일을 넣어줘야 한다. set search_path "../LIB/" set target_library "../LIB/DBH_1225RS13SD_GEMV1P8V_FF_1P32V_M40C.db" //타겟 라이브러리 지정 및 파일 지정 //db 파일을 넣어줘..

728x90