自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(551)
  • 资源 (5)
  • 收藏
  • 关注

原创 Zynq和Microblaze的区别和优势

Zynq芯片包含了一颗双核ARM Cortex-A9处理器,这是一颗“硬”处理器---它是芯片上专用。MicroBlaze为“软”处理器,它是由可编程逻辑部分的单元组合而成的, 也就是说,一个。从另 一方面来说,硬处理器可以获得相对较高的性能,Zynq的ARM处理器正是如此。软处理器的实现和部署在FPGA的逻辑结构里的任何其他IP包是等价的。器的优势是处理器实例的数量和精确实现是灵活的。而且优化过的硅片原件。

2025-05-22 15:52:52 69

原创 使用xpm_cdc_array_single原语,该注意什么?

指的是源信号在当前.v中是reg型还是wire型;3、信号宽度至少为慢时钟的一半,否则无输出。

2025-04-24 16:04:16 361

原创 10G Ethernet Subsystem IP核报下面严重警告,怎么办?

解决方法:点以太网IP核,选择Re-customise IP,然后重新生成bit文件,警告消失。

2025-04-24 16:00:56 207

原创 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 188

转载 xilinx_ug472_7Series_Clocking 阅读记录

打开Device视图,能看到类似下图的视图,其中,XMYN表征的是时钟区域,另外还能看到有几个地方貌似是黑色空白的地方(已用方框框出),这些地方其实不是空无一物,而是放置了。单就某个时钟区域具体而言,其图如下,图的中心处的一条横线就是HROW,在图中标出了A、B、C、D、E等区域,并MARK了一个区域,各个区域的含义如下,下图所示的是BUFG资源,它位于FPGA的中心位置,将其放大,可以观测到它的输入输出,还可以通过属性窗口观测到它的其他信息,在两个时钟区域的交界处,会有BUFH资源,如下图所示,

2025-04-24 15:22:38 51

原创 TXPOLARITY/RXPOLARITY设置

TXPOLARITY/RXPOLARITY:该端口用来反向输出数据的极性。TXP是正,TXN是负;TXP是负,TXN是正;

2025-04-24 15:01:26 131

原创 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 337

转载 Vivado报错:[DRC REQP-1712] Input clock driver: Unsupported PLLE2_ADV connectivity.

二、报错原因。

2025-02-08 16:16:54 152

原创 高速口差分信号管脚约束

对于高速口Serdes差分信号,在做约束的时候,只需要约束P端口,N端口不需要约束,一般情况下高速口差分信号电压也不用约束。如果高速口管脚约束报错,应检查代码中高速口相关模块是否有错,不如IP核输入输出接的对不对等等。

2025-02-08 14:00:06 159

原创 真值表产生工具

Truth Table Generator - Create Logical Truth Tables Instantly

2025-01-24 11:36:09 145

原创 AXI BRAM Controller

AXI BRAM Controller读数据时,读使能、地址和数据有一个时钟延迟。

2025-01-23 10:14:28 113

原创 FIFO自带计数axis_rd_data_count注意事项

使用fifo的时候,我们经常会用到fifo自带的axis_rd_data_count值,该计数值核读操作之间有2个时钟延迟,且该计数值表示的是读出来多少个[N-1:0]位宽的数据,[N-1:0]为读出数据位宽。

2025-01-23 09:58:47 206

原创 vivado下导出ILA数据

2、右击想要分析的信号,点击Export ILA Data,出现下框:Format选择CSV,再选择保存路径。数据进行分析,可将其得到的数据导出来。

2025-01-23 09:33:15 358

原创 Verilog仿真中,读txt文件和写txt文件的方法

MATLAB上生成的txt文件的格式为每行一个数据,与coe文件不同的是,数据之间没有逗号。在功能仿真阶段调试程序时,$display是很有用的一段程序,它和java,c语言中的打印语句使用方法是相似的,可以把变量和语句运行状况打在TCL log的窗口上,供调试者知晓代码运行情况。同时,需要注意的是,在换行中,需要采用’\r\n‘,不能仅仅使用’\r’。需要注意的是,txt文件的地址不能出错,另外,注意地址分隔符需要用’/‘,windos系统中的’\‘需要对应改过来才能使用。$display语句的使用。

2025-01-23 09:32:12 204

原创 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 952

原创 AXI4-Stream Data FIFO tdata先于tready出现在数据总线上

AXI4-Stream Data FIFO 读数据时,m_axis_tdata先于m_axis_tready信号出现在数据总线上,如下图所示:

2025-01-23 09:26:49 211

原创 Notepad++如何跳到指定行?

Ctrl+G -> "Line" -> 输入所需跳转的行数,如下图所示:

2025-01-23 09:19:24 233

原创 FPGA自分频产生的时钟如何使用?

对于频率比较小的时钟,使用clocking wizard IP往往不能产生,此时就需要我们使用代码进行自分频,自分频产生的时钟首先应该经过BUFG处理,然后还需要进行时钟约束,处理之后才能使用。

2025-01-22 11:09:05 423

原创 Vivado报错,如何跳转到报错行?

这个问题主要是由于Vivado与Notepad++关联引起的,

2025-01-22 11:05:47 106

原创 always块中赋初始值应用

为避免创建锁存器,必须在所有可能的情况下为所有输出分配一个值。仅仅具有默认情况是不够的。您必须在所有四种情况和默认情况下为所有四个输出分配一个值。这可能涉及许多不必要的输入。上面这个问题说的是在case之前给输出一些默认值,这其实也是我一直以来的做法,在Verilog高级数字系统设计技术与实例分析这本书中,大量的设计运用了这种风格的代码。这种代码风格可确保在所有可能的情况下为输出分配一个值(0),除非case语句覆盖该分配。这也意味着默认:case项变得不必要。

2024-05-11 17:38:46 609

转载 Verilog仿真中,读txt文件和写txt文件的方法

在功能仿真阶段调试程序时,$display是很有用的一段程序,它和java,c语言中的打印语句使用方法是相似的,可以把变量和语句运行状况打在TCL log的窗口上,供调试者知晓代码运行情况。同时,需要注意的是,在换行中,需要采用’\r\n‘,不能仅仅使用’\r’。需要注意的是,txt文件的地址不能出错,另外,注意地址分隔符需要用’/‘,windos系统中的’\‘需要对应改过来才能使用。MATLAB上生成的txt文件的格式为每行一个数据,与coe文件不同的是,数据之间没有逗号。

2024-05-11 09:53:45 1283

原创 按位操作运算

Thereduction= 4'h0)

2024-05-07 10:45:34 189

原创 全加器逻辑表达式

这些表达式描述了全加器的核心功能,即对两个二进制数Ai和Bi进行加法运算,并考虑来自低位Ci-1的进位,计算出本位的和Si以及向高位的进位Ci。全加器的逻辑表达式可以用以下公式表示:12。

2024-04-23 11:37:30 6455

转载 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 216

原创 按位取反和逻辑取反

",用于得到一个逻辑的反命题,即真变成假,假变成真。例如,对于逻辑表达式(A && B) ,逻辑取反操作后得到逻辑表达式!(A && B),即当 A 和 B 中至少有一个为假时,!当 A 和 B 都为真时,!(A && B) 为假。逻辑取反通常用于逻辑运算中,如 if 语句中的条件判断等。按位取反即 "~",用于将一个二进制数的每个二进制位进行取反操作,即0变成1,1变成0。例如,对于二进制数1010,按位取反得到结果0101。按位取反和逻辑取反都是运算符表示的操作,但是用法和效果是有区别的。

2024-04-10 14:39:47 1893

原创 按位运算和逻辑运算的区别

两个N bit向量的按位运算表示将两个变量的每一个bit位进行按位运算,最后得到一个Nbit的输出;逻辑运算将整个变量当作一个布尔值(true/false),得到一个一bit的输出。

2024-04-10 14:23:56 277

原创 数电中的各种门电路符号

它表示只有当输入的两个信号不同时才会产生输出。如果两个输入信号相同,则此门的输出信号为逻辑0。(1)非门(Inverter)(2)与门(AND gate)(3)或非门(Norgate)

2024-04-10 11:25:53 1635

原创 7 Serials FPGAs Transceivers Wizard(3.6) ip核的RXELECIDLE信号

可以使用该信号判断设备的上下电状态,正常工作时,该信号为低电平;断电时,该信号拉高。

2024-03-07 11:13:20 292

原创 软件下发指令,FPGA执行完成后,自动清零

此时需要单独使用always来完成此功能,当软件下发指令时,当S_tx_start变量拉高;当fifo读空shi,将S_tx_start变量拉低。

2024-03-07 11:08:55 399

原创 7 Serials FPGAs Transceivers Wizard(3.6) ip核的gt0_rxpd_in/gt0_txpd_in管脚是做什么用的?

2024-03-07 10:58:27 261

原创 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 2001

原创 看门狗计时器

看门狗计时器看门狗(看门狗,又叫watchdogtimer,是一个定时器电路,一般有一个输入,叫喂狗(kickingthedogorservicethedog),一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给WDT清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT定时超过,就会给出一个复位信 号到MCU,使MCU复位.防止MCU死机.看门狗的作用就是防止程序发生死循环,或者说程序跑飞。

2024-01-16 16:39:00 1032

原创 一些高速接口重要缩写名词全称

DRP:dynamic reconfiguration port (动态重配置端口);PMA:physical medium attachment(物理媒介适配层)

2024-01-12 10:06:08 593

原创 7 Series FPGAs Transceivers Wizard(3.6) ip核接收数据正确性判断

对于GTX/GTH Transceivers IP核接收端数据准确性可以通过rxstatus的状态来确定,当rxstatus的小于4时,rxdata数据为正确值,大于4时,rxdata往往是有错。详见7 Series FPGAs Transceivers Wizard(3.6) datasheet P321.

2024-01-11 14:49:55 1061

转载 基于FPGA的FFT算法实现

创作不易,认为文章有帮助的同学们可以。为行业贡献及其微小的一部分。

2023-11-07 16:30:06 2229

转载 VIVADO中的IP核在MATLAB中仿真

创作不易,认为文章有帮助的同学们可以。为行业贡献及其微小的一部分。

2023-11-07 16:17:32 988

转载 Verilog语言中如何将memory型变量转换为普通变量

/ 仅在Verilog2005标准中支持input,output 为memory型数据。generate //而这仅是在Verilog2001标准中能够实现的,Verilog95无法完成。总结:写法花哨,synplify pro 、quartus可以综合,但ISE中不支持,具体原因可能是ISE不支持Verilog2005标准吧。

2023-10-16 17:47:26 956

转载 Notepad++编写的Verilog文件导入Vivado,中文注释乱码问题

关于Notepad++编写的文件导入Vivado,中文注释乱码问题的解决方法在使用Notepad++新建Verilog文件,编写程序并加入中文注释,在工程下添加该文件,内置Editor显示的中文注释通常为乱码。而且修改保存后,在Notepad++显示的中文注释同样显示乱码。主要是由于Notepad++默认编码模式和Vivado编码格式不同。有两种解决办法。1.在Vivado工程新建.V文件,再使用Notepad++编写。

2023-10-16 17:40:15 1538

转载 Notepad++编写的Verilog文件导入Vivado,中文注释乱码问题

关于Notepad++编写的文件导入Vivado,中文注释乱码问题的解决方法在使用Notepad++新建Verilog文件,编写程序并加入中文注释,在工程下添加该文件,内置Editor显示的中文注释通常为乱码。而且修改保存后,在Notepad++显示的中文注释同样显示乱码。主要是由于Notepad++默认编码模式和Vivado编码格式不同。有两种解决办法。1.在Vivado工程新建.V文件,再使用Notepad++编写。

2023-05-31 14:15:35 1589

转载 Verilog 中signed和$signed()的用法

1、在中有时会用signed修饰符来修饰定义的数据,运算的时候也会用$signed()任务来强制转换数据,那么signed的修饰是为什么呢,是为了区分有符号数和无符号数的加法和乘法吗?其实不是的,因为有符号数和无符号数据的加法强结果和乘法器结构是一样的,signed的真正作用是决定如何对操作数扩位的问题。2、verilog中的加法和乘法操作前,会先对操作数据扩位成结果相同的位宽,然后进行加法或者乘法处理。

2023-05-31 14:11:01 1318

Vivaod FFT IP核调试例子

Vivaod FFT IP核调试例子,对8点[0 1 2 3 4 5 6 7]进行FFT 变换,Vivado仿真结果和matlab仿真结果一致。

2023-04-11

SI5341.pdf

LOW-JITTER, 10-OUTPUT, ANY-FREQUENCY, ANY-OUTPUT CLOCK GENERATOR

2020-10-14

特权FPGA VIP视频图像开发套件例程详解2——DDR2控制器读写测试.pdf

本实例对 Altera 提供的 DDR2 控制器 IP 核模块进行操作,每 1.78 秒执 行一次 DDR2 的写入和读出操作。先是从 0 地址开始遍历写 256*64bits 数 据到 DDR2 的地址 0-1023 中;在执行完写入后,执行一次相同地址的读操 作,将读出的 256*64bits 数据写入到片内 RAM 中。

2020-10-14

top_rs.zip

本工程实现了RS(255,223)的编码功能,并对两组数进行了RS编码的仿真验证,最终经matlab仿真验证,结果一致。

2020-06-23

DDR3读写时序分析

对DDR3的User Interface的Command时序以及读写时序进行了详细分析

2018-10-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除