- 博客(560)
- 资源 (5)
- 收藏
- 关注
转载 Xilinx PCIe IP核示例工程代码分析与仿真
其中首先执行TSK_DECIPHER_FRAME对此帧进行解析,输出fmt, f_type, traffic_class, td, ep, attr, length等信息,然后执行TSK_3DW任务根据解析出来的信息进一步解析,然后执行board.RP.tx_usrapp.TSK_SET_READ_DATA将解析后的数据传递给tx_app, 在tx_usrapp中将收到的数据存在寄存器P_READ_DATA中。首先需要大概知道pio_writeReadBack_test0调用的一些基本子任务的功能,在。
2025-07-24 15:49:41
15
转载 Xilinx 7系列 FPGA硬件知识系列——FPGA的配置
这就产生问题,因为DCI匹配需要时间,我们的问题就是,过了一段时间,DCI匹配完毕了,但是CCLK却没有了,因此FPGA一直处在Start UP的前2个Phase上,不会到DONE。在该模式下,FPGA向外部的非易失性串行数据存储器或者控制器发出CCLK时钟信号,配置数据会以串行方式载入FPGA,在前几代的FPGA中,存储器通常选择Xilinx官方的XCF串行系列存储器,并给出了相应的设计原理图,但在7系列FPGA中,这种方式被放弃了,其官方的配置文档里并无主串配置模式的相关详细描述。
2025-06-25 09:54:15
331
转载 彻底搞懂FPGA配置
近期通过Chipyard平台生成自定义的Rocket-chip处理器后,对怎么上板产生了疑惑,牵扯一些FPGA的知识不太熟练,故写此文章记录一下对FPGA配置过程的理解。
2025-06-25 09:37:20
82
转载 ZYNQ地址分配问题
转自:https://blog.csdn.net/weixin_30481087/article/details/97656924。
2025-06-04 11:33:23
122
原创 Vivado Address Editor
不同的IP核和内存资源需要映射到特定的地址空间。Address Editor允许用户分配每个IP核或外设的基地址(Base Address)和大小,确保它们不会发生地址冲突。Vivado Address Editor用于管理和配置FPGA设计中的IP核和外设的地址空间。:在设计中,IP核和外设通常使用逻辑地址,而硬件实际上使用物理地址。: 在菜单栏中选择Windows -> Address Editor^1^^2^: 在Vivado中,点击导航栏中的Open Block Design。
2025-06-04 09:59:14
452
转载 【IC设计】草履虫都能看懂的AXI入门博客(大量图文来袭,手把手教学,波形仿真)
通常所说的AXI指AXI4AXI4-Full:用于高性能内存映射需求。AXI4-Lite:用于简单的地吞吐量内存映射通信(例如,进出控制寄存器和状态寄存器)AXI4-Stream:用于高速流数据从Spartan-6和Virtex-6器件开始,Xilinx的IP开始采用AXI接口。后续的UltraScale架构、Zynq-7000系列全部使用AXI总线。AXI总线在Xilinx产品中被广泛采用,主要是高效、灵活、便捷。
2025-05-30 14:35:31
163
转载 SRAM型FPGA空间应用的抗单粒子翻转
目前,SRAM 型 FPGA 在星载电子产品中应用较多的是Xilinx公司的FPGA。图1所示为Xilinx系列FPGA器件的内部结构。从图中可以看出,FPGA内部由3 部分组成,分别为:1)用于实现用户逻辑的可编程阵列(Configurable Logic Block,CLB);2)用于存储用户数据的左右两列存储器(Block RAM,BRAM);3)输入/输出模块(I/O Block,IOB)。CLB 中包含有查找表 LUT、进位逻辑和触发器等元件。
2025-05-29 11:06:31
108
转载 DDR地址和容量计算、Bank理解
由于芯片有预取的操作,所以输出时的同步很难控制,只能限制在一定的时间范围内,数据在各I/O端口的出现时间可能有快有慢,会与DQS有一定的间隔,这也就是为什么要有一个tAC规定的原因。tRCD是DDR的一个重要时序参数,广义的tRCD以时钟周期(tCK,Clock Time)数为单位,比如tRCD=3,就代表延迟周期为两个时钟周期,具体到确切的时间,则要根据时钟频率而定,DDR3-800,tRCD=3,代表30ns的延迟。但是,如果其中的第二笔数据是不需要的,怎么办?然后高位地址,地位地址,七七八八。
2025-05-26 15:06:21
144
原创 Zynq和Microblaze的区别和优势
Zynq芯片包含了一颗双核ARM Cortex-A9处理器,这是一颗“硬”处理器---它是芯片上专用。MicroBlaze为“软”处理器,它是由可编程逻辑部分的单元组合而成的, 也就是说,一个。从另 一方面来说,硬处理器可以获得相对较高的性能,Zynq的ARM处理器正是如此。软处理器的实现和部署在FPGA的逻辑结构里的任何其他IP包是等价的。器的优势是处理器实例的数量和精确实现是灵活的。而且优化过的硅片原件。
2025-05-22 15:52:52
273
原创 使用xpm_cdc_array_single原语,该注意什么?
指的是源信号在当前.v中是reg型还是wire型;3、信号宽度至少为慢时钟的一半,否则无输出。
2025-04-24 16:04:16
459
原创 10G Ethernet Subsystem IP核报下面严重警告,怎么办?
解决方法:点以太网IP核,选择Re-customise IP,然后重新生成bit文件,警告消失。
2025-04-24 16:00:56
247
原创 Vivado版本升级后AXI4-Stream Data FIFO端口变化
Vivado 2017.4版本中异步AXI4-Stream Data FIFO升级到Vivado 2018.3后,IP管脚会发生变化,2018.3版中没有m_axis_aresetn和axis_data_count。
2025-04-24 15:53:22
247
转载 xilinx_ug472_7Series_Clocking 阅读记录
打开Device视图,能看到类似下图的视图,其中,XMYN表征的是时钟区域,另外还能看到有几个地方貌似是黑色空白的地方(已用方框框出),这些地方其实不是空无一物,而是放置了。单就某个时钟区域具体而言,其图如下,图的中心处的一条横线就是HROW,在图中标出了A、B、C、D、E等区域,并MARK了一个区域,各个区域的含义如下,下图所示的是BUFG资源,它位于FPGA的中心位置,将其放大,可以观测到它的输入输出,还可以通过属性窗口观测到它的其他信息,在两个时钟区域的交界处,会有BUFH资源,如下图所示,
2025-04-24 15:22:38
79
原创 TXPOLARITY/RXPOLARITY设置
TXPOLARITY/RXPOLARITY:该端口用来反向输出数据的极性。TXP是正,TXN是负;TXP是负,TXN是正;
2025-04-24 15:01:26
154
原创 Vivado 2017.4 impl时,关于DDR dm信号属性设置报严重警告的问题
A板和B板的DDR管脚是不相同的,A板使用的是5片256M的DDR芯片,而B板使用的是4片256M的DDR芯片,在生成IP核的时候,除了更新DDR的UCF文件,还有一个重要信号就是DM信号。对于这样的错误,查找错误原因的主要点其实是显而易见的,两个工程的差别仅仅存在于DM信号,应该将跟DDR相关的所有信号进行查看,直至输入输出端口,而不是一直拘泥于mig核的生成,结果跑了一天半的工程仍然报此严重警告。使用与A板相同FPGA型号的B板进行调试,A板与B板大部分外设相同,区别可能是管脚约束不一样。
2025-03-21 17:29:40
374
转载 Vivado报错:[DRC REQP-1712] Input clock driver: Unsupported PLLE2_ADV connectivity.
二、报错原因。
2025-02-08 16:16:54
231
原创 高速口差分信号管脚约束
对于高速口Serdes差分信号,在做约束的时候,只需要约束P端口,N端口不需要约束,一般情况下高速口差分信号电压也不用约束。如果高速口管脚约束报错,应检查代码中高速口相关模块是否有错,不如IP核输入输出接的对不对等等。
2025-02-08 14:00:06
198
原创 FIFO自带计数axis_rd_data_count注意事项
使用fifo的时候,我们经常会用到fifo自带的axis_rd_data_count值,该计数值核读操作之间有2个时钟延迟,且该计数值表示的是读出来多少个[N-1:0]位宽的数据,[N-1:0]为读出数据位宽。
2025-01-23 09:58:47
322
原创 vivado下导出ILA数据
2、右击想要分析的信号,点击Export ILA Data,出现下框:Format选择CSV,再选择保存路径。数据进行分析,可将其得到的数据导出来。
2025-01-23 09:33:15
518
原创 Verilog仿真中,读txt文件和写txt文件的方法
MATLAB上生成的txt文件的格式为每行一个数据,与coe文件不同的是,数据之间没有逗号。在功能仿真阶段调试程序时,$display是很有用的一段程序,它和java,c语言中的打印语句使用方法是相似的,可以把变量和语句运行状况打在TCL log的窗口上,供调试者知晓代码运行情况。同时,需要注意的是,在换行中,需要采用’\r\n‘,不能仅仅使用’\r’。需要注意的是,txt文件的地址不能出错,另外,注意地址分隔符需要用’/‘,windos系统中的’\‘需要对应改过来才能使用。$display语句的使用。
2025-01-23 09:32:12
339
原创 PCIE模式配置
对于VU系列FPGA,当DMA/Bridge Subsystem for PCI Express IP配置为Bridge模式时,等同于K7系列中的AXI Memory Mapped To PCI Express IP。
2025-01-23 09:30:08
978
原创 AXI4-Stream Data FIFO tdata先于tready出现在数据总线上
AXI4-Stream Data FIFO 读数据时,m_axis_tdata先于m_axis_tready信号出现在数据总线上,如下图所示:
2025-01-23 09:26:49
225
原创 FPGA自分频产生的时钟如何使用?
对于频率比较小的时钟,使用clocking wizard IP往往不能产生,此时就需要我们使用代码进行自分频,自分频产生的时钟首先应该经过BUFG处理,然后还需要进行时钟约束,处理之后才能使用。
2025-01-22 11:09:05
461
原创 always块中赋初始值应用
为避免创建锁存器,必须在所有可能的情况下为所有输出分配一个值。仅仅具有默认情况是不够的。您必须在所有四种情况和默认情况下为所有四个输出分配一个值。这可能涉及许多不必要的输入。上面这个问题说的是在case之前给输出一些默认值,这其实也是我一直以来的做法,在Verilog高级数字系统设计技术与实例分析这本书中,大量的设计运用了这种风格的代码。这种代码风格可确保在所有可能的情况下为输出分配一个值(0),除非case语句覆盖该分配。这也意味着默认:case项变得不必要。
2024-05-11 17:38:46
649
转载 Verilog仿真中,读txt文件和写txt文件的方法
在功能仿真阶段调试程序时,$display是很有用的一段程序,它和java,c语言中的打印语句使用方法是相似的,可以把变量和语句运行状况打在TCL log的窗口上,供调试者知晓代码运行情况。同时,需要注意的是,在换行中,需要采用’\r\n‘,不能仅仅使用’\r’。需要注意的是,txt文件的地址不能出错,另外,注意地址分隔符需要用’/‘,windos系统中的’\‘需要对应改过来才能使用。MATLAB上生成的txt文件的格式为每行一个数据,与coe文件不同的是,数据之间没有逗号。
2024-05-11 09:53:45
1342
原创 全加器逻辑表达式
这些表达式描述了全加器的核心功能,即对两个二进制数Ai和Bi进行加法运算,并考虑来自低位Ci-1的进位,计算出本位的和Si以及向高位的进位Ci。全加器的逻辑表达式可以用以下公式表示:12。
2024-04-23 11:37:30
6835
转载 vivado 如何在程序启动的时候触发 ILA
下面讲解在vivado中怎么抓一个bit下进去后开始运行的初始事件,即startup trigger。操作起来比较复杂,一般情况下都是让要抓的事件延迟发生或者循环发生,方便调试。5.直接用Tcl命令生成bit文件,不能点击生成bit命令,这样工程会认为implement发生了改动而全部重新布线。4.运行下面的Tcl命令把触发设置加到当前内存里已经布线的implement设计上去。2.运行下面的Tcl命令把触发寄存器的值保存在tas文件中。1.先把有ILA核的bit文件下进去,设置触发好条件。
2024-04-11 14:49:48
244
原创 按位取反和逻辑取反
",用于得到一个逻辑的反命题,即真变成假,假变成真。例如,对于逻辑表达式(A && B) ,逻辑取反操作后得到逻辑表达式!(A && B),即当 A 和 B 中至少有一个为假时,!当 A 和 B 都为真时,!(A && B) 为假。逻辑取反通常用于逻辑运算中,如 if 语句中的条件判断等。按位取反即 "~",用于将一个二进制数的每个二进制位进行取反操作,即0变成1,1变成0。例如,对于二进制数1010,按位取反得到结果0101。按位取反和逻辑取反都是运算符表示的操作,但是用法和效果是有区别的。
2024-04-10 14:39:47
1964
原创 按位运算和逻辑运算的区别
两个N bit向量的按位运算表示将两个变量的每一个bit位进行按位运算,最后得到一个Nbit的输出;逻辑运算将整个变量当作一个布尔值(true/false),得到一个一bit的输出。
2024-04-10 14:23:56
288
原创 数电中的各种门电路符号
它表示只有当输入的两个信号不同时才会产生输出。如果两个输入信号相同,则此门的输出信号为逻辑0。(1)非门(Inverter)(2)与门(AND gate)(3)或非门(Norgate)
2024-04-10 11:25:53
1746
原创 7 Serials FPGAs Transceivers Wizard(3.6) ip核的RXELECIDLE信号
可以使用该信号判断设备的上下电状态,正常工作时,该信号为低电平;断电时,该信号拉高。
2024-03-07 11:13:20
309
原创 软件下发指令,FPGA执行完成后,自动清零
此时需要单独使用always来完成此功能,当软件下发指令时,当S_tx_start变量拉高;当fifo读空shi,将S_tx_start变量拉低。
2024-03-07 11:08:55
412
原创 7 Serials FPGAs Transceivers Wizard(3.6) ip核的gt0_rxpd_in/gt0_txpd_in管脚是做什么用的?
2024-03-07 10:58:27
269
原创 SATA系列专题之六:浅析NCQ原生指令序列
所以,我们可以看到在上面的sata trace中,分16次发送Data FIS。所以,我们可以看到在上面的sata trace中,分4次发送Data FIS来实现32768 bytes数据的传输。如果硬盘同时间内完成多组命令,这些命令完成所引起的中断就可以聚集在一起,大幅减少中断的数目,这对于降低中断延迟有极大的贡献。在Device端,当Queued Commands(最多32)中的一个write或者read准备好传输数据时,通过发送。当Drive收到一个Command,是要将其重新排列?
2024-02-26 14:53:35
2052
Vivaod FFT IP核调试例子
2023-04-11
特权FPGA VIP视频图像开发套件例程详解2——DDR2控制器读写测试.pdf
2020-10-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人