Day1 04 HW Assisted Verification
Day1 04 HW Assisted Verification
하드웨어 연동 검증
(HW-Assisted Verification or HW
Acceleration)
2025
What to do
Host program
CON_FMC
FPGA
LCD
CIS
1
1/19/2025
Table of contents
What to do CON-FMC
Background ► Connect to your FPGA board through USB
3.0
► Semiconductor chip development
► Programming interfaces
► General form of hardware test/verification
► Simple API: C and C++
► Basic types of tests and verification
technologies ► Programming interfaces: AMBA AXI BFM
► Sim, Accel, Emul, and prototype 기본 플랫폼 (basis platform)
► 필요한 패키지들
► 환경 설정 팁
► 기본플랫폼 사용
Integration
test
2
1/19/2025
Reference
model
A test-vector is a set of values for all the
Golden
model
expected input ports (stimuli) and expected
Stimulus Post-
generator processor values for the output ports of a module
DUT under test.
Test-vector
A test-bench that is created to apply inputs,
sample the outputs of the DUT, and
compare the outputs with the expected
(golden) results is called a self-checking
test-bench.
3
1/19/2025
Prototyping TB DUT
Software
simulator Hardware
Real HW Simulator Accelerator Emulator Prototype
3) Emulation
Speed Real time ~10cps ~100kcps ~1Mcps ~10Mcps
Target
DUT
Visibility Poor Excellent Excellent Excellent Poor Board
Debug Poor Excellent Excellent Good Poor Hardware Software
Setup time Very long Very short Short Medium Long 4) Prototype
차례
1. What to do
2. Background
• Semiconductor chip development
• General form of hardware test/verification
• Basic types of tests and verification technologies
• Sim, Accel, Emul, and prototype
3. CON-FMC
• Connect to your FPGA board through USB 3.0
• Programming interfaces
• Simple API: C and C++
• Programming interfaces: AMBA AXI BFM
4. 기본 플랫폼 (basis platform)
• 필요한 패키지들
• 환경 설정 팁
Copyright (c) by Ando Ki
• 기본플랫폼 사용 8
4
1/19/2025
Host program
CON_FMC
FPGA
LCD
CIS
Programming interfaces
Standard C/C++ interface Python interface
CON-FMC
FGPA CON-FMC
FGPA
10
5
1/19/2025
11
CON-FMC
FGPA
CON-FMC
FGPA
12
6
1/19/2025
AMBA AXI
CON-FMC API
(conapi)
conRelease(handle); libusb API
Firmware
(confx3)
return 0; (libusb-1.0) CON-FMC board
} Device driver
(usbfs/WinUSB)
BFM AXI
CON-FMC
FGPA
13
차례
1. What to do
2. Background
• Semiconductor chip development
• General form of hardware test/verification
• Basic types of tests and verification technologies
• Sim, Accel, Emul, and prototype
3. CON-FMC
• Connect to your FPGA board through USB 3.0
• Programming interfaces
• Simple API: C and C++
• Programming interfaces: AMBA AXI BFM
4. 기본 플랫폼 (basis platform)
• 필요한 패키지들
• 환경 설정 팁
Copyright (c) by Ando Ki
• 기본플랫폼 사용 14
14
7
1/19/2025
15
AXI4 bus
PS DDR3
(Transpa (256MB @
rent) 0x1000_0000)
16
8
1/19/2025
17
./lenet ./images/1.png
► on Ubuntu libusb: error [_get_usbfs_fd] libusb couldn't open USB device /dev/bus/usb/001/005: Permission denied
libusb: error [_get_usbfs_fd] libusb requires write access to USB device nodes.
$ sudo apt-get install libusb-1.0.0-dev cannot initialize CON-FMC
18
9
1/19/2025
Do not use Hangul directory name or file name for Vivado project.
19
환경 설정 팁
Add following code in the '.bashrc' at the home directory
set_vivado() { set_confmc() {
if [ -z "$1" ]; then if [ -z "$1" ]; then
version=2021.2 version=2020.06
else else
version=$1 version=$1
fi fi
if [ -f /tools/Xilinx/Vivado/${version}/settings64.sh ]; then if [ -f /opt/confmc/${version}/settings.sh ]; then
source /tools/Xilinx/Vivado/${version}/settings64.sh source /opt/confmc/${version}/settings.sh
else else
echo "Error could not find ${version}" echo "Error could not find ${version}"
return -1 return -1
fi fi
return 0 return 0
} }
20
10
1/19/2025
기본플랫폼 사용
Directory structure Make sure following
► Vivado environment ($ set_vivado)
► CON-FMC environment ($ set_confmc)
project_basis_platform
► JTAG-USB connected
hw
Zed.Confmc
► CON-FMC USB connected
xdc
Building HW and programing the FPGA
► $ cd ....project_basis_platform/hw/Zed.Confmc
► $ make
1 2 3 ► tcl> syn_impl
sw.native Makefile run_vivado.tcl design_axi_ddr.tcl ► ... program FPGA using Hardware manager
test_mem
Building program and running the program
► $ cd ....project_basis_platform/sw/test_mem
4
► $ make
Makefile
► $ make download compile program
src
► $ make program PS initialize (FSBL)
5
► $ make run
PL programming (BIT)
main.c
Run the program
21
References
22
11
1/19/2025
㈜퓨쳐디자인시스템
(34112) 대전광역시 유성구 대덕대로 593 (도룡동386-2,3번지) 대덕테크비즈센터(TBC) 504
호(042) 864-0211 | [email protected] | www.future-ds.com/ko/
Future Design Systems, Inc.
504 TBC (Daedeok Tech Biz Center), 593 DaeDeokDae-Ro, Yuseong-Gu, Daejeon 34112, Korea
+82-042-864-0211 | [email protected] | www.future-ds.com/en/
FUTURE
Design Systems
23
12