
xilinx
weiweiliulu
这个作者很懒,什么都没留下…
展开
-
AXI4 Stream Switch使用心得
关于这个ip的内容讲解,在 https://blog.csdn.net/xdczj/article/details/72058100 上面已经讲解的比较详细了,刚接触这个ip可以先看一下,这个博客是关于我使用这个ip的一些小注意事项。 第一点是IP的生成,官方的IP显示应该是有BUG,我的使用需求是3从1主做仲裁,然后在IP显示图中显示了三组AXIs从接口,但是每个从接口是主接口的位宽的3倍,...转载 2021-09-03 17:02:30 · 1777 阅读 · 0 评论 -
先装vivado 再装ise ,用ise 下载代码识别不到JTAG
1, 最开始打开设备管理器是这样的,vivado 可以识别,ise 不能识别2, 后来,插上JTAG ,卸载这个驱动,同时删除驱动文件(我用两个电脑都尝试过,不删除驱动文件只是卸载驱动,虽然在ISE 路径下也安装了新的驱动,但是连上JTAG 后,还是识别为上图那样)。然后,拔掉JTAG , 去ise 路径下安装digilent 和install_driverE:\soft\ise14.7_install\14.7\ISE_DS\ISE\bin\nt64 64 位操作系统,注意使用NT64 .ins原创 2021-08-30 17:19:11 · 5026 阅读 · 2 评论 -
vivado有关波形文件的操作
1、 保存波形配置再调试的过程中,我们会更改一些变量显示的先后顺序、颜色、进制表示。如果更改的较多,每次打开的时候都要重新配置一下会很麻烦。这里可以保存配置文件,下次打开对应的.wcfg文件即可使用上次保存的配置。图 最开始默认的仿真波形图 更改了先后顺序和颜色下面保存配置,看等会再打开是这样的不图 波形配置的方法下一步,关闭波形文件,重新打开仿真,默认就是更新过的。如果显示的配置不是你想要的,可以找到你要使用的配置文件的路径,然后打开即可2、保存仿真后的波形文件有时候我们原创 2021-07-29 17:05:51 · 11535 阅读 · 1 评论 -
verilog对文件的操作
1、读文件到memory的操作假设仿真的时候,某个变量需要输入一堆数据,能想到的具体应用就是做协议解析的时候。以往的做法是把数据提前存入ROM中,从ROM 中读取数据,但是这样操作得添加控制ROM的代码,还浪费了一些资源,不太适合仿真。看到有读文件的操作,就尝试一下。//============= 顶层设计模块===================//module top( input I_clk , input I_rst ,原创 2021-07-29 15:36:56 · 849 阅读 · 0 评论 -
AXI DataMover ip 核 (一)
 ...转载 2021-07-26 14:58:16 · 5834 阅读 · 1 评论 -
VIVADO eco 功能
ECO 是指不改变原有的设计的基础上做小范围的修改,比如修改cell属性、增减或移动cell、手动局部布线。我们以vivado 中修改ILA 信号为列,看一下如何使用ECO .1)首先 ,打开DCP文件,这一定是一个综合、布局布线完成的设计工程,注意选择是routed DCP文件2) 打开后,切换到ECO 模式3)添加/ 修改ILA 变量4) 保存DCP 和LTX 文件,同时也可以看到ila 上面是有变化的5)在ECO 界面中,生成新的BIT 文件。生产完成后...原创 2021-07-26 14:25:56 · 2913 阅读 · 0 评论 -
vivado iBert 测试
以上配置完成后自动生成IP 的example 。不用分配引脚,直接使用就可以。原创 2021-03-24 11:08:16 · 1337 阅读 · 0 评论 -
vivado使用TCL命令产生MCS文件
一、vivado生成MCS文件,使用TCL命令如下: 1、打开Open Hardware Manager 2、Tools -> Auto Connect 3、TCL输入: write_cfgmem -format MCS -size 128 -interface BPIx16 -loadbit "up 0x0 xxx.bit" xxx.mcs -fromat mcs 指定生成格式 -inte...转载 2021-01-25 17:54:33 · 1571 阅读 · 0 评论 -
vivado 下载代码到flash
1. 生成MCS 文件第一步:首先生成比特流文件。假设生成的比特文件名字是 led.bit。 第二步:选择工具栏的“Tools"—>"GenerateMemory Configuration File..."打开如下图所示的页面。2. 固化有一次,用SPI X4 报错,在XDC 文件中添加这句话即可set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]...原创 2020-09-08 11:23:40 · 2526 阅读 · 0 评论 -
AXI BRAM control 用法
我自己做了一个小的例程,是TRUE BRAM +AXI BRAM control 的方式来处理的。原始数据用DDS产生,数据速率是122.88M。然后送入到RAM中,通过AXI BRAM control 把RAM中数据送到zynq接口中。原创 2020-08-18 15:35:42 · 4678 阅读 · 1 评论 -
Vivado中AXI IP核的创建和读写逻辑分析
Vivado中AXI IP核的创建和读写逻辑分析总述本文包含两部分内容:1)AXI接口简介;2)AXI IP核的创建流程及读写逻辑分析。1 AXI简介(本部分内容参考官网资料翻译)自定义IP核是Zynq学习与开发中的难点,AXI IP核又是十分常用的自定义IP核,因此掌握AXI IP核的创建流程及通信机制显得尤为重要。要搞懂AXI IP核,就必须...转载 2020-08-18 15:26:25 · 2522 阅读 · 0 评论 -
DMA测试(Direct Register Mode)(PS + PL)
ZedBorad–(5)嵌入式Linux下的DMA测试(PS+PL)本文将详细介绍如何在ZedBorad上使用AXI接口的DMA IP核。(文末会给出测试代码的...转载 2020-07-23 18:00:20 · 3195 阅读 · 0 评论 -
AURORA核多通道绑定使用注意事项
正文在Aurora片间接口的调试中,一共需要用到两片FPGA,为达到速率的要求,所以Aurora需要采用主从双核,双通道绑定的工作模式,一共需要四个GTX(一个GTX 支持4Gbps的速率,一个Aurora核使用两个GTX,所以本例程中一个Aurora核最高支持8Gbps的速率)来完成片间数据的传输工作。 ...转载 2020-07-22 15:03:37 · 5018 阅读 · 0 评论 -
vivado 编辑与改写IP核源文件
有些时候,根据设计需求可能会想要修改IP核生成的源文件(只能修改未加密文件),包括HDL文件和XDC约束文件。 这种修改不能直接修改源文件,因为在后续设计流程中,...转载 2020-07-21 15:50:43 · 6689 阅读 · 0 评论 -
警告记录 - [Timing 38-316] Clock period ‘10.000‘ specified during out-of-context synthesis of instance
参考链接:https://blog.csdn.net/hq1097/article/details/84657019[Timing 38-316] Clock period '10.000' specified during out-of-context synthesis of instance 'ila_Top_inst' at clock pin 'clk' is different from the actual clock period '5.000', this can lead to.原创 2020-07-16 15:50:02 · 3245 阅读 · 0 评论 -
ZYNQ 之PS 和PL 互联技术之AXI
1. ZYNQ 概述2. AXI 概述AXI (Advanced eXtensible Interface)是xilinx 从6系列fpga开始引入的一个接口协议,主要描述了主设备和从设备之间的数据传输方式。主设备和从设备之间通过握手信号建立连接。当从设备准备好接收数据时,会发出ready信号。当主设备的数据准备好时,会发出和维持VALID信号,表示数据有效。数据只有在valid 和ready信号都有效的时候才开始传输。 在zynq中,支持AXI-LITE,AXI4 和AXI S...原创 2020-06-29 16:02:14 · 1802 阅读 · 0 评论 -
GT高速接口通关简介
1、GT基础知识 SATA 接口只有几根线为什么那么快?连上网线显示的10Gbps(万兆网)是不是很令人兴奋!没错,他们都用了高速GTX技术、GTX全称Gigabit transceiver,是为了满足高速、实时传输而生的技术。传统的并行传输技术存在抗干扰能力低,同步能力差,传输速度低和信号质量差等问题。GTX目前的线速度范围是1Gbps - 12Gbps,有效负载范围0.8Gbps - 10Gbps。目前GTX已经应用于光纤通道(FC),PCIE,Rapid io,串行SATA ,千兆以太网,万..原创 2020-05-20 18:54:59 · 9482 阅读 · 0 评论 -
zynq 固化程序
目录1. 工程搭建2. 生成FSBL3. 创建BOOT文件4. SD卡启动测试5.QSPI启动测试6.在vivado 下烧写QSPI1. 工程搭建平台采用AX7Z100开发平台。1) 首先搭建好zynq框架,有一个完整的工程。2)要固化程序必须使能 QSPI 或SD卡。由于开发板上是由两颗QSPI flash 组成8位的QSPI,因此这里选择Dual Quad SPI (8 bit ),选择feedback 连接到MIO8 。3)添加 SD0...原创 2020-05-20 11:22:19 · 6799 阅读 · 0 评论 -
fpga 如何用VIO
在硬件调试过程中,经常会遇到这种情况。我们需要抓的时序可能刚上电的时候就有,等我们开始抓取波形的时候,该时序已经不能正常获取了。这就需要我们添加一个VIO ,下载完代码以后,触发VIO 产生一个使能信号,用该使能信号做逻辑触发,抓取时序波形。 将上述IP核生成好,添加到代码中。测试的时候,输出默认是0,运行VIO 以后输出1 。用1 做触发,做逻辑的使能...原创 2020-04-23 18:16:59 · 5825 阅读 · 0 评论 -
vivado Mark debug 方式添加测试端口
在线调试,可以用ila,也可以用debug。平时我都用的ila或者chipscope。但是在block开发方式下,module里面不能含有IP核,否则add module失败。当然也可以把module封装成IP核,然后在block中添加。自己开发的时候,又懒得把所有模块封装成IP核,耗时,麻烦。这样想要添加测试信号的时候,就需要用到debug。 在使用chipscope的时候...原创 2020-04-23 11:06:28 · 6169 阅读 · 0 评论 -
VIVADO inout 端口的使用
使用2018.1版本编译带有INOUT 端口的代码,代码逻辑没问题,写了三态控制。但是下板子,inout端口输入数据一直是0。最终查找原因,看RTL级原理图,并没有三态控制,端口信号只是被认为一个简单的输出信号。后来,用IOBUF 代替 assign 语句描述的三态控制问题得到解决。 IOBUF #( .DRIVE(12), // Speci...原创 2020-04-22 18:47:22 · 6931 阅读 · 1 评论 -
fpga的网表文件
第三方给的代码,有可能会被封装成网表文件,而没有源码。没亲自操作过,不是很懂。目前别人给的一个代码,vivado 开发,其模块就封装成EDF文件,看不到源码。网上看vivado 还有一种网表文件格式 dcp.我知道官方自带的IP核平时用的时候,可以只添加XCI 文件即可对于ISE工具,网表文件是NGC 。...原创 2020-04-21 16:18:01 · 4189 阅读 · 0 评论 -
DDR 学习4 不用AXI 方式的DDR IP核控制
ddr 400Mmig 200Muser 200Mddr data_width 64user data_width256https://blog.csdn.net/MaoChuangAn/article/details/85268231https://www.docin.com/p-2111794929.htmlhttps://blog.csdn.net/SLAM_ma...原创 2020-04-21 16:14:58 · 623 阅读 · 0 评论 -
XILINX 7 系列FPGA内部逻辑分析
1、可编程逻辑资源 (configurable logic block ,CLB) CLB在FPGA中最为丰富,由两个slice(片)构成:SLICEL(L:logic) 和SLICEM(M:memory)之分,因此CLB可分为CLBLL和CLBLM两类。一个芯片差不多2/3是SLICEL,1/3是SLICEM。 SLICEL和SLICEM内部都包含4个6输入查找表...原创 2020-04-21 15:43:14 · 1202 阅读 · 0 评论 -
Verilog的generate的用法
generate生成语句可以动态的生成verilog代码,当对矢量中的多个位进行重复操作时,或者当进行多个模块的实例引用的重复操作时,或者根据参数的定义来确定程序中是否应该包含某段Verilog代码的时候,使用生成语句能大大简化程序的编写过程。生成语句生成的实例范围,关键字generate-endgenerate用来指定该范围。生成实例可以是以下的一个或多个类型:...原创 2020-04-10 12:00:51 · 678 阅读 · 0 评论 -
verilog 语法 +: 的说明
形如 : reg [0+:8] data ; 等同于 reg [7:0] data ; 从0 开始,升序,位宽8。 reg [8-:0] data ; 等同于 reg [0:7] data ; 从0 开始,降序,位宽8。 ...原创 2020-04-10 11:26:43 · 8012 阅读 · 3 评论 -
verilog log 函数,算一个数据的位宽
function integer log2; input integer number; begin log2=0; while(2**log2<number) begin log2=log2+1; end end ...原创 2020-03-26 10:17:23 · 3680 阅读 · 0 评论 -
verilog 函数function 用法,举例计算数据位宽
function integer log2; // 函数定义关键词 function endfunction 。log2 既是函数名也是函数返回值。log2相当于一个变量名,变 // 量类型和位宽就是 函数名log2前面的 integer input inte...原创 2020-01-16 15:01:14 · 2924 阅读 · 0 评论 -
rapid io 学习之1
好用的学习网站认真看下面的链接就可以把rapid io 的知识搞明白。https://www.cnblogs.com/lionsde/p/10109523.html IP学习过程中,主要注意以下内容:rapid io协议不用看,FPGA IP 核为了简化应用,在用户接口上已经把复杂的rapid io 数据包简化为hello包。在使用IP 核的时候,只需要看懂hell...原创 2019-12-23 18:28:00 · 2506 阅读 · 0 评论 -
VIVADO 下载mcs 文件
vivado 下载MCS 文件,在网上看的大部分都是输入TCL 命令。其实,早就有图形化界面了。生成完后添加MCS文件到FLASH中就很方便了。方法:像往常一样打开少些比特流的页面。选中芯片——>右键——>add configuration memory device——>选择自己板卡对应的FLASH——>添加MCS文件,“ok”完成。烧写过程比较慢。...原创 2019-08-12 14:02:21 · 4586 阅读 · 0 评论 -
Xilinx 系列 FPGA 高速收发器的一些知识
GT的意思是Gigabyte Transceiver ,G比特收发器,通常叫serdes 、高速收发器。GT有GTP GTX GTH GTZ 。TX和RX:严格说TX应该是Transmitter ,表示发送部分,RX是Receiver .,表示接受部分 。包含两大部分,PMA PCS。PMA主要功能是 : 串并转换和模拟部分。PCS主要是并行数字电路处理。ibert 是Xil...原创 2019-07-02 15:57:22 · 7833 阅读 · 6 评论 -
vivado 时序约束
XDC的基本语法可以分为时钟约束、IO约束以及时序例外约束,对一个设计进行约束的先后顺序也可以按照这三类约束依次进行。时钟约束时钟约束必须最早创建,端口进来的主时钟以及GT的输出RXCLK/TXCLK都必须由用户使用create_clock自主创建。如果是差分输入的时钟,可以仅在差分对的P侧用get_ports获取端口,并使用create_clock创建。create_clock...原创 2019-06-17 13:51:46 · 19418 阅读 · 0 评论 -
vivao implemment 的时候时序有报错怎么办
首先,在这里整体看一下,都有哪些时序错误,能在代码中处理的就在代码中处理了。一路选下来,可以看到具体是哪个地方的时序错了。基本上都是跨时钟域操作。可以看到是哪个变量,从哪到哪的时钟有问题。最好是先在代码中更改错误。如果代码中更改了以后,还是不行,请继续下面操作:看到OK 点,知道进入下面界面界面中 ,红色和橙色标注的就是时序有问题的。需要处理。后面发现,...原创 2019-06-06 11:20:11 · 895 阅读 · 0 评论 -
vivado学习之PS与PL通信
刚开始学习PS与PL通信的时候,总是理解的不透彻,只能跟书上或者网上的教程学习,但是也只是照猫画虎。直到看了这篇博文:http://xilinx.eetop.cn/viewnews-2547 这个说的很好,主要讲PL 和PS之间的通信,但是中间写了很多为什么要这么做。在网上找的很多其他资料根本就没有这方面的介绍步骤大致如下:1、创建一个block,加载XML文件。2、在blo原创 2017-12-08 14:47:54 · 21819 阅读 · 0 评论 -
状态机 Verilog
状态机是一个抽象的逻辑模型,首先举例说明如何将抽象问题具体化。例 : 串行输入一个二进制bit序列,先输入的为高位,实时监测其表示的二进制数据是否能被3整除。进一步,我们把它写成简介的状态转换表:对应绘制状态转移图有了状态转移图是不是写代码就很明了?在碰到复杂的状态处理时,就可以按照上面方法来处理。 在创建状态机抽象建模时有3个要素需要分析,一...原创 2017-08-14 17:51:46 · 1303 阅读 · 0 评论 -
成形滤波器和匹配滤波器
为了消除码间串扰,根据奈奎斯特第一准则,分析用平方根升余弦滚降滤波器来想实现无码间干扰。以下摘自通信原理--樊昌信--P151该理想滤波器,物理不可实现,还需要寻找另外的设计----- 为了解决理想低通特性存在的问题,可以使理想低通滤波特性的边沿缓慢下降,这成为"滚降"。----------------------------这是通信原理里面的,以后就参原创 2017-07-31 10:36:15 · 34533 阅读 · 15 评论 -
MATLAB与FPGA设计滤波器2-2
用matlab的fdatool设计滤波器,导出参数,然后在FPGA中设计滤波器的方法。低通滤波器设计比较简单。这里主要讲设计插值滤波器的方法。插值滤波器的思路是先插值,后滤波;抽取滤波器是先滤波再抽取。插值又分为插0值和非0值,两者的差别就是频谱的谐波分量不同。如下图figure2 --upsample (a,4,1); %插0 。明显看到谐波分量和主瓣一样高原创 2017-07-31 10:14:00 · 1720 阅读 · 0 评论 -
MATLAB与FPGA设计滤波器2-1
用matlab的fdatool设计滤波器,导出参数,然后在FPGA中设计滤波器的方法。1、设计fir插值滤波2、设计半带滤波器3、CIC滤波器4、频谱相关1111111111111111111111111111111111111111111111111111、设计fir插值滤波MATLAB 中fir插值滤波MATLB产生系数的方法:在命令行中输入fdatool原创 2017-07-31 10:00:44 · 6667 阅读 · 2 评论 -
modelsim仿真wave中数据变量导出到txt文档
试过几种网上说的方法,就这个试通了。在verilog程序中添加相对应的代码即可。reg [7:0] i =0;always @ (posedge clk)begin if (!rst_n) i <=0; else if (i<255) i <= i+1; else i<= 255;end integer w_file; initial w_file原创 2016-05-18 13:38:09 · 15618 阅读 · 9 评论 -
fpga 配置flash加密的好方法
这里是看别人讨论的,做一下参考。看你用什么fpga了。带熔丝的都还可以 。 k7有这个 。要原厂下载线才行哦 。 右键ise12以上版本impact下载软件,选择加密属性,选择加密密方式是Bbram方式还是Efuse方式(Bbram方式需要fpga固定vbat管脚接有1.5v电池,为存放密钥的blockram提供电源,拆除电池则密钥丢失,无法启动加密程序。Efuse则烧写到fpg原创 2016-03-30 15:43:30 · 4013 阅读 · 0 评论