Xilinx开发板初学者问题总结

合集下载

FPGA培训学习faq

FPGA培训学习faq

FPGA培训学习faqFPGA 学习中的FAQ1、在top 层文件中包含多个例化的module ,在top 层与module 之间传递参数时,所有参数设置成了reg 形式,Synplify 编译时提示ERROR :“Expecting wire for output connection ”解决:在module 之间传递的参数一般设置为wire 型变量。

2、在mealy 型状态机的设计中,当要求未提到的状态保持上次输出不变时,使用组合逻辑设计输出等于输出,编译结果产生锁存器。

解决:mealy 型状态机可以考虑采用三段方式描述,这样在最后输出端采用同步设计的话,很容易实现保持输出不变。

3、在异步fifo 的设计过程中,如何判断异常情况情况(读溢出和写溢出)进行复位,最初的方法是进行地址判断,但设计中采用了异步两级同步的方法,这样我就不知道当前的地址与我同步后地址之间的关系,有可能相同(-----没有地址操作),相差一个(同步过程中进行了一次地址操作),相差两个(同步过程中进行了两次地址操作),这样设计地址状态就无法准确判断。

解决:在空或满有效的信号的开始时刻对进行读写次数进行计数,到达一定数目(即我们的预留门限)时,复位。

4、 if(nums >200)||(nums < 300) 把这样的语句作为判断条件,编译器报错“near "||": syntax error, unexpected "||"”解决:if ((nums >200)||(nums < 300))5、if (address = 8’h21)编译出错解决:if (address == 8’h21)一定要用“==”6、在Altera 的2 PORTs RAM 的使能信号中,wr 和rd 有效电平是什么?w w w .m e g a n o v o .c o m解决:wr 和 rd 的有效电平为都为高电平7、在写testcase 时在写时钟的上升沿和读时钟的下降沿碰巧在一起,程序中在这两个边沿同时对一个变量进行赋值,这时就冲突了。

LX110T的板子上跑demo的时候遇到的一些错误的解决办法总结

LX110T的板子上跑demo的时候遇到的一些错误的解决办法总结

LX110T的板子上跑demo的时候遇到的一些错误的解决办法总结.前一段时间在玩xilinx送我在跑XUPV5-LX110T,首先跑xilinx给出的XUPV5-LX110T的demo设计,结果发现遇到了一些错误但是自己在网上发现很少有答案,就把自己的一些总结贴出来:(1)xupv5_bsb_std_ip时出现了问题,其错误描述如下:[xupv5_bsb_system.ucf(1110)]: NET xps_iic_0_Gpo_pin not found. Pleaseverify that:1. The specified design element actually exists in the original design.2. The specified object is spelled correctly in the constraint source file.IOSTANDARD=LVCMOS33; [xupv5_bsb_system.ucf(1111)]: NET xps_iic_0_Gpo_pinnot found. Please verify that:1. The specified design element actually exists in the original design.2. The specified object is spelled correctly in the constraint source file.make: *** [__xps/xupv5_bsb_system_routed] Error 1解决办法:打开xupv5_bsb_std_ip文件夹里面的xupv5_bsb_system.mhs文件,在其80行的位置,将PORT xps_iic_0_Gpo_pin = xps_iic_0_Gpo, DIR = O, VEC = [31:31]注释掉(即在前面加上#即可)或删除。

Xilinx实习一年总结

Xilinx实习一年总结

Xilinx实习⼀年总结从去年7⽉4号来到上海xilinx。

转眼间已经⼀年。

这⼀年学了⾮常多知识,也长了⾮常多见识。

去年七⽉⼀到公司,马上投⼊到摄像头-DDR-HDMI图像通路的研发中。

就是在ZEDboard板卡上。

通过外置摄像头採集图像,在PL部分将採集的像素数据进⾏拼接,转换成axi-stream格式。

然后存储到板卡上的DDR中。

由于同事之前做了⾮常多DDR部分的⼯作,因此我重点放在摄像头的FPGA驱动以及HDMI模块。

最后,在20天内算是不错的完毕了任务,并基于这个通路,做了⼀套机器视觉计分系统——这套系统在8⽉12号⽤在OpenHW开源硬件⽐赛的计分环节,达到了100%的识别率。

之后的9、10⽉份,重点学习HLS。

以及完毕乒乓球追踪平台产品的开发。

这套乒乓球追踪平台是⽤纯FPGA实现。

因此能达到快速的追踪速率。

从设计算法、写verilog代码。

到解决摄像头噪声问题、舵机选型、画PCB、写技术⽂档。

⾃⼰在这⼀套完整产品的开发流程中,也学会了不少和产品有关的开发经验。

10⽉依据⼤学计划这边的安排,做了⾮常多⼩project,⽐⽅FPGA⽰波器、字符识别、逻辑分析仪。

以及像是IIC、SPI、PS2等接⼝的verilog实现之类。

最后上传到了github。

11⽉、12⽉是蛋疼的⼀段时光,由于xilinx这边要调研两种其他公司的芯⽚。

我这边也分配到了⼀⼩部分的任务,但鉴于我的技术⽔平,实在是有点⼒不从⼼。

主要是參考各种技术⽂档。

记录參数,分析指标,预计性能,写报告。

最后,并不太理想的完毕了任务,由于我最后的分析结果有⼀部分被证明是错误的。

1⽉份的⼤部分时间⽤来写⽂档、整理,期间还做了⼀套纯FPGA实现的激光3D扫描器。

2⽉份将这套激光扫描器做到了ZYBO开发板上,实现了HLS处理图像、DDR存储。

年后的3、4、5⽉⽐年前轻松了很多,这段时间每天都抽⼀⼩时学英语,并在⼯作之余做了⼀些⾃⼰觉得⾮常有乐趣的东西。

Xilinx中DCM的问题解决方案

Xilinx中DCM的问题解决方案

Xilinx中DCM的问题解决方案引言概述:Xilinx中的数字时钟管理器(DCM)是一种重要的IP核,用于时钟生成和时钟管理。

然而,在使用DCM时,可能会遇到一些问题。

本文将介绍Xilinx中DCM的一些常见问题,并提供相应的解决方案。

一、时钟频率不稳定的问题1.1 DCM的时钟输入源不稳定- 检查时钟输入源的质量,确保其稳定性和准确性。

- 如果时钟源信号不稳定,可以考虑使用PLL(锁相环)来提供更稳定的时钟源。

1.2 DCM的锁定时间过长- 检查锁定时间是否超过了预期范围。

如果是,可以调整DCM的参数,如锁定时间窗口和锁定周期,以减少锁定时间。

- 确保DCM的输入时钟频率与其设计要求相匹配,避免频率过高或过低导致锁定时间延长。

1.3 DCM的时钟输出波形不稳定- 检查DCM的输出时钟是否正确连接到目标设备,并确保连接稳定。

- 考虑使用时钟缓冲器来提高输出时钟的稳定性。

二、时钟相位偏移的问题2.1 DCM的时钟输入相位不稳定- 检查时钟输入源的相位稳定性,确保输入时钟的相位偏移在可接受范围内。

- 考虑使用相位锁定环(PLL)来提供更稳定的时钟输入相位。

2.2 DCM的时钟输出相位不稳定- 检查DCM的输出时钟相位是否正确连接到目标设备,并确保连接稳定。

- 考虑使用相位锁定环(PLL)来提供更稳定的时钟输出相位。

2.3 DCM的时钟输出相位偏移过大- 检查DCM的参数设置,如时钟相位偏移窗口和时钟相位偏移周期,是否合理。

- 考虑使用相位锁定环(PLL)来提供更精确的时钟输出相位。

三、时钟频率变化的问题3.1 DCM的时钟输入频率变化过大- 检查时钟输入源的频率稳定性,确保输入时钟的频率变化在可接受范围内。

- 考虑使用频率锁定环(PLL)来提供更稳定的时钟输入频率。

3.2 DCM的时钟输出频率变化过大- 检查DCM的输出时钟是否正确连接到目标设备,并确保连接稳定。

- 考虑使用频率锁定环(PLL)来提供更稳定的时钟输出频率。

Xilinx中DCM的问题解决方案

Xilinx中DCM的问题解决方案

Xilinx中DCM的问题解决方案标题:Xilinx中DCM的问题解决方案
引言概述:
Xilinx是一家领先的可编程逻辑器件制造商,其数字时钟管理器(DCM)是一种常用的时钟管理器。

然而,在使用Xilinx中的DCM时,用户可能会遇到一些问题。

本文将为您介绍Xilinx中DCM的问题解决方案。

一、时钟频率不准确的解决方案
1.1 使用精确的输入时钟源
1.2 调整DCM的时钟分频器
1.3 校准DCM的相位偏移
二、时钟抖动问题的解决方案
2.1 降低输入时钟的噪声
2.2 使用低抖动的时钟源
2.3 调整DCM的锁相环参数
三、时钟干扰问题的解决方案
3.1 使用适当的电源和地线布局
3.2 使用抗干扰滤波器
3.3 调整DCM的时钟延迟
四、时钟漂移问题的解决方案
4.1 使用温度稳定的时钟源
4.2 定期校准DCM的时钟频率
4.3 调整DCM的自动校准参数
五、时钟相位问题的解决方案
5.1 使用相位锁定环(PLL)来处理相位问题
5.2 调整DCM的相位校准参数
5.3 使用外部时钟触发器来同步时钟信号
总结:
Xilinx中的DCM是一种强大的时钟管理器,但在使用过程中可能会遇到一些问题。

通过使用精确的输入时钟源、调整DCM的参数以及采取适当的电路设计措施,可以解决时钟频率、抖动、干扰、漂移和相位等问题。

通过掌握这些问题的解决方案,用户可以更好地应对Xilinx中DCM的挑战,并确保系统的时钟管理工作正常运行。

Xilinx ISE软件使用常见问题

Xilinx ISE软件使用常见问题

Xilinx ISE软件使用常见问题1、编译需要的库首先要将安装的ModelSim名目下的ModelSim.ini属性设置为存档类型(去掉只读).然后从DOS界面到ISE安装名目bin t(假如在Windows 的环境变量中已经设置过Xilinx路径,就不必了),运行指令:(for ISE 6)compxlib -s mti_se -f all -l all -p e:modeltech_6.0win32 -o e:modeltech_6.0xilinx_libs(for ISE 6)-p 指定modelsim安装名目-o 指定编译库输出名目(for ISE 7)compxlib -s mti_se -arch all -lib all -l all -p e:modeltech_6.0win32 -dir e:modeltech_6.0xilinx_libs (for ISE 7)-arch : device architecture:spartan2, virtex, etc.-lib : library: unisim, smartmodel, etc.新的版本把本来的-f拆开成了-arch和-lib,而-f则指读取文件,不过也还可以兼容本来的写法的编译之后,compxlib会自动修改modelsim.ini,重新打开ModelSim,就能看到新的库了2、ISE中一些常用的有用功能镜像:Project --> Take Snapshot,用这个很简单做版本控制;打包:Project --> Archive,将工程文件夹打包,便利转移与沟通3、门控时钟收拾与总结当综合器浮现这样的Warning时,即提醒发觉了门控时钟WARNING DesignRules:372 - Netcheck: Gated clock. Clock net_n0019 is sourced by a combinatorial pin. This is not good designpractice. Use the CE pin to control the loading of data into the flip-flop.假如一个时钟节点由组合规律驱动,那么它就形成了门控时钟了。

Xilinx中DCM的问题解决方案

Xilinx中DCM的问题解决方案

Xilinx中DCM的问题解决方案引言概述:Xilinx中的数字时钟管理模块(DCM)是一种重要的电路设计模块,用于生成和管理时钟信号。

然而,在使用DCM的过程中,可能会遇到一些问题。

本文将针对Xilinx中DCM的问题提供一些解决方案,以帮助读者更好地应对这些问题。

正文内容:1. DCM的时钟频率不准确1.1 时钟输入源的干扰:检查时钟输入源是否受到干扰,如电磁干扰、时钟源的抖动等。

可以通过使用抗干扰滤波器或更换更稳定的时钟源来解决此问题。

1.2 DCM参数设置错误:检查DCM的参数设置是否正确,包括时钟分频比、锁定模式等。

确保参数设置与设计要求相匹配。

1.3 DCM的时钟延迟:DCM的时钟延迟可能导致时钟频率不准确。

可以通过调整DCM的延迟参数来解决此问题。

2. DCM的锁定时间过长2.1 锁定模式选择错误:选择适合设计要求的锁定模式,如精确锁定、快速锁定等。

不同的锁定模式具有不同的锁定时间,需要根据实际需求进行选择。

2.2 DCM的输入时钟源不稳定:检查输入时钟源的稳定性,如时钟源的抖动、频率波动等。

稳定的输入时钟源可以缩短DCM的锁定时间。

2.3 DCM的参数设置错误:检查DCM的参数设置是否正确,包括锁定时间的设置、锁定窗口的设置等。

确保参数设置与设计要求相匹配。

3. DCM的相位偏移问题3.1 时钟输入源的相位偏移:检查时钟输入源的相位偏移是否符合设计要求。

可以通过使用相位校正电路或更换更稳定的时钟源来解决此问题。

3.2 DCM的参数设置错误:检查DCM的参数设置是否正确,包括相位偏移的设置、相位校正的设置等。

确保参数设置与设计要求相匹配。

3.3 DCM的时钟延迟:DCM的时钟延迟可能导致相位偏移。

可以通过调整DCM的延迟参数来解决此问题。

4. DCM的功耗过高4.1 DCM的工作频率过高:降低DCM的工作频率可以减少功耗。

可以通过调整DCM的参数设置来降低工作频率。

4.2 DCM的电源噪声:检查DCM的电源噪声是否过高,如电源波动、电源纹波等。

Xilinx中DCM的问题解决方案

Xilinx中DCM的问题解决方案

Xilinx中DCM的问题解决方案引言概述:
Xilinx中的数字时钟管理(DCM)模块是用于时钟生成和时钟分频的重要组件。

然而,在实际应用中,DCM模块可能会遇到一些问题,如时钟抖动、时钟漂移等。

本文将针对Xilinx中DCM模块常见的问题提出解决方案,以帮助工程师更好地应
对这些挑战。

一、时钟抖动问题解决方案:
1.1 调整DCM的时钟输入端口的时钟源。

1.2 调整DCM的锁定时间。

1.3 使用PLL锁相环模块来代替DCM模块。

二、时钟漂移问题解决方案:
2.1 调整DCM的时钟输出频率。

2.2 调整DCM的相位偏移。

2.3 使用外部时钟源来代替DCM内部时钟源。

三、时钟信号失真问题解决方案:
3.1 调整DCM的时钟延迟。

3.2 使用低抖动的时钟源。

3.3 使用时钟数据恢复技术来减小时钟信号失真。

四、时钟频率不稳定问题解决方案:
4.1 调整DCM的时钟输入端口的时钟源。

4.2 使用更高精度的时钟源。

4.3 调整DCM的锁定时间和时钟延迟参数。

五、时钟相位偏移问题解决方案:
5.1 调整DCM的相位偏移参数。

5.2 使用外部相位校准电路。

5.3 使用PLL模块来代替DCM模块进行时钟相位调整。

结论:
通过本文提出的解决方案,工程师们可以更好地解决Xilinx中DCM模块可能遇到的问题,确保时钟信号的稳定性和精确性。

同时,建议在实际设计中,根据具体情况选择合适的解决方案,以提高系统的性能和可靠性。

Xilinx公司FPGA设计技术问答精选

Xilinx公司FPGA设计技术问答精选

Xilinx公司FPGA设计技术问答精选Xilinx公司FPGA设计技术问答精选问:我在ISE4.1中,用fpga express verilog编译的某些文件,用modelsimxe只能前仿,不能后仿,不知5.1i是否有改进?答:4.1i支持用Modelsim XE实现行为级仿真和时间仿真,5.1I 也同样。

请用热线(china_support /doc/5d15151963.html)打开一个例子并在4.1i/Modelsim XE 运行时间仿真以解决你的问题。

问:和5.1结合比较好的验证工具除了Modelsim外,PC机上可运行的有什么?答:所有能接受Verilog/VHDL文件的仿真器都能使用。

但我们推荐使用Modelsim仿真器,因为Modelsim把ISE输出的.doc文件用做脚本,此外,Modelsim XE专为Xilinx器件提供了预编译的库。

问:ISE在综合的时候,把很多中间信号、特别是组合逻信号都综合掉了(或改名了),这样在后仿的时候造成了很大的不便,请问如何避免这一问题?答:可以使用Keep Hierachy 选项并且在你的综合工具以及我们的布局布线工具里保持网络名选项,这样就可以在你的设计里看见和你以前的同样的网络名。

要获得更多的帮助,可以同你的FAE或者在网上发EMAIL给china_support /doc/5d15151963.html。

问:Data2BRAM可以简化哪些工序?答:Data2BRAM 提供了一种简便的方法用以修改BlockRAM的内容而不需要预编译你的整个设计。

Data2BRAM的创建可以方便地把CPU软件镜象同FPGA的位数据流相结合并且可以从BlockRAM的内部地址空间执行软件。

当你用Xilinx的Microblaze 的软CPU核或VirtexIIPro的内嵌PowerPC核进行设计时这一点尤其有用。

问:毛刺有何比较好的消除方法。

实现加法,利用ieee.std_logic_signed.all中的'+',a<;=b+c;是否是最佳方案。

FPGA问题汇总

FPGA问题汇总

可编程逻辑器件设计技巧1. 什么是.scf?答:SCF文件是MAXPLUSII的仿真文件, 可以在MP2中新建.1.用Altera_Cpld作了一个186(主CPU)控制sdram的控制接口, 发现问题:要使得sdram 读写正确, 必须把186(主CPU)的clk送给sdram, 而不能把clk经cpld的延时送给sdram.两者相差仅仅4ns. 而时序通过逻辑分析仪测试没有问题. 此程序在xilinx器件上没有问题. 这是怎么回事?答:建议将所有控制和时钟信号都从PLD输出, 因为SDRAM对时钟偏移(clock skew)很敏感, 而Altera的器件PLL允许对时钟频率和相位都进行完全控制. 因此, 对于所有使用SDRAM的设计, Altera的器件PLL必须生成SDRAM时钟信号.要利用SDRAM作为数据或程序存储地址来完成设计, 是采用MegaWizard还是Plug-In Manager来将一个PLL在采用Quartus II软件的设计中的顶层示例?可以选择创建一个新的megafuntion变量, 然后在Plug-In manager中创建ALTCLKLOCK(I/P菜单)变量. 可以将PLL 设置成多个, 或是将输入划分开来, 以适应设计需求. 一旦软件生成PLL, 将其在设计中示例, 并使用PLL的“Clock”输出以驱动CPU时钟输入和输出IP引脚.2.在max7000系列中, 只允许有两个输出使能信号, 可在设计中却存在三个, 每次编译时出现“device need too many [3/2] output enable signal”. 如果不更换器件(使用的是max7064lc68). 如何解决这个问题?答:Each of these unique output enables may control a large number of tri-stated signals. For example, you may have 16 bidirectional I/O pins. Each of these pins require an output enable signal. If you group the signals into a 16-bit bus, you can use one output enable to control all of the signals instead of an individual output enable for each signal. (参考译文:这两个独特的输出使能中每个都可能控制大量三相信号. 例如, 可能有16个双向I/O引脚. 每个引脚需要一个输出使能信号. 如果将这些信号一起分组到一个16位总线, 就可以使用一个输出使能控制所有信号, 而不用每个信号一个输出使能. )3.关于vhdl的问题:process(a, b, c) begin… end process; 如果a、b、c同时改变, 该进程是否同时执行三次?答:PROCESS STATEMENTS 中的执行跟逻辑有关系, 假如是同步逻辑, 则在每次时钟的触发沿根据A, B, C的条件来执行一次;假如是异步逻辑, 则根据判断A、B、C的条件来执行. 一般我们都推荐使用同步逻辑设计4.在设计最初, 由于没有将时钟信号定义在全局时钟引脚上, 导致MAXPLUS II 在时间分析时提示错误:(时钟偏斜加上信号延迟时间超过输入信号建立时间). 全局时钟引脚的时钟信号到各个触发器的延时最小, 有没有可能通过编译软件设置, 将普通I/O脚上的时钟信号也经过芯片内部的快速通道以最小的延迟送到每个触发器时钟引脚?答:you can register that signal and assign it as the global signal, by the step flow: assign->logic option->Individual logic options->Global signal. But you'd better input the clock signal through the dedicated input pin. (参考译文:可以寄存这个信号, 并将它指定为全局信号, 步骤如下:指定—>逻辑选项—>个别逻辑选项—>全局信号. 但是, 最好通过专用输入引脚输入时钟信号. )5.用MaxplusII 软件设计完后, 用Delay Matrix查看延迟时间. 由于内部触发器的时钟信号用了一个输出引脚的信号, 譬如将一引脚ClkOut定义为Buffer, Clkout是一时钟信号, 然后反馈到内部逻辑, 内部逻辑用此信号作为时钟信号, 但用Delay Matrix, 却查看不到一些信号相应于ClkOut的延迟, 因为ClkOut是一Output引脚, 在Delay Matrix source 一栏中没有ClkOut信号, 如何解决这个问题?答:这种做法在逻辑设计中称为GATE CLOCK, 所谓GATE CLOCK就是将设计中的组合逻辑结果拿来做时钟信号, 这是一种异步逻辑设计.现在都推荐使用同步逻辑设计方法. 可以将该信号(CLKOUT)拿来作使能信号, 即ENABLE信号, 而时钟信号还是采用原来的统一时钟, 使设计用尽量少的同步时钟, 这样一来就还是用DELAY MATRIX来分析原有的时钟.6.我是一个epld的初学者, 目前看到xilinx的Virtex-II中嵌入大量的资源如:powerpc、ram 等, 究竟如何在fpga中使用这些资源?答:Xilinx Virtex-II中嵌入的资源非常丰富, 如BlockRAM、Digital Clock Manager、On-chip termination等等. ISE 4.2i软件完全支持这些资源. 可以举出单元库中相应基本数据的实例. Xilinx Core Generator中也还支持BlockRAM等特性. 至于PowerPC和MGT设计, 可以使用Virtex-II Pro开发者套件.7.在设计中, 往往需要对某个信号做一定(任意长)的延时, 有没有好的方法来实现?而不是采用类似移位寄存器的方法来延时.答:使用移位寄存器在FPGA中对信号进行延时是一种好方法. Xilinx Virtex架构中每个对照表(LUT)都能够设置成为具有可编程深度(最多为16)的移位寄存器. 这就提供了一种高效的途径来在FPGA中实现移位寄存器. 无须使用触发器就可以实现一个16位寄存器. 作为一个好的设计习惯, 任何情况下都不要通过闸延迟来实现延迟逻辑.8.ISE中的PAD TO PAD CONSTRAINT 是否是包括输入输出的pad时延之和再加上输入输出之间的组合逻辑的时延?还是只是输入输出之间的组合逻辑的时延?答:Xilinx PAD-to-PAD contraint的确涉及到输入输出PAD时延. 这从布局后时序报告中可以看出.9.由于现在的设计基本上都是同步设计, 那么PAD TO PAD CONSTRAINT 在什么情况下使用?答:虽然现今多数设计都是完全同步, 但仍有一些情况需要从一个输入引脚到另一个输出引脚的纯粹组合路径. 因此, 仍然需要PAD-to-PAD constraint控制这些路径的时延.10.如何在ISE 中看到PAD TO PAD 的布线情况?答:通常不必在意信号在FPGA内的路线, 只要它涉及到时序问题. 这种工具将对以优化的方式对设计进行路由. 如果希望检查具体路由, 可以使用Xilinx FPGA Editor, 它包含在ISE4. 2i软件中.11.在Xilinx Foundation 3. 1i下用JTAG PROGRAMER下载程序到芯片中, 可是总是出现如下错误:If the security flag is turned on in the bitstream, programming status can not be confirmed;others, programming terminated due to error. 测量电路信号, 没有相应的波形, 显然下载没有成功. 所用的芯片是:Xilinx Spartan2 XC2S50TQ144. 怎么解决?答:This is a security feature. By disabling readback, the configuration data cannot be read back from the FPGA. This prevents others from pirating your intellectual properties. You can enable or disable this feature during bitstream generation.The proper way to determine if the configuration is finished without error is to check the status of the DONE pin on the FPGA. DONE pin should goes high if the bitstream is received correctly. Also, since you are using JTAG configuration, please make sure you have selected JTAG clock (not CClk) as your Startup clock during bitstream generation. (参考译文:这是保密功能. 通过禁用回读, 配置数据不能从FPGA回读. 这可以防止其他人盗用你的成果. 在生成位元流过程中, 可以启用或禁用这个功能.确定配置是否准确无误地完成, 适合的方法就是检查FPGA上DONE引脚的状态. 如果正确地接收了位元流, 则DONE引脚将会升高. 而且, 既然使用JFAG配置, 就要确保在生成位元流过程中, 已经将JGAG时钟(而不是CClk)选作了Startup时钟. )12.Xilinx Virtex架构中每个对照表(LUT)都能够设置成为具有可编程深度(最多为16)的移位寄存器. 可否理解为, 在写设计的时候如果设计了一个深度不大于16位的移位寄存器, ISE综合时就会用一个LUT来替代它?答:Most synthesis tools (e. g. Synplify Pro, Xilinx XST) are able to infer LUT based shift register (SRL16E) from your source code. Even for depth greater than 16, the tool is smart enough to infer multiple SRL16E to realize the shift register. Another way to utilize this feature is to instantiate an SRL16E in the source code. You can refer to the Library Guide in the Xilinx ISE software package for more details. (参考译文:大多数综合工具, 例如Synplify Pro和Xilinx XST, 都能根据源代码中的移位寄存器SRL16E来推断 LUT. 即使是深度大于16的情况, 此类工具也能够推断出多SRL16E, 从而实现移位寄存器. 利用此功能的另一种途径是在原代码中例示一个SRL16E. 详细说明可以参考Xilinx ISE软件包中的库指南. )13.LUT是实现组合逻辑的SRAM, 怎样实现一个时序的移位寄存器, 是不是必须加一个触发器来配合LUT?答:The LUTs in Xilinx Virtex architecture are not simply combinational logic. When it is configured as 16x1 RAM, the write operation is synchronous. When it is configured as shift register, there is no need to consume any flip-flop resource. In fact the internal circuitry of a Virtex LUT is more complicated than what it looks like. (参考译文:Xilinx Virtex结构中的LUT不是简单的组合逻辑。

XilinxVivadozynq7000入门笔记

XilinxVivadozynq7000入门笔记

XilinxVivadozynq7000⼊门笔记IP Integrator flow1.创建RTL⼯程2.创建IP Integrator Block Design3.添加zynq 处理器ip中搜索zynq,添加zynq7 Processing System,其中的BFM版本为先前的IP处理器版本。

⿏标右键点击FIXED_IO和DDR接⼝,选择make external,连接到芯⽚外部。

但此时处理是完全未经过配置的,双击处理器进⾏配置。

⾃动添加的外部接⼝:(参考ug585⽂档)FIXED_IO, 是专⽤的内部固化的外设IO,作⽤?54个MIO⼝,DDR_VRN,DDR_VRP: DDR DCI voltage reference pins, refer to UG933, Zynq-7000 AP SoC PCB Design and Pin Planning Guide. PS_SRSTB: Debug system reset, active Low. Forces the system to enter a reset sequence.PS_CLK: System reference clockPS_PORB: Power on reset, active lowDDR接⼝,处理器ddr内存寻址接⼝;M_AXI_GP0_ACLK,M_AXI_GP0,在PS-PL Configuration中可取消对GP Master AXI Tnterface的选择FCLK_CLK0:PL Pabric Clocks,不使⽤可在Clock Configuration 中disable。

FCLK_RESET0_N:时钟复位使能,可在General中disable 。

4.配置processing System,配置处理器内部控制模块的详细功能与特性查看:Soc Technical Reference manual/doc/4d0766dba32d7375a5178011.html /support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf通⽤配置:(1)MIO配置:Bank0与Bank1分区的IO对应FPGA处理器可配置的IO,由硬件决定电平还是芯⽚已经指定电平?由硬件决定。

xilinxFPGA课程学习总结

xilinxFPGA课程学习总结

xilinxFPGA课程学习总结 ⼀时冲动,跑步进⼊了FPGA的⼤门,尤⽼师是教练,我之前⼀直做嵌⼊式软件,数字电路也是⼗年前⼤学课堂学过,早已经还给⽼师了。

FPGA对于我来说完全是⼩⽩,所以。

⽼师的课程,对于我来说⾄关重要!因为见过太多从⼊门到放弃的案例了!什么样的教程和视频,可以不⾄于让⼩⽩从⼊门到放弃呢?我总结了⼏点:1.由浅⼊深,循序渐进,不急躁,不跃进,符合⼈的认知规律,符合学习记忆的⾼原曲线。

越学越有信⼼!2.这个课程避免了陡峭悬崖式学习曲线,不会⼀股脑⼉把所有知识灌输进来,⼀下⼦消化不了这么多,认为学习太难,太复杂,就容易放弃!3.学以致⽤,⽤到的时候再引出来相关知识点!⽐如scope,约束等。

4.学习过程得到尤⽼师的及时指导,⿎励,这个也很重要。

5.FPGA专业性⽐较强,我从课程学习到⼯作⽅法,跟做嵌⼊式产品类似,先画出流程图,时序图,再去写代码!否则就本末倒置。

下⾯是具体章节学习总结。

1.变量类型,赋值语句,运算符合这部分因为与C语⾔类似,基本上过⼀遍就⾏。

2.时钟分频,这部分也简单,⼀个变量cnt计数,然后在某些位置置位清零就可以,难度不⼤。

3.倍频。

使⽤PLL IP核。

本章引出来了IP核,后续的FIFO,ram都是需要IP核。

直接使⽤ISE---->TOOL---->core generater去创建就可以,然后有实例化模板,拷贝到⾃⼰的*.V⽂件去使⽤,就像C语⾔⼯程的库函数那样使⽤,很⽅便。

4.TOP-DOWN模块化设计,这⼀章节,其实就是C语⾔⾥⾯的⾼内聚低耦合原则,模块化原则,在实际项⽬也是容易掌握的。

5.状态机。

FSM。

其实也是C语⾔⼯程⾥⾯状态机,使⽤case *进⼊不同的状态,具体到FPGA,⼀般是状态切换使⽤⼀个always语句,其他功能与状态切换分开实现的。

6.按键消抖,售货机,这个⼩项⽬我就没有⼀⼀做了,这个项⽬是TOP-DOWN模块化设计和FSM的综合应⽤,因为与C语⾔太相似,我准备在全部掌握后再研习⼀次。

编程初学者常见问题解决方案

编程初学者常见问题解决方案

编程初学者常见问题解决方案一、编程初学者常见问题解决方案在学习编程的过程中,初学者常常会遇到各种问题,例如语法错误、逻辑错误、调试困难等。

下面将为大家介绍一些常见问题的解决方案,希望能帮助大家更好地学习编程。

1. 语法错误语法错误是编程过程中最常见的问题之一。

当编写代码时,如果出现语法错误,编译器或解释器会报错并提示错误的位置。

解决语法错误的方法是仔细检查代码,确保符号、括号、分号等使用正确,并且注意大小写敏感。

2. 逻辑错误逻辑错误是指程序在运行时出现的错误,通常是由于程序逻辑设计不当导致的。

解决逻辑错误的方法是通过调试工具逐步检查程序运行过程中的变量取值,找出逻辑错误的根源,并进行相应的修改。

3. 调试困难调试是编程过程中非常重要的一环,但初学者常常会遇到调试困难的情况。

解决调试困难的方法是养成良好的调试习惯,例如添加适当的注释、使用调试工具、运行程序进行测试等,以便更快地定位和解决问题。

4. 学习资源不足在学习编程过程中,初学者可能会感到学习资源不足,不知道从哪里获取更多的学习资料。

解决这个问题的方法是多参考优质的编程书籍、网站和论坛,积极参与编程社区,与他人交流学习经验,不断提升自己的编程技能。

5. 编程环境配置问题初学者在搭建编程环境时可能会遇到各种配置问题,例如安装软件、设置路径、配置环境变量等。

解决这个问题的方法是查阅相关的配置文档,按照步骤逐个配置,遇到问题及时搜索解决方案,保持耐心和细心。

6. 编程思维不够灵活编程思维是编程能力的核心,但初学者可能会觉得编程思维不够灵活,难以理解和应用。

解决这个问题的方法是多练习编程,尝试不同的编程语言和项目,培养自己的逻辑思维能力和创造力,不断挑战自己的极限。

7. 编程知识掌握不牢固编程知识的掌握是编程能力的基础,但初学者可能会觉得知识掌握不牢固,难以应对复杂的编程问题。

解决这个问题的方法是系统学习编程知识,建立完整的知识体系,不断总结和归纳知识点,加强对基础知识的理解和应用。

Xilinx中DCM的问题解决方案

Xilinx中DCM的问题解决方案

Xilinx中DCM的问题解决方案标题:Xilinx中DCM的问题解决方案引言概述:Xilinx是一家知名的可编程逻辑器件(FPGA)制造商,其设计工具套件包含了许多有用的组件和模块。

其中,数字时钟管理(DCM)模块在数字系统设计中具有重要的作用。

然而,使用DCM时可能会遇到一些问题,本文将介绍Xilinx中DCM的问题解决方案。

一、时钟频率不稳定的问题1.1 时钟输入质量不佳1.2 硬件布局问题1.3 DCM配置错误二、时钟相位偏移的问题2.1 时钟输入源不稳定2.2 时钟输入延迟不一致2.3 DCM配置错误三、时钟频率偏移的问题3.1 时钟输入源频率不稳定3.2 DCM配置错误3.3 时钟输入延迟不一致四、时钟分频比错误的问题4.1 DCM配置错误4.2 时钟输入延迟不一致4.3 时钟输入频率不稳定五、时钟输出相位不稳定的问题5.1 时钟输出延迟不一致5.2 DCM配置错误5.3 时钟输出驱动能力不足正文内容:一、时钟频率不稳定的问题1.1 时钟输入质量不佳:时钟输入信号可能受到干扰或噪声,导致时钟频率不稳定。

解决方案是使用滤波器或信号调整器来改善时钟输入质量。

1.2 硬件布局问题:时钟线路的长度和布局可能导致时钟信号的传输延迟不一致,从而引起频率不稳定。

解决方案是优化硬件布局,缩短时钟线路长度,并避免与其他信号线路的干扰。

1.3 DCM配置错误:DCM的配置参数可能不正确,导致时钟频率不稳定。

解决方案是仔细检查DCM的配置参数,确保其与设计要求相匹配。

二、时钟相位偏移的问题2.1 时钟输入源不稳定:时钟输入源可能存在相位抖动或漂移,导致时钟相位偏移。

解决方案是使用稳定的时钟源,并进行适当的时钟源同步。

2.2 时钟输入延迟不一致:时钟输入信号的传输延迟可能不一致,导致时钟相位偏移。

解决方案是通过控制时钟线路长度和使用延迟均衡器来平衡时钟延迟。

2.3 DCM配置错误:DCM的相位配置参数可能不正确,导致时钟相位偏移。

Xilinx FPGA 开发中遇到的问题及解决途径

Xilinx FPGA 开发中遇到的问题及解决途径
A:
一个原因可能是顶层文件有语法错误,例如,某处多写一个";"。
Q:
ERROR:HDLCompilers:87 - "cam.v" line 89 Could not find module/primitive 'CAM_V5_1' A:
In ISE 9.1i, Project Navigator does not properly handle the support files for IP cores with EDN netlist. As a method by which to work around this issue, if the IP core supports VHDL, the Functional Model Target Language for the core can be changed to VHDL. To do this, select the IP core in the sources window, then right-click View HDL Functional Model, and select Properties.
Q:
Checking timing specifications ...
Checking Partitions ...
Checking expanded design ...
Partition Implementation Status ------------------------------- FATAL_ERROR:HierarchicalDesignC:PartitionHelper.c:226:1.6.4.2 - ERROR : IPartitionHelper::IsPartition called with a null block. Process will terminate. For more information on this error, please consult the Answers Database or open a WebCase with this project attached at /support.

学开发板的难点

学开发板的难点

学开发板的难点
一、拿到开发板怎么入手?
1、看光盘目录,了解提供的资料情况·
2、找到核心学习资料,大致了解开发板硬件
3、查看资料,安装开发环境
4、先学基础,多学多问
5、不懂的先找资料,再提问
6、高级知识慢慢学。

二、参考资料:
1、最底层(了解):CM3权威指南(ARM提供)
2:、芯片参考手册(芯片功能、寄存器描述特性等):STM32F10x 中文参考手册
3、芯片数据手册:STM32F103xCDE_DS_CH_V5。

pdf
4、官方资料和教程:固件库包(含参考源码),一些官方培训PPT
5、特定开发板学习教程(手册、视频、源码)(理解)
三、基本要求
1、C语言是基础
2、熟练掌握一种开发环境,Keil5。

掌握一种调试工具:JTAG
3、库函数和寄存器对比学习。

寄存器配置
4、基本外设:GPIO输入输出,外部中断,定时器,串口。

理解这四个外设,基本就入门了一款MCU。

基本外设接口:SPI、IIC、WDG、FSMC、ADC/DAC、SDIO对芯片而言就是加减法。

高级功能:UCOS / FATFS / EMWIN。

以及一些应用
————————————————
版权声明:本文为CSDN博主「我偶像带土」的原创文章,遵循CC 4。

0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog。

csdn。

net/weixin_48784385/article/details/108167792。

龙芯开发板软件应用常见问题

龙芯开发板软件应用常见问题

龙芯开发板软件应用常见问题龙芯开发板软件应用常见问题本文旨在记录龙芯开发板,上手调试以及软件编译过程中遇到的,属于非常规开发的问题(或特定知识点)及解决方法。

这些问题在龙芯官网和开发文档上没有提及或没有彻底解决,故此记录以便后续查阅。

目录1.开发板调试FAQ (3)1.1we can't locate root directory in super block! (3)1.2Can't assign requested address (3)1.3Unable to mount root fs on unknown-block (4)1.4The MEMSIZE is not supported (4)1.5如何判断PMON、kernel、FS是否成功加载 (5)1.6内核加载后控制台串口没有输出 (5)1.7上电后显示器花屏 (6)2.软件编译FAQ (7)2.1bin/sh: mipsel-linux-gcc: 未找到命令 (7)2.2bin/sh: pmoncfg: 未找到命令 (7)2.3'make menuconfig' requires the ncurses libraries. (8)1.开发板调试FAQ1.1we can't locate root directory in super block!用U盘加载方式引导开发板内核启动时可能会出现这个问题,原因是龙芯的PMON使用该加载方式时,会对存储器进行检查,要求存储器必须保留一段未分配的存储空间。

在制作内核U盘时,需要格式化U盘为ext2格式,此时可留出约5M的存储空间不要分配,如下图红色区域。

再在其它分区放入文件系统和内核即可。

1.2Can't assign requested address用网口tftp方式加载内核时可能会出现此问题,原因是PMON环境下开发板的网络端口没有配置成功。

工程师设计经验分享:画FPGA开发板所犯的那些错误

工程师设计经验分享:画FPGA开发板所犯的那些错误

工程师设计经验分享:画FPGA开发板所犯的那些错误
画FPGA开发板所犯的那些错误,小编这里先截下我最初画这个开发板的一张“惨不忍睹”的PCB让大家看看。

TopLayer如图:
BottomLayer如图:
第一遍画的时候,想“速战速决”把它画完,草草了事,但是等全部布线完以后却发现这里面的错误实在是太多了,我觉得最核心的错误就是一开始就没有注意整个系统各个元器件的布局,从而导致了“灾难”的发生,后来的布线也就非常困难。

大家很容易可以在上图中看出布线的长度大部分都很长,其实这也是非常严重的错误,尤其对于高速信号线来说。

输入、输出端用的导线应该尽量短,且尽量不要长距离的平行,当然,差分线除外。

我们知道,其实每个元器件都会有引脚电感,从芯片的引脚导线到电阻、电容和电感线圈的引线,每条线和走线都有寄生电容和电感,它们直接影响着导线的阻抗并且对高频率敏感。

一般来说,在低频段时导线主要呈现电阻特性,而根据RF电路理论可知,在高频段时,导线会呈现电感特性,我画的这个板子是25MHz的,所以可以对这个因素含糊一点了,但是,为了防止带来不必要的麻烦,在走高频信号线时还是小于150MHz波长的1/20为好,以免在板子上形成意外的干扰源,因为当信号频率达到150MHz以上时,PCB走线就相当于“变成”了一个有效的天线了!
我们还得注意一下差分信号的走线,很重要的一点就是差分信号线在板子上的走线必须一样长,而且对于信号速率在一百MHz以上的,还得选用带阻抗控制的高速连接器,我画这块板子的时候不需要考虑这点,但我还是提防。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

开发板初学者问题总结
1. Impact软件或者ISE软件停止工作
系统升级了Win10,安装ISE14.7后发现了一些问题,影响了软件的使用,非常不爽,检索了网上的解决信息,尝试了一些方法,基本解决了问题,先总结如下:
1.ISE(64bit)软件在进行打开文件或文件夹操作时,软件出现闪退的现象,ISE (32bit)没有这个问题。

解决方法:
找到程序安装路径下的这两个文件夹
X:\Xilinx\14.7\ISE_DS\ISE\lib\nt64
X:\Xilinx\14.7\ISE_DS\common\lib\nt64
首先在第一个文件夹中,重命名libPortability.dll为libPortability.dll.orig,然后复制libPortabilityNOSH.dll 的一个副本并重命名为libPortability.dll,这样你就又有一个libPortability.dll文件了;然后在第二个文件夹,将之前得到的新的libPortability.dll覆盖到这个文件夹中。

EDK没有libPortabilityNOSH.dll这个文件,把ISE的复制过来就可以了
2.Xilinx下载电缆找不到的问题
原先在Win7下电缆去驱动是自己安装的,没有这个烦恼,Win10下虽然也会自己安装,但是在iMpact或ChipScope下面会提示找不到电缆错误。

解决方法:进入这个目录:X:\Xilinx\14.7\ISE_DS\common\bin\nt64
双击install_drivers.exe,如果电脑有连接Cable请按照提示断开连接,安装完毕后就可以正常使用了。

解决办法:因为ISE 64位软件和win10/win8系统不太兼容,需要打开ISE 32位软件,再打开ISE开发环境下的Impact工具。

3. ISE安装后无法打开
有安装完 ISE软件后,打开时显示Clip host, 如下图。

解决办法:造成这个原因可能有以下几种,1:安装路径有中文;2:杀毒软件删除了可执行文件;3:以前安装过其它软件的版本,没有卸载干净。

建议把以前没有卸载干净的ISE软件全部正常卸载,重启机子,安装时关闭杀毒软件,把ISE装在没有中文目录下,最好默认路径安装。

4. AX516/AX545以太网实验无法绑定MAC
以太网测试时,需要在电电脑上绑定FPGA的MAC地址和IP地址,绑定的时候出现“ARP 项添加失败:拒绝访问”或者“ARP 项添加失败:需要提升服务”
解决办法:需要用管理员权限打开CMD窗口。

如果还不行的话,先禁用网卡,再重新打开网卡。

5. 项目中不能有非法字符
如下图中,有用户把项目放在有非法字符的目录下(有空格),会提示错误!
6. 生成MCS文件下载后启动慢
有些用户用Bit文件转换成MCS文件并下载到FLASH中,但上电启动发现FPGA启动较慢。

这是因为需要在ISE生成Bit文件的时候配置Configuration的速度。

具体方法是:右键选择Generate Programming Files->选择Process Prorties, 再选择configration Optioans, 在Configration Rate里选择数字16,这个数字越大,速度越快。

7. 以太网视频传输
当打开以太网视频传输的上位机软件"NicWinPcap.exe"软件,提示找不到wpcap.dll
8. CP2102的驱动
有些电脑,尤其是win8,win10的电脑在安装CP2102驱动的时候会出现错误。

这时需要从silabs 官网下载最新的驱动。

/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#windows
9. Mod elsim仿真
通常情况下一台电脑上即装有ISE,又装有quartus ii且二者的仿真库都在modelsim里编译好,在用modelsim仿真过quartus ii工程之后再用modelsim仿真ISE工程就会出现如题所示错误:Error: (vlog-19) Failed to access library 'rtl_work' at "rtl_work",
解决办法:
此时在modelsim界面的library栏处找到work(unavailable) library rtl_work,将其删除,即可进行ISE工程的仿真。

以后每次仿真过quartus ii工程之后再仿真ISE工程可能都会出现这种情况,那就每次都记得出现错误时就把work(unavailable) library rtl_work删除,再进行ISE工程的仿真
10. USB固件问题。

固件并下载到后,Device Name缺失
解决办法:
生成iic文件的问题,其中漏了-i -f 0xC2 ,导致烧录后USB设备没办法从EEROM 中读取VID PID
11. 开发板总是debug进不去主函数,偶尔能进去,总是出
现这种错误
解决办法:
断点和汇编窗口的问题,把断点与汇编窗口关掉就可以了,
12. 以太网通信MAC地址绑定
MAC地址绑定一次后,如果电脑重新后需要重新绑定MAC地址。

下面是对电脑永久MAC地址绑定的办法,比如您电脑只有一个本地连接,开发板是连接到电脑的这个本地连接的话。

我们用管理员权限打开命令窗口,然后输入以下的语句“netsh interface ipv4 set neighbors "本地连接" "192.168.0.2" "00-0a-35-01-fe-c0" store=persistent”后回车。

如果您的本地连接是“本地连接 1”,则只需要输入以下的语句“netsh interface ipv4 set neighbors "本地连接 1" "192.168.0.2" "00-0a-35-01-fe-c0"
store=persistent”后回车。

绑定后就永久生效了,重启电脑也不需要重新设置绑定MAC地址了。

相关文档
最新文档