본문 바로가기

FPGA/개발

(17)
[Vivado 2020.2] Block Design 변경 시 시뮬레이션 업데이트 방법 문제 현상: 위 IPI Block design에서 inv_resetn IP가 없었을때 behavioral simulation을 했었고 아래와 같이 inv_resetn IP가 나타나지 않았다. 이후 IPI Block design에서 inv_resetn IP를 추가했고 Relaunch Simulation을 했지만 inv_resetn IP는 Scope상에서 나타나지 않았다. 해결 방법: 1) Settings -> Project Settings -> Simulation -> Advanced Enable incremental compilation 체크 해제 2) IPI -> Validate design -> Save Block Design -> Generate Block Design 3) Simulation ->..
[UltraScale Architecture GTH Transceiver] RX Byte and Word Alignment Parallel데이터 8비트를 Serial lane으로 0xff/0x00/0xff와 같이 보낼 때 받는쪽에서는 0xff/0x00/0xff로 인식을 할 수 없다. 0xf0/0x0f/0xf0/0x0f등 어떻게 8비트를 끊어서 보느냐에 따라 받는 데이터가 달라지게 되기 때문이다. 이를 보안하기 위해서 RX transceiver 측에서 RX Byte and word alignment를 통해 데이터를 어디서 끊어 병렬데이터로 만들지 알 수 있다. Transmitted First: 처음 받은 데이터 Alignment Block Finds Comma: Transceiver내부의 Alignment를 담당하는 Block이 Comma라는 데이터를 찾아 10 bits씩 끊는다. All Subsequent Data Align..
[Xilinx FPGA, verilog] power-on reset을 하지 않았을 때 reg의 값은 무엇일까? Revision history 220823 - Xilinx Primitive 추가 참고: https://support.xilinx.com/s/question/0D52E00006iHkLlSAK/whats-initial-value-of-register-without-poweron-reset?language=en_US what''s initial value of register without power-on reset? support.xilinx.com 예문 reg [3:0] cnt;always @ (posedge clk or posedge rst) if( rst ) begin cnt
[Simulation] AXI read write tasks AXI (Advanced eXtensible Interface)란? https://support.xilinx.com/s/article/1053914?language=en_US AXI Basics 1 - Introduction to AXI Introduction These days, nearly every Xilinx IP uses an AXI Interface. Zynq® , Zynq MP, MicroBlaze™ and the new Versal™ Processors all use AXI interfaces. Thus AXI interfaces are part of nearly any new design on Xilinx devices. Understanding the basic support.xilin..
[Xilinx] Native Block Memory Generator Native Block Memory Generator Feature Summary Memory Types The Block Memory Generator core uses embedded block RAM to generate five types of memories: • Single-port RAM • Simple Dual-port RAM • True Dual-port RAM • Single-port ROM • Dual-port ROM For dual-port memories, each port operates independently. Operating mode, clock frequency, optional output registers, and optional pins are selectable ..
[Vivado 2020.2] Block design내 hierarchy 시뮬레이션 방법 Top block design내 hierarchial submodule인 clocking_system 시뮬레이션 방법 1. Generate the Output Products 실행 2. Testbench에서 clocking_system을 instantiate - source탭에서 design_1 → design_1 → clocking_system - clocking_system_imp_L19ZY3이 보이는데 이것이 instantiate을 할 때 쓰이는 이름이고 the unique component/module name 이라고 한다. - VHDL instatiate - Verilog instantiate clocking_system_imp_L19ZY3 dut ( .clk (CLK), .out_clk (ou..
[Vivado 2020.2] Subblock design (Hierarchy)를 다른 Vivado 프로젝트로 복사 방법 Vivado에서 Block Design을 생성하고 특정 기능또는 목적에 따라 Hierarchy를 만들 경우가 있는데 Hierarchy를 다른 Vivado 프로젝트에서 사용할 수 있도록 복사할 수 있다. 방법은 다음과 같다: 1) 복사할 Hierarchy가 있는 Vivado 프로젝트 TCL 창에서 "write_bd_tcl -hier_blks [get_bd_cells ] .tcl"을 입력 (: Hierarchy Blcok의 이름을 넣음) 2) 새로운 Vivado 프로젝트 상위 폴더에 1)에서 생성한 .tcl파일을 복사 붙어넣기 3) 새로운 Vivado 프로젝트 tcl창에 "source .tcl" 입력 4) 새로운 Vivado 프로젝트 tcl창에 "create_hier_cell_ ./ " 입력 Referenc..
Vitis 사용법 1. Block Diagram → Add IP → MicroBlaze 선택 2. 다음과 같이 옵션 선택 후 OK 3. Uart통신으로 Hello world출력을 위한 Uartlite IP 추가 - Block Diagram → Add IP → AXI Uartlite 선택 - AXI Uart16550과 AXI Uartlite 차이: https://support.xilinx.com/s/question/0D52E00006hpgHxSAI/uartlite-vs-uart-16550?language=en_US 4. IPI → Run Connection Automation → 다음 그림에서 S_AXI, UART 모두 선택 5. microblaze_0_xlconcat → Number of Ports → 1로 변경 → OK..