서울기술교육센터 19

240624_microblaze_interrupt

>1. button detecter먼저 2. axi는 그다음 button -> shift register로 구성right shift registern-1 input AND ( 0은 not input )clk가 너무 빠르면 debounce.prescaler 를 통해 clk 조절top module에다가 모듈 추가하고 이어준다.이런식의 btn_detector를 만들고 있다.top의 input output은 여기서 추가. 모듈자체의 추가 input output 라서 ; 가 아니라 ,로 해줘야 한다.기모듈과의 연결인터페이스와 연결 필요.reg 0 을 쓰고 싶지만 다이렉트로 reg 0 에 연결할 수 없다.새로 reg 만들어주고이런 회로를 짜고여기서 이어준다.완성.전체 GPIO에 interrupt on.--> CH_..

240621_ MicroBlaze_axi4_lite 분석

register 4개를 만들어서 slave_reg 4개가 존재. 내가 만든 IP를 사용하기 위해 구성하는 방법.나만의 IP를 AXI4-Lite의 Slave를 통해서 TOP module 로 묶어서 사용.Axi Temp의 Top모듈 안에 모듈이 있는 형식.TOP안에 Axi4_lite_temp가 있다.AW, W, B, AR, R 순서로 wire, 존재--> 내부 모듈을 분석해보자. 구현 방식을 아주 조각조각 냈다.AXREADY 신호를 생성하는 구간.awready 0 , wr_en = 1 --> 실행. clk 딱 걸리면서awready = 1이 된다. 그리고 Addr값이 이때 저장된다.CLK만 pos -> 변경wready -> 같이 켜진다. 하지만 AWREADY는 다음 클락에 알아서 0이 된다. wstrb for..

240620_ microblaze myIP

기본적으로 peripheral들은 다 요기에 다 붙는다.Application을 구동시키기 위한 기반 : platformmyIP_system : applicationmyIP_warpper : flatform vitis는 이클립스 기반이기 때문에 stm32IDE와 매우 비슷.unsigned 32bit.mode : +4 data : + 0레지스터에 접근을 해주는 범용 함수들이 있다.  Microblaze에서 만들어진 AXI4의 구조 AXI4_Lite_test_ip_V/O.V선언했던 4개의 register내부에 4개의 register가 존재한다.내부와 외부에 ( . ) output port를 만들어 줘야함.코드로 직접 연결중.현재 상태.이제 block design에 IP를 추가하려 한다.IP 만들어서 추가했고 ..

240619_ UVM _ axi_ slave _ mem

UVM 검증환경Test Bench Module Test Bench -> [TEST -> [ Sequence , env-> [scoreboard , agent - >[ sequencer, monitor, driver] ] ] ]sequencer : . squence - driver 사이에서 arbitor( sv의 event 역할 )seq_item ( transaction ) SW로 생각하자. 실행 전 값들이 저장중.최외각 TestBench 모듈. db 공간에만 interface값을 등록해둠.type, key, value 값이 등록되어있다. --> monitor & driver가 꺼내쓴다.db까지만 구현해둔 것.이미 만들어진 uvm_test 를 상속받겠다.uvm frame work 안에서 맞추는중.insta..

240618_ UVM_tutorial --> Adder

UVM 틀대로 사용하라.이렇게 되어있으면 신입들도 어느정도 사용할 수 있다. 인력낭비가 줄어든다. 시간도 덜들고.UVM : Universal Verification Methodology 틀 Framework 의 변화 없이 모둔 DUT를 검증 할 수 있을까?SystemVerilog를 사용해야겠다 . class기능 : 객체지향 OOP : 객체지향 프로그래밍 특징-캡슐화(+은닉성) : 묶어서 gen, drv, mon , scb  등등 묶어서 사용 (보이지 않게.)SysytemVerilog는 Verilog, C++, Java 의 영향을 받은 언어이다.-상속 : 일반언어 : 상속           컴퓨터 : 확장성, 기존기능을 포함한 기능추가.-다형성 : 중요.다형성이 주는 모델. 팩토리 패턴은 생성패턴중 하나...

240617 AXI4_Lite

이 신호는 VALID 하다. 알려주기 위해 ARVALID + ADDRESS 같이.RVALID도 RDATA와 함께 보내진다.write 할 때 도 같은 방식이다.채널마다 ID가 있다.우린 LITE 버전으로 설계하기에 ID를 뺐다.AXI4의 특징 : VALID & READY ==> HANDSHAKE 이야기를 반드시. AW, W, B 채널. AR, R 채널. 5개의 채널로 각각 분리되어 처리.언제 처리를 할 것인가. --> VALID를 받은 후 info 처리. SLAVE에서 무조건 대기.첫번째 --> 언제 보낼지 모른다.두번째 --> READY가 먼저 떴다. : 처리도 안했는데 먼저 뜬다. : 곧 보낼거라는 것을 예상하고 있기 때문에.세번째 --> info 정보를 1clk 내에 처리. 이제 Write trans..

240614_ AXI4_Lite_RAM

AMBA : Adavanced Microcomtroller Bus Architecture ARM사가 개발한 시스템 LSI 용 칩. One-Chip) SoC.                       AMBA 3.0 1.0       2.0         AXIASB -> AHB   -> AHBAPB -> APB   -> APB지금까지 한거 : AMBA AHB-Lite 구조. : Master가 1개.AHB : APB에 비해 높은 성능의 버스. 64/128bit, Multi Mater 기능.APB : 낮은 대역폭의 주변기기를 위한 버스.즉 AHB는 CPU와 Memory를 이어주는 버스.APB는 주변기기를 이어주는 버스.ARM 사에서 프로토콜에 맞는 BUS가 필요함을 느껴서 새로운 BUS 제작. 회로복잡, 데이..

CPU 설계 두 번째 발자국 RV32I_ISA : R, IL

R  - TYPE : RS1 , RS2 연산 ROM : Instruction Memory CPU_CORE를 동작시킬 명령어를 넣어주는 곳이다.명령어를 넣어주고 PC를 통해 ROM의 주소값을 + 4  씩 해주면 ROM이 ROM[0] ROM[1] 씩 명령어를 출력한다.ROM에서 보낸 명령어는 REG File과 CONTROL UNIT으로 들어간다. RegisterFile : CPU의 기본값이 저장되어 있다. Waddr로 주소를 지정한 위치에 RegFile[Waddr]로 값이 저장된다.Rdata를 통해 지정된 RAddr에 맞는 RegFile[RAddr]이 출력된다. CONTROL UNIT : 명령어가 들어왔을 때 OP, FUN3, FUN7로 INPUT되어 CPU를 동작시킨다.  INPUT 된 OP, FUNT3,..

CPU_설계 첫걸음.SV Register File & ALU

초기값은 R0 = 0 고정된 값으로 시작했다. 1. C2. HW DataPath3. ASM control Unit4. Control Signal Truth Table 과정을 통해 설계한다.이 과정에서 While( i 상단에 있던 Register가 Fegister File로 바뀌면서 RD1 , RD2를 선택해 ALU 연산이 가능하다.Datapath를 통한 코드와 Control Signal Truth Table을 통해 만들어진 Control Unit을 통해 회로가 완성된다. MuxSel (WD, Write Data): 0 --> ALU_OUT 값을 받아온다. 1: 1을 받아온다.WA[ ] (Write Address) :  R[ ] 값을 불러온다.Ra1 ,2 (Reda Address) :는 어떤 RD 1,2 ..

240528_ 0-->10 UPCOUNTER

CISC, RISC, X86-->RISC 중 가장 인기많은 : ARM핸드폰 ARM A시리즈CISC VS RISC Complex Instruction Set Computer VS Reduced Instruction Set Computer Instruction Set : 명령어 모음. 어셈블리어. (머신코드를 사람이 이해할 수 있는 언어로)윈도우 어플리케이션 : C#옛날 어플리케이션: MFC애플 CPU : M1 M2 ==> ARM CPUCISC : 어셈블리어가 많다.RISC : CISC에서 중복된다고 생각되는 명령어들을 하나로 통합.RISC : 컴파일을 해보면 좀 길긴 하다. CISC 성능이 더 좋았지만 지금은 서로 비슷비슷하다. 그리고 RICS가 슬슬 역전하고 있다. 애플 M시리즈 : 저전력, 열 덜나고,..