北京中教仪装备技术有限公司

Download Report

Transcript 北京中教仪装备技术有限公司

版权所有,禁止未经授权的商业使用行为
FPGA System Design Primer
高教社&XILINX SOC竞赛培训系列课程
何宾
Tel:13911127536
何宾
Tel:
email:[email protected]
email:
高等教育出版社
所有培训资料均可从网站
http://bucteda.eefocus.com下载
北京中教仪装备技术有限公司
北京中教仪装备技术有
限公司
基于AXI4的可编程SoC系统设计
(下)
培训内容
Xilinx片上可编程系统设计导论
AXI4规范
MicroBlaze处理器原理
EDK13.1工具概述
操作系统(OS)及板级支持包(BSP)概述
基于MicroBlaze和AXI4的可编程SoC系统实现
北京中教仪装备技术有限公司
片上可编程系统设计实验
--实验内容
介绍EDK13.1软件的使用方法和设计流程。
在介绍这部分内容时,使用捐赠的板卡Nexys3,该板卡
带有Xilinx最新一代的Spartan-6 FPGA芯片。
北京中教仪装备技术有限公司
片上可编程系统设计实验
--实验内容
该内容主要包括:
1. 工程的建立;
2. 添加AXI4 IP到硬件设计;
3. 定制LED IP,并添加IP到系统,编写应用程序;
4. 定制7段数码管 IP,并添加IP到系统,编写应用程序;
5. 定制PWM IP,并添加IP到系统,编写应用程序;
6. 实现AXI4中断控制系统;
7. 使用AXI4 Chipscope实现系统协同调试。
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--设计结构原理
Microblaze
MBDEBUG
JTAG
MDM
M_AXI _DP
AXI-Lite
DLMB
ILMB
LMB
BRAM
CNTLR
LMB
BRAM
CNTLR
GPIO
DIP
GPIO
PUSH
UART
RS-232
MY IP
低通滤
波器
BRAM
这就是本实验要完成的部分
使用BSB建立的最小系统结构
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--设计目标
设计一个脉冲宽度调制(Pulse-Width Modulation,
PWM)控制器IP核, 通过该控制器连接到板上的低通滤
波器,产生下面的三种信号:
正弦信号;
三角信号;
方波信号;
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--设计原理
使PWM的占空比的变化,反映需要产生波形的变
化规律
MicroBlaze
AXI-LITE
寄
存
器
控
制
逻
辑
低通滤波器
LPF
PWM_IP
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
-- PWM实现原理
#include "stdafx.h"
#include "math.h"
#define N 64
int main()
{
float y;
int i;
unsigned j;
for(i=0;i<N;i++)
{
y=sin(((3.141592653*2)/N)*i);
j=(int)(y*127+128);
printf("%x\n",j);
}
return 0;
}
生成正弦查找表
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--打开前面的设计
在开始这个实验以前,先建立一个lab5的目录,将刚
才lab1下所有的文件复制到新建的lab5目录下.
这个实验基于lab1前面的设计实现,设计并添加定制
IP到设计中,并对其进行测试.
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--打开前面的设计
在Windows操作系统下,选择所有程序->Xilinx ISE
Design Suite13.1->EDK->Xilinx Platform Studio(XPS)。打
开EDK软件。
1)打开XPS,在XPS主界面选择File->Open Project,
出现下图界面。选择Open a recent project,然后单击ok按
钮。
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--打开前面的设计
打开已经存在的工程,
选择该选项
点击”OK”按纽
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--打开前面的设计
定位到所在目录的system.xmp文件
然后点击“Open”按纽
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--定制PWM IP核
选择”创建或导入外设“
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--定制PWM IP核
点击“Next”按钮
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--定制PWM IP核
选择创建新外设模版
点击“Next”按钮
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--定制PWM IP核
点击“Next”按钮
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--定制PWM IP核
输入IP核的名字:pwm_ip
点击“Next”按钮
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--定制PWM IP核
选择接口AXI4-LITE
点击“Next”按钮
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--定制PWM IP核
不选中
选中:用户逻辑软件寄存器
点击“Next”按钮
你需要实现的部分
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--定制PWM IP核
对寄存器的读写控制
寄存器的个数,根据实际需要使用的情况设置
点击“Next”按钮
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--定制PWM IP核
点击“Next”按钮
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--定制PWM IP核
点击“Next”按钮
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--定制PWM IP核
产生ISE工程
生成软件驱动
点击“Next”按钮
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--定制PWM IP核
点击“Finish”按钮
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--定制PWM IP核
所创建的IP核已经添加到IP库中
位置在工程目录下的pcores目录中
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--定制PWM IP核
双击PWM_IP,准备将其添加到设计
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--定制PWM IP核
点击“Yes”按钮,同意将其添加到设计中
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--定制PWM IP核
使用默认设置,并点击“OK”按钮
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加PWM IP核
点击“OK”按钮
选择使用XPS自动总线连接和存储空间分配
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加PWM IP核
选择总线接口标签
自动将其连接到axi4lite_0
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加PWM IP核
选择地址标签
自动进行存储空间分配
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加PWM IP核
选择总线接口标签
选中pwm_ip,右击鼠标
选择View MPD文件
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加PWM IP核
添加下面一行, 端口名字PWM, 方向输出
保存修改后的文件
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加PWM IP核
选择总线接口标签
选中pwm_ip,右击鼠标
选择Browse HDL Source…
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加PWM IP核
选择user_logic.vhd
点击“打开”按纽
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加PWM IP核
用HDL语言,添加pwm端口
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加PWM IP核
正弦查找表深度63,
宽度8位(由正弦
生成C语言得到)
状态声明
内部时钟声明
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加PWM IP核
寄存器slv_reg1的内容为0时,计数器值
为0;
产生分频时钟, 分频因子由slv_reg0给
出
分频器模块,用于产生用于生成pwm
波的分频时钟div_clk
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加PWM IP核
Pwm的输出为高‘1’;
当计数值小于ROM(i)时,计数
继续;否则进入下一个状态
当计数值小于255时,pwm输出
为‘0’;
否则,i+1,准备找ROM表中的
下一个值,pwm_count值复位。
进入初始状态
状态机用于生成和正弦
波变化对应的pwm波
保存修改后的文件
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加PWM IP核
选择总线接口标签
选中pwm_ip,右击鼠标
选择Browse HDL Source…
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加PWM IP核
选择pwm_ip.vhd
点击“打开”按纽
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加PWM IP核
用HDL语言,添加pwm端口
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加PWM IP核
用HDL语言,添加PWM端口映射
保存修改后的文件
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加PWM IP核
选择该选项,使变化生效
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加PWM IP核
选择端口标签
展开pwm_ip_0
下拉框下选择make External,
表示该网络将连接到FPGA
物理引脚上
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加PWM IP核
选择端口标签
新生成的外部端口名字 pwm_ip_0_PWM_pin
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加PWM IP核
选择system.ucf文件
添加pwm_ip_0_PWM_pin引脚约束
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--生成网表
下一步,选择这个, 产生网表
想想这步完成的工作? –其实就是 把这个抽象的结构,
转换成门级网表的连接.
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--生成网表
这个过程需要持续一小部分时间,请等待,并且看
看控制台给出的综合信息.
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--更新比特流
下一步,选择这个, 产生布局布线比特流文件
这个过程需要持续一小部分时间,请等待,并且看看
控制台给出的实现过程的信息.
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--建立软件应用程序
选择输出硬件到SDK
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--建立软件应用程序
选择输出和打开
SDK软件
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--建立软件应用程序
定位路径到当前的
工程窗口
点击“OK”按纽, 进入下一个界面
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--建立软件应用程序
删除lab1建立的BSP
和应用程序工程
下面将添加设计的BSP
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--建立软件应用程序
• 选择建立Xilinx BSP, 作用是各
种外设的软件驱动
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--建立软件应用程序
BSP的工程名字
硬件平台的工程名字
点击”Finish”按纽, 进入下一个界面
BSP的名字
1) Xilkernel-Xilinx操作系统
2) Standalone-BSP
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--建立软件应用程序
点击”OK”按纽, 进入下一个界面
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--建立软件应用程序
SDK开始自
动编译BSP
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--建立软件应用程序
BSP的各种文件
下面将添加SDK自动生成的
应用程序
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--建立软件应用程序
生成新的C工程
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--建立软件应用程序
工程名字
选择空的应用工程
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--建立软件应用程序
点击”Next”按纽, 进入下一个界面
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--建立软件应用程序
选择该选项,使用已经存在的BSP
点击”Finish”按纽, 进入下一个界面
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加定制IP的软件驱动到BSP中
选择该选项,打开目录管理
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加定制IP的软件驱动到BSP中
点击”New”按钮
定位到当前的目录下
点击”确定”按钮
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加定制IP的软件驱动到BSP中
添加到搜索路径中
重新扫描路径
点击”ok”按钮
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加定制IP的软件驱动到BSP中
选择BSP设置
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加定制IP的软件驱动到BSP中
选择standalone_bsp_0
点击”OK”按钮
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加定制IP的软件驱动到BSP中
选择drivers
选择pwm_ip_0
下拉框中选择pwm_ip
点击”OK”按钮
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加定制IP的软件驱动到BSP中
错误提示
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加定制IP的软件驱动到BSP中
找到打开该文件
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加定制IP的软件驱动到BSP中
添加此行代码,并保存
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--添加定制IP的软件驱动到BSP中
添加此行代码,并保存
选择,并打开该文件
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--导入应用工程文件
选择”Import”选项
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--导入应用工程文件
选择“general”,并展开
选择“File System”
点击“Next”按钮
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--导入应用工程文件
点击“Browse”按钮
定位到导入文件所在的文件夹
点击“确定”按
钮
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--导入应用工程文件
选中pwm_test.c文件
选中”Browse”按钮,
定位要导入文件的
位置
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--导入应用工程文件
选中empty_application_0
选中src
点击“OK”按钮
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--导入应用工程文件
导入文件的文件夹
点击“Finish”按钮
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--导入应用工程文件
文件已经被导入到设计中
修改PWM的周期和使能/禁止其工作
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--生成链接脚本文件
• 选择产生链接脚本文件
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--生成链接脚本文件
点击”Browse”按纽
程序各段的分配情况
定位产生.ld文件的路径
选择保存
北京中教仪装备技术有限公司
选择生成
实验五:定制PWM IP并添加到设计中
--工程的下载
产生比特流文件并且下载到板子上。在下载前,指
令存储器(FPGA的BRAM)将被更新(使用GNU编译器
产生可执行的文件)。
使用下面的步骤完成设计下载和结果的观察:
连接Nexys3的USB线连接到主机的USB口
打开目标板的电源
打开主机的超级终端(在Windows操作系统的开始
->所有程序->附件->通信下),并且配置其参数,使其波特
率9600,数据位:8比特;无奇偶校验;一个停止位;无流
量控制。
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--工程的下载
• 选择编程 FPGA选项
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--工程的下载
比特流文件
块RAM映射文件
选择软件应用程序.elf文件
(即最终编译\连接后的文件
点击”Program”按纽, 进入
下一个界面
北京中教仪装备技术有限公司
实验五:定制PWM IP并添加到设计中
--工程的下载
•
•
等待编程成功,在示波器上观察结果,看结果.
注意:如果前面没有选择生成链接脚本文件,则需要选择
RUN->RUN,来运行程序.
北京中教仪装备技术有限公司