利用计算机打印口调试FPGA
发布时间:2007/9/11 0:00:00 访问次数:556
摘要:介绍一种用于计算机打印口调试ALTERA的FLEX10K系列FPGA的方法。对于没有ALTERA的Quartus软件的设计者,该方法可以在一定程序上弥补MAX+PLUSIII软件没有SinalTap逻辑分析功能的不足。
关键词:并行口 MAX+PLUSII FPGA 硬件调试
随着FPGA实现的功能越来越复杂,其调试也越来越困难。尤其对于输入/输出较少、内部运算复杂的FPGA设计来说,其内部操作就象一个“黑箱”,数据进入这个“黑箱”后,它如何被操作、传输,设计者很难知道。仅凭很少的输入/输出信号,很难判断设计是否有问题以及问题的症结所在。因此,在硬件调试中非常有必要深入FPGA内部去了解数据的运算、存储、流动是否正常。
目前FPGA的调试手段很不理想。以ALTERA的器件为例,虽然它的大多数EPLD、FPGA芯片都带有JTAG接口,但MAX+PLUSII系列软件不支持真正的边界扫描功能,而只是把JTAG接口作为器件配置接口。这就迫使设计者必须把芯片内部的信号引到外部引脚上,通过示波器进行测量和调试。但问题是:当需要引出的内部信号很多时,一是有可能世馘 管脚不够分配,二是必须使用昂贵的逻辑分析仪来同时测量这些引出的信号,调试的代价非常高昂。
ALTERA最新的Quartus软件中有一个SignalTap逻辑分析功能,配以专用的硬件,可以使FPGA的调试变得轻松简单。SignalTap的操作原理是:用户在自已的设计中插入一个具有SignalTap功能的特公平宏模块,并定义需记录的节点名、数据长度、记录用时钟信号、触发记录的条件等,然后启动硬件运行。当记录完成后,器件内部指定节点的数据序列便通过器件的JTAG口传入计算机,以波形的方式显示到屏幕上,设计者就可以进行高效率的调试了。
不过,对于那些仍在使用AMX+PLUSII的用户,就享受不到这种方便了。为此,本人设计了一种利用计算机并行口调试FPGA的方法,同样可以用于读出FPGA内部数据,提高调试效率。仍在使用MAX+PLUS II软件的朋友不妨一试。
1 FPGA的并行口调试方法
调试用硬件平台示意图如图1所示。本方法具有以下特点:
1.由于采用VHDL语言编程,因此其跨工艺的通用性较强。在ALTERA的FPGA上可有物功能,可以较方便地移植到其它厂家的FPGA上使用(而ALTERA或XILINX的JTAG调试功能必须在设计中调用特定的宠模块);
2.设计得必须根据要记录的数据源的不同来修改VHDL设计,因此灵活性稍差;
3.没有使用器件的边界扫描功能和JTAG口,而是从器件上任意选择6个可用引脚作为接口,自己定义逻辑把片内RAM块中的数据读出;
4.需要2台计算机协同工作(当然,如果不怕配置和调试时频敏拔插接头的麻烦烦,也可以采用一台计算机);
5.考虑到与底层硬件打交道的方便性及维持较高传送速度的需要,采用C语言程序与FPGA通讯,进行数据传送;数据格式变换及显示彩MATLAB程序。
PC机与打印口之间的信号有三种:
一是8位数据输出信号,占据25针打印机接口的2~9脚,其I/O地址为378H,本设计中未用至;
二是打印机的控制输出寄存器,其I/O地址为37AH.。本设计使用了该寄存器的最低位STROBE(1脚)作为计算机输出信号Cpu_answer,其为高时表示计算机收到数据,通知FPGA可以传送下一组数据;
三是打印机的状态读入寄存器,其I/O地址为379H。本设计将其最高位BUSY用来接收FPGA发出的“数据有效”信号Sned_data_avi,将其第3
摘要:介绍一种用于计算机打印口调试ALTERA的FLEX10K系列FPGA的方法。对于没有ALTERA的Quartus软件的设计者,该方法可以在一定程序上弥补MAX+PLUSIII软件没有SinalTap逻辑分析功能的不足。
关键词:并行口 MAX+PLUSII FPGA 硬件调试
随着FPGA实现的功能越来越复杂,其调试也越来越困难。尤其对于输入/输出较少、内部运算复杂的FPGA设计来说,其内部操作就象一个“黑箱”,数据进入这个“黑箱”后,它如何被操作、传输,设计者很难知道。仅凭很少的输入/输出信号,很难判断设计是否有问题以及问题的症结所在。因此,在硬件调试中非常有必要深入FPGA内部去了解数据的运算、存储、流动是否正常。
目前FPGA的调试手段很不理想。以ALTERA的器件为例,虽然它的大多数EPLD、FPGA芯片都带有JTAG接口,但MAX+PLUSII系列软件不支持真正的边界扫描功能,而只是把JTAG接口作为器件配置接口。这就迫使设计者必须把芯片内部的信号引到外部引脚上,通过示波器进行测量和调试。但问题是:当需要引出的内部信号很多时,一是有可能世馘 管脚不够分配,二是必须使用昂贵的逻辑分析仪来同时测量这些引出的信号,调试的代价非常高昂。
ALTERA最新的Quartus软件中有一个SignalTap逻辑分析功能,配以专用的硬件,可以使FPGA的调试变得轻松简单。SignalTap的操作原理是:用户在自已的设计中插入一个具有SignalTap功能的特公平宏模块,并定义需记录的节点名、数据长度、记录用时钟信号、触发记录的条件等,然后启动硬件运行。当记录完成后,器件内部指定节点的数据序列便通过器件的JTAG口传入计算机,以波形的方式显示到屏幕上,设计者就可以进行高效率的调试了。
不过,对于那些仍在使用AMX+PLUSII的用户,就享受不到这种方便了。为此,本人设计了一种利用计算机并行口调试FPGA的方法,同样可以用于读出FPGA内部数据,提高调试效率。仍在使用MAX+PLUS II软件的朋友不妨一试。
1 FPGA的并行口调试方法
调试用硬件平台示意图如图1所示。本方法具有以下特点:
1.由于采用VHDL语言编程,因此其跨工艺的通用性较强。在ALTERA的FPGA上可有物功能,可以较方便地移植到其它厂家的FPGA上使用(而ALTERA或XILINX的JTAG调试功能必须在设计中调用特定的宠模块);
2.设计得必须根据要记录的数据源的不同来修改VHDL设计,因此灵活性稍差;
3.没有使用器件的边界扫描功能和JTAG口,而是从器件上任意选择6个可用引脚作为接口,自己定义逻辑把片内RAM块中的数据读出;
4.需要2台计算机协同工作(当然,如果不怕配置和调试时频敏拔插接头的麻烦烦,也可以采用一台计算机);
5.考虑到与底层硬件打交道的方便性及维持较高传送速度的需要,采用C语言程序与FPGA通讯,进行数据传送;数据格式变换及显示彩MATLAB程序。
PC机与打印口之间的信号有三种:
一是8位数据输出信号,占据25针打印机接口的2~9脚,其I/O地址为378H,本设计中未用至;
二是打印机的控制输出寄存器,其I/O地址为37AH.。本设计使用了该寄存器的最低位STROBE(1脚)作为计算机输出信号Cpu_answer,其为高时表示计算机收到数据,通知FPGA可以传送下一组数据;
三是打印机的状态读入寄存器,其I/O地址为379H。本设计将其最高位BUSY用来接收FPGA发出的“数据有效”信号Sned_data_avi,将其第3
上一篇:用FPGA技术实现模拟雷达信号