공부방/Verilog_노진호교수님_서울기술교육센터_필기 27

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 제작. 회로복잡, 데이..

240604_ GPIO, Assembly

ROM과 RISC-V CPU : I BUSRAM과 RISC-V CPU : D BUSROM에서 RISC-V 로는 I BUS를 통해 Instruction만 받고RISC-V에서 RAM peripheral, sp2 등등에는 WDataBus, Control Signal Bus, Addr Bus 세가지와 Decoder이 Adder Bus를 받아 RAM, peripheral, sp2중 어느것을 실행시킬지 정하고 그 출력값이 MUX를 통해 RDataBus가 되어 RISC CPU로 되돌아온다. 4GB, 2**32bit --> 32bitAddress.초기화되면 0번지로 ROM먼저 읽어들어야 하기 때문에 ROM의 Instruction Memory가 0번지이다.그 이후는 할당하기 나름이다.32bit중 뒷 8bit는 주소 한세..

240604_ 플젝 목표.

CPU 설계 : RISC-V , ISA RV32IVerilog, SystemVerilog 이용해서 설계.Computer Architecture.Instruction (CPU의 고유 명렁어 ) 이해.    : 명렁어구조 -> 이 명령어가 왜 이 구조인가.    -> 명령어를 실행하려면 CPU H/W구조는 어떻게 설계 해야 하는가?C언어 코드에서 Compiler의 이해 , 어셈블리어 변환이 되는 compiler는 왜 이런 어셈블리어 코드로 변환 했을까?    --> 개인적 분석이 필요.        - 변수선언, 함수 Call, 함수 Return, 포인터Memory Mapped IO    - Periperal 연동가능. Register map. - my IP 제어