专栏中心

EEPW首页 > 专栏 > FPGA调试篇(一)在Quartus下使用SignalTap II 调试FPGA

FPGA调试篇(一)在Quartus下使用SignalTap II 调试FPGA

发布人:0750long 时间:2010-03-12 来源:工程师 发布文章
FPGA调试篇(一)在Quartus下使用SignalTap II 调试FPGA

 

 

 

在一数控系统的项目中,需要一单片机将外部接收到的数据进行预处理后再给FPGA进行运算。在单片机与FPGA的硬件接口中采用总线连接的方式;由于单片机总线接口的数据与地址低8位是复用的,因此FPGA需要根据单片机的总线时序模拟一个EBI的总线接口将地址和数据分离开来,才能与单片机进行正常通讯。

如下图硬件连接:

为了保证模拟总线逻辑的正确性,必须监测A0A15D0D7的输出,是否与单片机端写入的值一致。

调试的方法有很多种,可以在Quartus II下新建波形文件,创建输入条件后,监测输出的波形,也可以直接用Quartus II自带的嵌入式逻辑分析仪Signal Tap II来监测引脚信号;前者是单纯的根据逻辑仿真,而后者是物理仿真,它能真实的将系统运行过程中的信号实时的通过JTAG传送到Quartus II的显示界面。

使用SignalTap II的一般流程是:设计人员在完成设计并编译工程后,建立SignalTap II (.stp)文件并加入工程、配置STP文件、编译并下载设计到FPGA、在Quartus II软件中显示被测信号的波形;在测试完毕后将该逻辑分析仪从项目中删除。

现在我们开始介绍在Quartus II下用Signal Tap II进行调试的详细步骤。

 

首先,在你已经创建的工程下新建一个Signal Tap文件,并加入工程

再设置SignalTap II 文件,如下图

点击看大图

 

 

配制完成后,再编译综合,并下载

点击运行

点击看大图

此时FPGA工作时的单片机发送程序如下:

while (1)

  {

    (*(volatile unsigned char *)0x2345)=0X43;   //0x1234地址入写0x43

(*(volatile unsigned char *)0x5812)=0X12;   //0x5812地址入写0x12

   

}

 

由上图仿真的波形可见,在WR为低电平的第一个周期Addr=0x2345,Data=0x43;在WR为低电平的第二个周期Addr=0x5812,Data=0x12;很显然,与单片机那边的发送程序是一致的。

 

有一点需要提出,由于编译器的优化问题,在添加被测信号的时候,有些你想要引出的wire或者reg不能被添加进来,这需要在代码中进行设置,告诉编译器不要将该wirereg优化。如:

wire    [7:0]       xmc_data_in /*synthesis keep*/;

wire    [7:0]       xmc_data_out /*synthesis keep*/;

wire    [15:0]      xmc_addr_out /*synthesis keep*/;  //用于测试,不优化该线网

(本来,该工程中的xmc_data_inxmc_data_outxmc_addr_out这三个线网在 Add Nodes”的 list中是显示不出来的,后来在代码中加了/*synthesis keep*/;才显示出来)

 

关于如何在Signal Tap II中添加更多的Wire和reg可参考

http://www.cnblogs.com/oomusou/archive/2008/10/17/signaltap_ii_reg_wire.html

   

 

关于STP文件分配的信号

在STP文件中,可以分配下面两种类型的信号:

(1)             Pre—synthesis:该信号在对设计进行Analysis&Elaboration操作以后存在,这些信号表示寄存器传输级(RTL)信号。

(2)             Post-fitting:该信号在对设计进行物理综合优化以及布局、布线操作后存在。

当选择第一种时,在添加被测信号时,只需要增量式编译就可以了,这样省了很多时间。当然添加完被测信号后,在下载入FPGA之前,还是需要全编译一次的。

 

两种类型同时只能使用一种,

点击看大图

红圈处不打勾时选第一种类型,红圈处打勾时选第二种类型。

 

选择好的调试方法非常重要,它能帮助设计者更快更准确的找出程序中的bug,高效的完成设计。当然在FPGA的设计过程中,需要多种方法和工具相结合来完成不同阶段的调试,熟练运用这些工具和方法非常的关键。

附件里是Quartus II 7.1下的工程代码

代码参考来源:
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3353506&bbs_page_no=1&bbs_id=1029

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

基于单片机的等精度数字测频

电容式触控IC解决方案及产品发展状况

视频 2009-12-21

米尔NXP i.MX 91核心板开发板,赋能新一代入门级Linux应用

尼得科精密检测科技参展JPCA Show 2025

单片机的EMC测试及EMC故障排除

IC项目示例:连接评估板与PMODACL板读取XYZ轴加速度数据

KPMG:9成半导体业者自认今年收益会续增

EDA/PCB 2025-05-30

拓展覆盖,提升容量:毫米波固定无线接入的未来图景

金升阳LM-R2S系列机壳电源焕新上市

正式官宣!美国限制芯片设计软件、化学品和关键零部件对中国的销售

单片机的常用名词

连接世界的SOC设计

视频 2009-12-21

单片机的多串口扩展技术的设计

车厂& 零部件厂大咖说:48V先进电源系统创新技术及产业化突破

新一代的晶圆代工服务与你共赢新兴的中国半导体市场

视频 2009-12-21

物联网与RFID芯片

视频 2009-12-21

品英Pickering公司产品确保低空航空器的航电和电池安全可靠

单片机的通信性能分析及其评价方法

协作创新平台——IBM微电子和Power架构

视频 2009-12-21

【技术浅谈】如何设计一款高可靠性的汽车CAN总线(3)

更多 培训课堂
更多 焦点
更多 视频

技术专区