完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
问题一: 解释:试过,不太好用。可能没有使用正确。有待验证! 问题二: 说下FPGA内部类似逻辑分析仪的chipscope信号检测技巧 经常看到有网友问,chipscope仿真,监测信号不对。 其实,chipscope作为一个类似FPGA内部逻辑分析仪的工具,不能简单的以为绑定好时钟和信号就可以了。 最好设置一个准确的触发条件,如同示波器的单次触发,上升下降触发等等条件设置。chipscope其实可以设置的更好。你可以另外编一个或增加一个暂时的进程变量来作为触发条件。如此,你一次就能仿真,检测数据准确。 有机会,举一个详细的例子来说说。 类似下面的例子,很多情况下,如果不加控制,只是通过clk时钟同步采集,再深的fifo缓存,在采集时机不合适的时候可能都是采集到的全0信号或非自己希望观察到的时段。假设,我们希望看到x1信号等于奇数值的时候的情况,这里把x1信号最后一位付给trig_ctrl信号。这样,在chipscope中设置触发条件是trig_ctrl为1时采集,或者上升,下降沿采集,就屏蔽了全0的情况,把有限的缓存用来存储有变化的信号或奇数的信号。 同理,如果你希望观察一个总线或信号在特定时间段里的情况,精确控制同步触发点,应该可以观察到。 感觉说的还是笼统,其实chipscope里的触发设置的很好,也不需要额外增加触发变量控制。 程序忽略。。。。。。 解释:程序我还有点不太懂,但是意思大概的了解了很多。就是,触发条件可以在程序自己设定一下,这样类似PCB画板的时候有意的添加一个测试点一样!! 问题三: 使用Chipscope时如何防止reg_wire型信号被优化掉 随着FPGA设计复杂程度越来越高,芯片内部逻辑分析功能显得越来越重要。硬件层次上的逻辑分析仪价格十分昂贵,而且操作比较复杂。目前,FPGA芯片的两大供应商都为自己的FPGA芯片提供了软件层面上的逻辑分析仪,可以帮助我们在线分析芯片内部逻辑。而且操作简单方便。但是往往因为某些原因,有些信号在综合的时候就会被优化掉,就可能会导致我们的设计失败,当然在为逻辑分析仪添加观察信号的时候也无法找到该信号。从而对设计、调试人员的工作带来一定的不便。下面就分别以Xilinx公司的逻辑分析仪ChipScope和Altera公司的SignalTap做以下总结: 一、使用Xilinx公司的ChipScope 在ChipScope中添加一些引脚的信号,但列表中并没有显示,原因是综合的地方没设置好,应该将XST的属性设置成如下: keep hierarchy 处为YES 使用ChipScope观察芯片内部的信号的之前先要在把需要观察的信号添加到ChipScope信号观察列表当中。也就是说,我们必须能够在综合的网表文件中找到相应的信号。如果是使用XST综合的话,最好保留芯片内部结构的层次,这样就可以在相应的子模块查找需要观察的信号。默认情况下,Chipscope只能观察reg类型的信号。但是通过设置属性也是可以观察wire型信号的。使用不同的综合工具需要添加的属性也不一样。 1、使用XST综合。 (1)对于reg型信号,如果被ISE优化掉,一般有可以把这个信号和其他没有被优化的信号进行“与”、“或”等操作。这样就可以达到观察信号的目的。 (2)对于wire型号,对于ISE12.3以后的版本,XST综合,以Spartan3为例,可以使用(*KEEP="TRUE"*) wire [15:0] CPLD_ _AD;这样就可以在查找信号的信号找到wire类型的CPLD__AD信号进行观察。 (3)再不行就用reg引出。然后将这个变量打上一拍 解释:这里可以在ISE工程里面的XST项目列表中右击选择 YES。具体原因还有待分析!! 有效果!!! 问题四: 解释:这里我用的是交通灯的程序,设置的触发时钟是count[25],因为50 000000M 是1S的计时,而它的二进制表示是10111110101111000010000000,第26位为触发时钟信号时,就会每秒采集一个点,因为之前设置的采样点比较多,也就是深度比较深,所以等待的时间会相对的比较长(做SPI通信的测试中自己选取的采样数过多,以致等待很长时间的影响因素之一)。 同时,触发时钟信号也可以用系统时钟,但是那样的话,采集的点虽然比较多,但是依然看不到想要的结果。所以选择的时候需要综合全面的考虑。 我的观测结果是: 问题五:关于触发端口位宽的设置问题 解释: 当时刚开始的设置会有选项:有几个触发端口?它们的位宽分别是多少? 开始的时候还不是很好的理解。当把软件的各种功能都测试了一遍的时候才发现并且理解了许多。触发端口选几个,取决于你想测试多少信号,可以这样分类:串口发送信号观测端口、串口接收观测端口、串口控制观测端口;而每个端口的位宽取决于每个模块需要观测的信号数等。 需要注意的是:所有的触发端口的触发采样时钟都是一样的!所以自己选取的时候一定需要注意,这样选择的时候才会更有针对性!! 问题五: SPI通信的程序仿真是对的,但是在抓取的时候,才发现输出的时钟信号完全没有反应!!是时钟的IO没有加ODDR,还是什么其他的原因? 解释: 自己的这种想法完全是错的!! 首先:不是所有的时钟都需要加上ODDR的!!! 在xilinx的FPGA中,要实现高频时钟的输出,并保证时钟质量,最有效的方案是使用ODDR来产生。 例如,需要输出的时钟为CLK,用CLK来驱动ODDR,让ODDR在CLK的上升沿输出0或1,在CLK的下降沿输出1或0,从而产生一个时钟脉冲CLKOUT,CLKOUT的时钟频率和CLK完全相同。也就是说经过ODDR的时钟并没有什么变化,只不过有些发送模块可以利用ODDR的上、下升沿都发送数据! 这里用ODDR的好处是:ODDR位于IOB里面,如果CLK是由BUFG驱动的,那么从CLK到ODDR的路径在每次实现中是确定,从OODR到FPGA芯片PAD的路径和延迟也是确定的,由ODDR产生的时钟是一个稳定的高质量时钟。 一种常见的错误做法是:用CLK由BUFG驱动以后,直接连接到某个具有时钟输入能力的管脚(CC管脚)。因为,CC管脚只有用作时钟输入时才能直接输入到BUFG中,而BUFG输出到CC管脚,效果等同于输出到任何一个普通管脚。这样应用方法是无法保证从BUFG到FPGA芯片PAD的走线长度的,而且一部分走线使用的是非专用布线资源。这种方法产生的时钟脉冲质量并不好。 其次: 需要自己格外注意的是使用chipscope去抓取信号的时候,采样时钟的频率一定需要大于触发信号的频率。就是我用时钟频率50M去做采样信号,就不能抓到>=它的频率!!比如50M,75M <==== XX |
|
|
|
1278 浏览 1 评论
368 浏览 0 评论
【星嵌电子XQ138F-EVM开发板体验】(原创)8.安全FPGA防御黑客病毒(芯片设计制造级防护)源代码
1369 浏览 0 评论
【国产FPGA+OMAPL138开发板体验】(原创)7.硬件加速Sora文生视频源代码
2529 浏览 0 评论
【星嵌-XQ138F-试用连载体验】ARM驱动开发示例,LED亮灭,以及内核编译。
587 浏览 0 评论
1068 浏览 22 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-3-28 20:26 , Processed in 0.412469 second(s), Total 63, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号