原创 从PFL megafunction中学到的Virtual JTAG使用技巧

2008-3-5 21:53 4866 9 7 分类: FPGA/CPLD

现在开发的产品需要借用CPLD烧写Nor Flash,可选的方案有两个:采用Altera的Parallel Flash Loader,或者自己用VJTAG做一个。 riple


采用PFL虽然速度够快,但是曾经有过文件不匹配的失败经历,所以采用了后一个方案。CPLD代码和Tcl底层操作很快开发出来了,做软件的同事开发的Tcl用户接口也很容易操作,但是发现烧写速度慢得惊人,只有几kB/s。 riple


同样是采用JTAG电路,甚至原理都一样,为什么效率差这么多?是不是Altera给用户开放的API是慢速的?PFL到底需要怎样的文件格式。为了弄清这些问题,我硬着头皮又把PFL做了一遍。先前采用PFL时没弄清文件格式和烧写起始地址,所以失败了。这次在文件格式上下了些功夫,把原理搞清楚了,下载也就成功了。 riple


烧写虽然成功了,但是我仍然没弄明白占用的逻辑资源差不多,PFL的速度为什么这么快。于是利用周末的时间把PFL生成的代码仔细分析了一遍,还真发现不少提高Virtual JTAG操作效率的窍门: riple


1. IR采用one-hot方式编码,减少了译码逻辑的复杂度。 riple


2. 采用一条专用的IR命令,通过JTAG获得参数化硬件电路的参数值。通过读取硬件电路的参数值,自动保证Tcl脚本与HDL代码中数据宽度等信息的一致性。 riple


3. 对于连续地址写入操作,采用一个计数器产生地址值,而不采用专用IR命令传入地址值。 riple


4. 在数据写入命令的数据移入寄存器中多添加一位,用于产生上述计数器的计数脉冲。 riple


5. 采用TCK同步操作,既可以保证电路在低频率下稳定工作,还省去了外部输入时钟和相应的跨时钟域边沿同步脉冲提取电路。 riple


6. 在PFL的Magawizard界面中,有一个area/speed选项,选中speed模式,还能进一步提高速度。代价是需要采用RAM(CPLD中没有)或LE实现一个FIFO,实现数据的缓冲;围绕着这个FIFO,还要设计两个状态机,一个实现从VJTAG接口向FIFO写入数据的操作,一个实现读取FIFO向Flash接口写入数据的操作。这只是初步分析,我还没能弄清speed模式下的操作细节。 riple


 


PS:PFL需要的文件格式和生成方法我还要另写一篇日志。 riple


参考文件:rar

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

ash_riple_768180695 2008-3-7 13:07

谢谢,我会抓紧时间补充这些“内空”的内容。
相关推荐阅读
ash_riple_768180695 2015-12-18 11:06
学习示例程序:FPGA快速系统原型设计--敏捷实践
        学习与开发板配套的示例程序,是敏捷实践的起点。示例程序是厂商针对开发板上提供的硬件资源和接口量身定做的工程,可以展示其FPGA芯片的功能和性能特点。从示例程序入手最大的好处就是:示...
ash_riple_768180695 2015-11-03 16:46
开发板选取:FPGA快速系统原型设计--敏捷实践
    既然是“实践”,就不能只谈编码和仿真,必须要上板运行、调试。这个虚拟项目的目标是实现一块兼容Intel82574L以太网控制器的千兆网卡,需要运行在一块具备PCIe接口和10/100/10...
ash_riple_768180695 2015-10-22 12:41
开篇:FPGA快速系统原型设计--敏捷实践
    虽然借用了 “系统原型开发”的标题,本系列文章将围绕FPGA IP级别的开发这个主题展开,如果可能的话,将扩展至FPGA System级别的开发。     先上一篇PPT:RSPwFP...
ash_riple_768180695 2013-08-26 10:21
学习SystemVerilog(二)——学习它的理由
    学习SystemVerilog的理由也很多,我在阅读SystemVerilog for Design 和 SystemVerilog for Verification两本书前言的过程中,总...
ash_riple_768180695 2013-08-26 10:19
学习SystemVerilog(一)——不学习它的理由
    想要学习SystemVerilog已经很久了。曾经尝试通过Accellera网站上给出的LRM学习,怎奈内容众多,找不出入手点和重点,只能望而却步。虽然手头有三本SystemVerilog...
ash_riple_768180695 2011-06-26 23:20
Hardware-Assisted IEEE1588 Implementation Analysis
06/18/11 11:00:05 PM         最近一段时间在研究IEEE1588-2008精确时间同步协议(PTP)。该协议可以在软件中实现,如果需要提高时间同步...
EE直播间
更多
我要评论
1
9
关闭 站长推荐上一条 /3 下一条