[VerilogHDL] AXI-Lite 구현
VerilogHDL/Study2024. 6. 18. 09:14[VerilogHDL] AXI-Lite 구현

1.  APB(Advanced Peripheral Bus)저전력, 저가, 간소화된 버스속도가 느린 peripheral을 연결하는데에 사용(TIM, UART 등)위와 같이 비교적 복잡하지 않은 구조를 가지고 있다.(Master 1개, Slave 여러개)7개 Input, 1개 OutputSelect 신호를 통해 Slave를 특정하고 해당 Slave 메모리 안의 데이터를 Address를 이용해 접근한다. APB의 FSM은 위와 같은데ACCESS state에서PREADY == 1이고 더이상 전송이 없으면 IDLE state로 가고PREADY == 0일때는 계속 IDLE state를 유지한다  2.  AHB(Advanced High-performance Bus)APB와는 다르게 Arbiter가 존재한다.Sel 신..

[VerilogHDL] RISC-V 기본, RV32I R-Type, IL-Type
VerilogHDL/Study2024. 6. 18. 01:22[VerilogHDL] RISC-V 기본, RV32I R-Type, IL-Type

1.  RISC-VRV32I(Base Integer Instruction Set)를 구현해보자.→ 곱셈, 나눗셈 연산이 없는 정수형 명령어 세트  Instruction 구조(1) : RV32I의 Register File : 32개의 레지스터(2) : 명령어 구조는 32bit 고정(RISC의 특징), R ~ J-Type 구조가 있다. 각 명령어 레지스터에 대한 프로그래밍 권장사항(의미부여) → 굳이 안따라가도 되지만 이런식으로 가이드가 정해져있다.   2.  CPU 기본 모듈ALURegister FilePC(Program Counter) RegisterInstruction이 실행할 위치(Instruction Memory)를 가지고 있는 RegisterInstruction MemoryData Memory  ..

[VerilogHDL] CPU 기본 구조, 메모리, Counter 설계(Control Unit, Data Path)
VerilogHDL/Study2024. 6. 3. 09:31[VerilogHDL] CPU 기본 구조, 메모리, Counter 설계(Control Unit, Data Path)

#1.  CPUCPU 아키텍처에는 크게 CISC와 RISC가 있다. #1-1.  CISC(Complex Instruction Set Computer)복잡한 명령어CISC 프로세서에는 매우 복잡하고 단일 명령어로 여러 개의 Low-Level 작업(예: 산술과 결합된 메모리 액세스)을 수행할 수 있는 대규모 명령어 세트가 있다.가변 명령어 길이CISC 아키텍처의 명령어는 길이가 다양할 수 있으므로 더 복잡한 작업이 더 적은 명령어로 인코딩되므로 프로그램 크기가 더 작아질 수 있다.레지스터 적음각 명령어의 복잡성과 기능으로 인해 CISC는 더 적은 수의 레지스터를 가지며 메모리 작업에 더 많이 의존한다.Microcode복잡한 명령어를 프로세서에서 내부적으로 처리하는 간단한 단계로 분해한다.[장점]High-Le..

[VerilogHDL] FIFO, UART&FIFO
VerilogHDL/Study2024. 5. 30. 09:11[VerilogHDL] FIFO, UART&FIFO

#1.  FIFO(Fist In First Out)== Circular Queue, 선입선출push & pop할 떄 버퍼의 어디를 가리킬지 포인터가 필요하다.read하는 속도와 write하는 속도가 다를때 FIFO 사용  Push algorithmpush 할 때 memory full이면 안된다.  Pop algorithmpop 할 때 memory empty면 안된다.  FIFO modulepush 할 때 memory full이면 안된다.pop 할 때 memory empty면 안된다.rw_en = 1일때 write 가능  구현[FIFO module]더보기`timescale 1ns / 1psmodule fifo #( parameter ADDR_WIDTH = 3, DATA_WIDTH = 8) ( ..

[VerilogHDL] Verification(32bit register, BRAM)
VerilogHDL/Study2024. 5. 23. 01:53[VerilogHDL] Verification(32bit register, BRAM)

1.  SystemVerilog - 32bit Register  32bit Register 구현더보기`timescale 1ns / 1psmodule register( input clk, input reset, input [31:0] D, output [31:0] Q ); reg [31:0] Q_reg; // reg [31:0] Q_next; assign Q = Q_reg; always @(posedge clk, posedge reset) begin if(reset) begin Q_reg    1-2.  Verification  위와 같이 생성자를 반복문 안에 넣었을 때 문제가 생기지 않을까?trans = new() 할 때마다..

[VerilogHDL] System Verilog 기초
VerilogHDL/Study2024. 5. 22. 01:18[VerilogHDL] System Verilog 기초

1.  System Verilog  1. Transaction : test를 위한 Data 묶음         a. DUT와 테스트벤치 간의 데이터 전송을 추상화한 것 2. Generator : 입력 Data(Transaction) 생성 3. Driver : Data → H/W 신호 변경         a. Generator에서 생성된 Transaction을 실제 신호로 변환하여 DUT에 전달         b. 인터페이스를 통해 DUT와 통신         c. S/W 개념인 Class를 H/W와 통신하게 해주는 역할 4. Monitor : DUT 출력 신호를 Data(Transaction)으로 변경         a. DUT의 출력을 관찰하여 수집하고, 이를 분석하거나 기록 5. Scoreboard ..

image