pynq培训day2

  • 了解Overlay设计方法
  • 了解HLS开发工具
  • 使用HLS以及Vivado工具自定义Overlay
  • 重构BaseOverlay

1.了解Overlay设计方法

pynq培训day2_第1张图片
pynq培训day2_第2张图片
pynq培训day2_第3张图片
PS和PL的连接其中有3种是AXI的接口(GP、HP、ACP),还有一种是GPIO接口
GPIO——GPIO
MMIO——GP Ports

IP_BASE_ADDRESS = 0x400000000
ADDRESS_RANGE = 0x1000
ADDRESS_OFFSET = 0x10

from pynq import MMIO
mmio = MMIO(IP_BASE_ADDRESS, ADDRESS_RANGE)

data = 0xdeadbeef
mmio.write(ADDRESS_OFFSET, data)
result = mmio.read(ADDRESS_OFFSET)

XInk——DDR——HP Ports
DMA

2.什么是HLS

pynq培训day2_第4张图片
pynq培训day2_第5张图片

3.使用HLS以及Vivado工具自定义Overlay

需要bit和tcl还有hwh三个文件
在SDK中可以看到寄存器分配的地址

添加驱动binto来调用IP核

from pynq import DefaultIP

class AddDrive (DefaultIP):
	def __init__(selt, description):
		super().__init__(description=description)
	bindto = ['xilinx.com:hls:add:1.0']	// php用法?bindTo — 复制当前闭包对象,绑定指定的$this对象和类作用域。
	
	def add(selt, a, b):
		self.write(0x10, a)
		self.wrtie(0x18, b)
		return self.read(0x20)
from pynq import Overlay
overlay = Overlay('/home/xilinx/jupyter_notebooks/pynq_add/design_1.bit')

你可能感兴趣的:(PYNQ)