Bootstrap

ZYNQ7010教程(一)PL部分

名词

  1. 处理器系统部分Processor System(PS)
  2. 可编程逻辑部分Programmable Logic(PL)
  3. 软件开发套件 Software Development Kit ( SDK )
  4. IDE接口 Integrated Drive Electronics(IDE)
    ATA接口(Advanced Technology Attachment)
    这两个一样吧

丐版流程

基本文件生成

1.开发板型号选择

xc7z010clg400-1
50MHz

2.加源文件

Define Module。 加的 .v 文件

3.加管脚约束

加的 .xdc 文件
管脚分配:RTL Analysis -> Open Elaborated Design. Window -> I/O Ports.

//管脚约束
set_property PACKAGE_PIN " 引脚编号"  [get_ports “端口名称”]
set_property PACKAGE_PIN K17  [get_ports {led[0]} ]
//电平信号约束
set_property IOSTANDARD " 电平标准"  [get_ports “端口名称”]
set_property IOSTANDARD LVCMOS33 [get_ports {led[0]}]

4.加时序约束

SYNTHESIS -> Run Synthesis 跑完以后别继续
SYNTHESIS -> Open Synthesized Design ->Constraints Wizard. 改sys_clk 50MHz然后就可以OK,Finish
改完以后 .xdc 文件更新了。Reload重新加载并保存。

5.编译

编译的过程可以细分为综合布局布线生成bit文件等。
Run Implementation布局布线。
可以直接点Generate Bitstream。
bit文件生成完成后,可以打开Project Summary页面的Table来查看板子上实际资源的使用情况。
LUT(查找表);F(Flip Flop寄存器); IO(管脚);BUFG(时钟Buffer)。

仿真验证

1.仿真设置

SIMULATION -> Simulation Settings
在这里插入图片描述

2.加激励文件

可以先不添加IO Ports
定义输入和输出信号。实例化模块。添加复位和时钟的激励。

在定义寄存器时:
寄存器在always块里使用:必须定义为reg类型
仅是用于连线或是直接赋值:需定义为wire类型

输入信号的类型不能定义为reg型.

3.仿真跑起来

SIMULATION -> Run Simulation -> Run Behavioral Simulation
要是想看的是中间的过渡信号,在Scope里面点一下,然后就可以出来一堆。
加到右边:Add Wave Window。
Restart按钮复位一下,再点击Run All按钮。

下载

简单看一看

PROGRAM AND DEBUG -> Bitstream Settings
设置完成后单击Generate Bitstream生成bit和bin文件。
在这里插入图片描述
PROGRAM AND DEBUG -> Open target -> Auto Connect
连上以后Program Device,再点一点。Bit文件就下进去了,但是掉电不保存

程序固化

ZYNQ程序固化与FPGA不同。得考虑PS部分。

在线调试—ILA IP

1.ILA IP在线调试

一. 添加

IP Catalog ->ila

二. 信息修改

  • Component Name
  • General Options
    - Number of Probes 观察的信号数量 。
    - Sample Data Depth采样深度—总共能存储数据的总量。
    (Number of window) X (Window Data depth) = 总的存储数量
    存储总量是1024,当(Window Data depth) =1024时,只能显示一个窗口的数据.
  • Probe_Ports
    - Probe_Width 设置位宽。看一下采的数据是多少位的
    三. 例化模块重新下程序

可以在 .veo 文件里找一下模板
源文件程序里面加进去,重新生成Bitstream文件。
重新下一下。bit 和 ltx 文件,点击 program。
在这里插入图片描述
四. 在线调试

  1. 点击运行看一看。
  2. 也可以触发采集,在Trigger Setup窗口点击 + 。
    将Radix 改为 U ,也就是十进制,设置value值。再点运行。

2.MARK DEBUG

下面介绍在代码中添加综合属性,实现在线调试。
1. 将 ila 的例化部分注释掉。
2. 需要看的信号在定义前加 (* MARK_DEBUG=“true” *)
3. Run Synthesis
4. Setup Debug 。小小的设置一下Sample of data depth 然后可以完事了。
5. 保存以后在 .xdc 文件可以看见 ila 核约束
6. 重新生成Bitstream文件,下程序。
7. 其余同上。

参考文献

  1. CSDN Blog:Vivado下的集成逻辑分析仪ILA 入门
  2. cource_s1_ALINX_ZYNQ(AX7Z010_AX7Z020)开发平台基础教程V1.04
;