在一数控系统的项目中,需要一单片机将外部接收到的数据进行预处理后再给FPGA进行运算。在单片机与FPGA的硬件接口中采用总线连接的方式;由于单片机总线接口的数据与地址低8位是复用的,因此FPGA需要根据单片机的总线时序模拟一个EBI的总线接口将地址和数据分离开来,才能与单片机进行正常通讯。
如下图硬件连接:
为了保证模拟总线逻辑的正确性,必须监测A0~A15和D0~D7的输出,是否与单片机端写入的值一致。
调试的方法有很多种,可以在Quartus II下新建波形文件,创建输入条件后,监测输出的波形,也可以直接用Quartus II自带的嵌入式逻辑分析仪Signal Tap II来监测引脚信号;前者是单纯的根据逻辑仿真,而后者是物理仿真,它能真实的将系统运行过程中的信号实时的通过JTAG传送到Quartus II的显示界面。
使用SignalTap II的一般流程是:设计人员在完成设计并编译工程后,建立SignalTap II (.stp)文件并加入工程、配置STP文件、编译并下载设计到FPGA、在Quartus II软件中显示被测信号的波形;在测试完毕后将该逻辑分析仪从项目中删除。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
现在我们开始介绍在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不能被添加进来,这需要在代码中进行设置,告诉编译器不要将该wire或reg优化。如:
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_in、xmc_data_out和xmc_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之前,还是需要全编译一次的。
两种类型同时只能使用一种,
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
红圈处不打勾时选第一种类型,红圈处打勾时选第二种类型。
选择好的调试方法非常重要,它能帮助设计者更快更准确的找出程序中的bug,高效的完成设计。当然在FPGA的设计过程中,需要多种方法和工具相结合来完成不同阶段的调试,熟练运用这些工具和方法非常的关键。
附件里是Quartus II 7.1下的工程代码
代码参考来源:
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3353506&bbs_page_no=1&bbs_id=1029
本文PDF和CODE
https://static.assets-stash.eet-china.com/album/old-resources/2010/2/8/233b7fed-c913-451d-8fa6-54d3ff0dee22.rar
用户377235 2016-5-20 09:40
请问你有这款板子的电路原理图么?
用户325721 2011-3-24 11:26
用户1278632 2010-2-19 19:50
用户1278632 2010-2-8 11:18
ash_riple_768180695 2010-2-8 09:55
tengjingshu_112148725 2009-4-13 20:40