공부방/Verilog_vivado 8

조합회로와 순차회로, Fork 종류

5.7 블록문begin-end 절차형 할당문 블록folk-join 병렬문 블록 -해당 블록에 대한 지연변수, parameter 그리고 named event를 선언disable문에서 특정 블록을 참조 : 시작시간과 종료시간의 개념을 가지고 있다. 첫 문장이 시작, 마지막 문장이 종료folk-join에서는 모든 첫 문장이 동시에 실행 = 시작 시간은 같고, 마지막 문장이 종료. Folk - join-블록 내의 문장들은 나열된 순서에 무관하게 동시에 수행.-각 문장의 지연은 블록에 들어가는 시뮬레이션 시간을 기준으로 고려된다. 각 문장 사이의 상대적인 지연이 아닌 블록에 들어가는 시뮬레이션 시간을 기준으로 결졍된다.-제어는 각 문장의 지연이 고려된 상태에서 시간적으로 마지막에 실행되는 문장의 실행이 완료된 이..

AMBA_ AXI4

APBAHBASBAXI AXI :AXI in a multi-master SystemAXI ChannelsMain AXI Features- Independent read and write channels- Multiple outstanding address이전의 transaction이 완료되기 전에 새로운 transaction을 가능. 병렬적인 전송이 가능하다. - No strict timing relationship between address and data operations주소 및 데이터 전송은 독립적으로 전송될 수 있다. 주소 전송 후 즉시 데이터 전송이 이루어 지지 않아도 된다. --> 유연성 증가. Strict timing:데이터의 전송과 응답이 정해진 시간 내에 이루어져야 한다. Strict..

AXI4-Lite Read Address _ Read Data

버스트 엑세스기능이 빠진 AXI.실제 AXI4 보다 간단한 인터페이스.Read Address, Read Data, Write Address, Write Data, Write Response로 구성. ARVALID  가들어온 상황에서 ARREADY가 되면 데이를 받는다. RDATA가 101로 바뀐다.SLAVE도 RREADY가 되다가  RVALID가 될 때 데이터를 받는다.이 순서대로 신호가 들어와야 RREADY가 되며 데이터를 받는다.==> HAND SHAKE 가 되어야 신호를 받을 수 있다.MASTER가 ARVALID --> 할 때 SLAVE가 ARREADY을 보내줘야 ADDRESS 전송.SLAVE가 RVALID --> 할 때 SLAVE가  RVALID를 해줘야 DATA를 전송한다. MASTER : AD..

CPU 세번째 발자국 + I, S, B, U, J, JA

I-TYPE IL은 R과는 달리 imm 이 추가된 Extend를 추가한 기능이 들어가야하고 그에따라 다른값이 ALU에 들어가야한다. AluSrcMux를 통해 1이 들어가게 해준다.I가 달라진건 R은 alu에서 나온걸 mux선택으로 받았는데 I는 ram 에서 나온걸 mux선택으로 받는다.IL은 rd = M( rs1 + imm)I는 rd = (rs + imm) 이다. 달라진점은 M인 RAM을 거치지 않는다. 그래서 RFWriteDataSrcMuxSel 을 0 으로 줘서 ALU의 값을 바로 받아온다.S-TYPES는 M[rs1 + imm] = rs2 이다. 새로운 extType가 생겼고 새 연산을 rs1+imm을 해준 후 출력은 rs2가 M인 RAM으로 들어가야한다.B- TYPE B는 if문이 들어가고 PC 로..

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 ..

FIFO.SV

ENV ( INTERFACE , TRANSACTION ==>  GEN -> DRV -> MON -> SCB )Transaction : rand변수, constraint  classInterface     : 전선다발. interface Driver : `include "transaction , interface" : DATA 생성.drv.reset, drv.run : 초기값 설정. Generatior : `include "transaction" : DATA -> HW 신호로 생성.randomize() 실행. SCB에서 EVENT 받는곳.  Monitor : `include " interface" : DUT 출력신호를 DATA로 변경. HW데이터 -> SW데이터Scoreboard : `include " t..