
电脑有以下原因可能产生软件闪退的问题:
1、 *** 作系统问题:存在漏洞或bug,可通过修复漏洞或重装系统来解决;
2、软件兼容性问题:有些软件有系统要求或环境要求,比如系统要是32或64位、dot net要哪个版本、jre需要哪个版本等等,这个问题只要参照软件说明设置就可以解决;
3、软件bug:软件有bug,此问题只能默哀了,只能期待软件开发商早点修复了。
4、硬件故障:维修或更换;
5、内存不足:内存空间溢出,关闭一些程序,或加大内存。
希望能帮助到你!
1 可以在vivado中通过block diagram生成microblaze的硬件,注意Xilinx提供了一个microblaze的例子,如果有问题可以参考这个例子来实现;
2 画好bd以后,先保存,然后verify,然后保存,然后点“生成bitstram”Vivado会自动按照综合——实现——生成bit文件的顺序执行;
如果其中出现错误,一定要仔细参考message的提示,然后从网上和Xilinx的文档中寻找解决的办法;
3 输出到SDK的时候要特别注意,一般第一次的时候他会帮你输出bmm文件,后面就只有bit文件和xml文件了;但是实际上bmm文件对打包生成最后的downloadbit文件很重要,如果bit文件和bmm不对应的话,你生成的downloadbit文件下载到FPGA之后可能会起不来。
4 Microblaze的IC/DC总线接口去连接一块内存时,这块内存的地址必须在cache的地址范围内,比如cache范围为0x0000_0000~0x7FFF_FFFF,否则可能无法写入;
5 Microblaze的IP/DP总线接口去连接一块内存时,这块内存的地址必须在cache的地址范围外,比如cache范围为0x0000_0000~0x7FFF_FFFF,该内存地址范围为0x8000_0000~0xFFFF_FFFF,否则也可能访问不正常;
没有。
vivado安装在32位计算机上,很遇到不少莫名其妙的现象。 通过交流以及自己开发遇到的情况,经常会发现VIVADO在使用期间出现很多莫名其妙的现象。通过比较对比,发现64的win7 *** 作系统就没有这些莫名其妙的错误提示等等。32 位安装程序仅适用于 32 位 *** 作系统,在 64 位计算机上不受支持。
存放在ZYNQ芯片内部ROM不可更改,用于找到FSBL并启动它(从SD或者QSPI或者NAND),ug585第六章
用于引导U-Boot
用于引导Linux Kernel
petalinux工具可以构建2和3还有内核
BOOTBIN包括fsbl,bitstream,用户程序(uboot)
imageub包括了kernel(devicetree DTB和rootfs通过设置可选包不包含在ub内)
主要是分析下FSBL工程的main函数
调用ps7_init函数
主要是对PS端配置信息进行初始化 *** 作,包括MIO,PLL,CLK and DDR
我们在vivado软件中可以通过图形化的方式对ZYNQ PS端外设进行相关配置,那么这些配置信息会写入到hdf文件,SDK(或petalinux)会对hdf文件进行解析并生成对应的寄存器配置表,然后FSBL工程中会通过ps7_init函数将寄存器配置表写入到对应的寄存器中,完成对MIO/PLL/CLK/DDR等外设的硬件配置。
先调用Xil_DCacheFlush函数完成刷DCache缓存的 *** 作,然后再调用Xil_DCacheDisable禁用DCache缓存。
调用RegisterHandlers函数
调用DDRInitCheck函数
调用InitPcap函数
处理器配置访问端口
这个寄存器记录ZYNQ的启动方式(QSPI、SD、NAND、Nor、JTAG)
可以通过MIO3 MIO4 MIO5这三个引脚去配置ZYNQ的启动方式
ZYNQ上电复位的时候,会将这三个引脚的电平状态保存在BOOT_MODE寄存器当中。
每一种启动方式会有不同的处理方式。
第一、先初始化对应的flash设备
第二、再将MoveImage函数指针指向Flash设备的读写函数实体
调用LoadBootImage函数
FSBL的主要工作是启动U-Boot(终极目标),也要将bitstream文件加载到PL端。
找到U-Boot、bitstream
在读取U-Boot拷贝DDR中对应的加载地址,读取bitstream加载到PL端
调用FsblHandoff(HandoffAddress)
启动完U-Boot之后,FSBL的使命的就完成了。
现象:
vivado仿真器卡住,暂停后停在卡住的位置,可单步执行,发现循环在某一些语句之间。
questasim/modelsim仿真器停在某一时刻,并且delta值不断增大,同时程序暂停无响应。
结论:
自从去年10月Xilinx发布ISE147之后,ISE套件便暂时没有了更新计划,相当于进入了软件生命中的“中年”;而当初在2012x版本还作为ISE套件中的一个组件的Vivado,此时已经如早上8、9点钟的太阳一样冉冉升起:因为随着FPGA/SOC制造工艺、硬件单元规模和设计方法的不断改进,传统的基于ISE的设计方法已经逐渐不能满足我们的要求了。所以针对新的Artix-7/Kintex-7/Virtex-7芯片,Xilinx都建议我们使用全新设计的Vivado套件来进行开发(使用Spartan-6的筒子可以在新设计中考虑向Artix-7过渡了)。此外,因为ISE套件已经没有升级计划表,所以对新的 *** 作系统也无法支持了,例如在Win8/81上面,ISE147几乎无法完美运行,而从Vivado20141版本就开始全面支持了。
直观的来看,我理解的Vivado套件,相当于把ISE、ISim、XPS、PlanAhead、ChipScope和iMPACT等多个独立的套件集合在一个Vivado设计环境中,在这个集合的设计流程下,不同的设计阶段我们采用不同的工具来完成,此时Vivado可以自动变化菜单、工具栏,可以显著提高效率:因为不需要在多个软件间来回切换、调用,白白浪费大量的时间。基于Vivado IP集成器(IPI),则把我们对硬件的配置更好地集成到我们的设计中,既极大地提高了对IP的使用和管理,也帮助我们减小了软件和硬件(例如ZYNQ器件的PS)之间的隔阂。Vivado HLS则可以把现有的C代码,在一些特定的规范下直接转换为可综合的逻辑,这也将极大地提高我们实现和移植现有算法的速度。
因为Vivado套件较为复杂,所以先用一个对比测试,来检验一下它们之间的性能差别。采用的测试环境是:
*** 作系统:win7 sp1x64
CPU:I7-4770k,开启超线程,全部超频至43GHz
ISE: 147
Vivado:20141
使用的芯片:ZYNQ系列中的xc7z020-clg400-2(设计全部在PL中实现)
待测试程序:一个用来做实时仿真的模型(算下来有140424行Verilog代码)。为了减小硬盘的延迟影响, *** 作系统和软件都安装在SSD上面,而把工程文件放在RAMdisk上面(因为综合、实现的过程都需要大量的小文件读取 *** 作)。
运行的测试:输入正确的工程,但是清理所有工程文件,这样就可以从0开始完成所有的综合、翻译、映射、布局布线和升级bit流文件的所有 *** 作;使用的策略则全部用默认策略。
首先,在ISE上运行,测试开始时间是7:33:10,生成bit文件的时间是7:37:01,共花费了231秒。
然后,在Vivado上运行。为了方便测试,在Vivado套件里直接导入ISE的工程,源文件都可以正常导入,但是约束文件需要重新配置,因为ISE使用的ucf格式,而Vivado则升级为更先进的xdc格式,需要全部重写约束文件。不过这也不是特别困难的事情,例如管脚约束的转换就比较容易:
例如,ucf为:
NET "gateway_out1[0]" LOC = Y12;
NET "gateway_out1[0]" IOSTANDARD = LVCMOS18;
xdc则为:
set_property PACKAGE_PIN Y12 [get_ports {gateway_out1[0]}]
set_property IOSTANDARD LVCMOS18 [get_ports {gateway_out1[0]}]
为了快速转换,用查找/替换可以较快的完成其中的一部分转换。
然后在Vivado中点击reset runs,如图1所示,这样会清除所有潜在的已经生成的结果(清除综合的结果时可以选择自动清除实现的结果)。
图1 reset runs
为了充分发挥Vivado套件的潜力,在tcl console里输入下面的脚本:
set_param generalmaxThreads 8
这样就可以充分发挥最大的CPU潜力了(例如DRC检查可以使用全部的线程进行并行 *** 作)。然后运行产生比特流的 *** 作,开始时间是8:15:20,生成bit文件的时间是8:17:12,共花费了112秒。
对比ISE的231秒,可以看出Vivado使用的时间只有ISE的485%。俗话说,“时间就是金钱”,“效率就是生命”,Vivado只用了不到ISE一半的时间就完成了这个复杂工程的全部实现过程,数据非常有说服力。当然Vivado使用的内存貌似比ISE多了几百MB,但是对于现在配置中等的机器都可以达到8GB内存的情况下,这点内存的差距还是可以忽略的。(好马配好鞍,电脑的这点投资和高端的芯片带来的性能提升和time-to-market减小相比,可以说是微不足道的了)。
图2 ISE完成时间
图3 Vivado完成时间
图4 ISE资源占用
图5 Vivado资源占用
对比使用的资源:默认策略下,二者使用的Slice寄存器类似;Vivado使用的LUT稍多,但是没有使用DSP48E1单元,而ISE使用了12个,相当于Vivado用一部分LUT完成了DSP单元的功能,这与综合/实现的策略有关。可以认为在默认策略下,Vivado和ISE产生结果的资源利用率打了个平手,还可以通过调整综合/实现的策略达到资源利用率的优化。当然,Vivado相对ISE有个显著的优势,就是Vivado可以一次运行多种不同的策略,从而使得我们一次性获取各种策略的结果,这样的“半自动化”的优势是ISE完全不具备的。
以上就是关于求助vivado2017.1 使用IDE下的部分重加载闪退全部的内容,包括:求助vivado2017.1 使用IDE下的部分重加载闪退、xilinx vivado下microblaze里面C编程中,怎么通过串口实现PC机和FPGA中RAM数据相互读写、vivado中有32位和64位之分吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)