自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 always块中赋初始值应用

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

2024-05-11 17:38:46 342

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

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

2024-05-11 09:53:45 834

原创 按位操作运算

Thereduction= 4'h0)

2024-05-07 10:45:34 155

原创 全加器逻辑表达式

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

2024-04-23 11:37:30 3694

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

原创 按位取反和逻辑取反

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

2024-04-10 14:39:47 1513

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

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

2024-04-10 14:23:56 241

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

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

2024-04-10 11:25:53 1008

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

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

2024-03-07 11:13:20 216

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

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

2024-03-07 11:08:55 349

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

2024-03-07 10:58:27 207

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

原创 看门狗计时器

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

2024-01-16 16:39:00 962

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

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

2024-01-12 10:06:08 541

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

转载 基于FPGA的FFT算法实现

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

2023-11-07 16:30:06 1606

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

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

2023-11-07 16:17:32 796

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

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

2023-10-16 17:47:26 913

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

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

2023-10-16 17:40:15 1400

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

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

2023-05-31 14:15:35 1455

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

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

2023-05-31 14:11:01 1214

转载 Xilinx FPGA中HP HR HD bank分别是什么用途

首先我们要明确一点,这几个概念都是在7系列之后才有的,其中7系列的FPGA中有HP Bank和HR Bank,UltraScale FPGA有HP Bank、HR Bank和HD Bank,但并不是一个FPGA中会同时包含HP/HR/HD Bank。绑定管脚时,经常会看到HP Bank、HR Bank和HD Bank,它们分别是什么意思?分别可以适用于哪些应用个?HD Bank应用于低速I/O的场景,最高速率限制在250M以内,最高电压也是支持到3.3V。

2023-05-06 11:22:52 2312 1

转载 卧槽,这才是最强Verilog刷题网站!

大家好,最近经常有粉丝问零基础/基础薄弱,要怎么开始学习,今天来给大家分享一些Verilog的学习方法,先给大家推荐一个粉丝反馈用起来不错的免费Verilog学习&练习网站:?一个不会用Verilog的程序员甚至一个不会任何硬件语言的人,到底应该怎么学习Verilog呢?怎样才能实现Verilog的,还得是学习语法和编程练习,二者缺一不可。语法的学习可以帮助我们了解怎么使用这个语言,练习则可以帮助我们快速掌握这门语言,二者是相辅相成的,后面使用多了,自然而然就成为了大佬了。

2023-05-06 11:15:09 1036

转载 FPGA有哪些优质的带源码的IP开源网站?

HDL在这方面开源的并不多,但是我个人认为fpga4fun和opencores在这些里面就属于前二,完善的社区及完整的HDL代码是主要原因。其他的也是很完美的平台,大家斟酌使用。最后还有一些比较单一的网站,有兴趣可以看看国外VHDL& Verilog IP Resource 下载网站列表。

2023-05-06 10:59:18 1811

原创 Vivdao FFT IP核调试记录

但是我真的很想知道为什么,在求知欲的催促下最后还舔着脸皮问了几个朋友,有的现在不做算法了所以没有时间和精力专门帮我看问题,有的没有做过FFT,有的做过了给我讲了一下,也许问题太简单了,他们说的太过于精简,我也听得马马虎虎,最后还是不知道原因。一开始怀疑config接口配置完成后,会不会有个生效时间,所以还特意在代码里做了处理,后来证实根本没有影响,这个问题也在pg109的pg58页找到了答案,只要给好s_axis_data_tlast 信号就OK。仿真结果如下所示,和matlab结果一致。

2023-04-11 16:42:25 1614 3

转载 SATA 学习笔记2 - Shadow Register和FIS的传输

sata

2022-08-23 14:15:26 1207 1

转载 SATA是什么?

sata

2022-08-19 17:48:19 5419

转载 Vivado时序约束中Tcl命令的对象及属性

Tcl命令

2022-08-02 10:03:00 2270

转载 FPGA的虚拟时钟如何使用?

虚拟时钟

2022-08-02 09:41:02 359

转载 FPGA中BEL Site Tile FSR SLR分别指什么?

FPGA中BEL Site Tile FSR SLR分别指什么?

2022-08-01 18:01:47 839

转载 FPGA时钟篇(三) MRCC和SRCC的区别

MRCC和SRCC的区别

2022-08-01 16:52:15 6466

转载 FPGA时钟篇(二) 7系列clock region详解

7系列clock region详解

2022-08-01 16:50:08 1526

转载 FPGA时钟篇(一) 7系列的时钟结构

7系列的时钟结构

2022-08-01 16:36:58 1460

转载 基于Riffa框架开发PCIe

PCIE

2022-06-09 11:25:02 1465

原创 通用输入/输出

通用输入/输出

2022-06-01 11:18:00 234

原创 特殊资源:DSP48E1和块RAM

DSP48E1和块RAM

2022-06-01 10:37:30 493

原创 ZYNQ处理器系统外部接口

Zynq PS实现了众多接口,既有PS和PL之间的,也有PS和外部部件之间的。PS和外部接口之间的通信主要是通过复用的输入/输出(Multiplexed Input/Output,MIO)实现的,它提供了可以做灵活配置的54个引脚,这表明外部设备和引脚之间的映射是可以按需定义的。这样的连续也可以通过扩展MIO(Extended MIO,EMIO)来实现,EMIO并不是PS和外部连接之间的直接通路,而是通过共用了PL的I/O资源来实现的。当需要扩展超过54个引脚的时候可以用EMIO,而当PL中实现了一个I

2022-05-31 15:18:26 413

转载 ZYNQ从放弃到入门(四)- 中断(二)

这篇博文重点介绍了使用共享外设中断 GPIO 中断。为了正确实现这个中断结构,我们需要编写两个函数:中断服务程序(ISR-Interrupt service routine)——定义了中断发生时发生的动作。中断设置——配置中断。该例程设置并启用 GPIO 中断。它对系统内的所有中断都是通用的,以帮助代码重用。虽然,中断很复杂,但是,值得庆幸的是,独立板支持包 (BSP) 包含许多功能,可以大大简化这项任务。将在以下头文件中找到这些函数:Xparameters.h – 定义处理器设备 ID

2022-05-31 10:56:00 1018

转载 ZYNQ从放弃到入门(三)- 中断(一)

在检查PS端IO口状态时,常用的就是轮询,但是实际工程中很少用这种方式,主要是运行复杂逻辑时,轮询方式效率太低,CPU需要等待IO口状态变化,这种肯定不符合大多数应用,所以多数情况下都是使用中断方式进行驱动的。在许多具有许多输入的系统中,键盘、鼠标、按钮、传感器等。来自这些设备的输入通常与当前执行的进程或任务异步,并且轮询 I/O 方法对于具有许多输入的系统通常效率太低。因为无法始终预测事件何时发生,因此必须经常使用轮询 I/O 方法检查 I/O 状态。轮询例程通常会获得空结果,这是低效的。使用中断可以

2022-05-31 10:51:05 441

转载 ZYNQ从放弃到入门(二)-PS端 GPIO

本博客着眼于驱动 GPIO 连接的 LED(PS 端)。虽然使 LED 闪烁是一项非常简单的任务,但通过驱动使 LED 闪烁所需的步骤,我们可以进一步探索 Zynq SoC 的其他方面,例如其定时器和中断。我将在以后的博客中讨论这些主题。Zynq SoC 具有多个通用 I/O 引脚,它们组合起来创建一个 10 位宽的通用 I/O 端口,如下所示。此 GPIO 组以混合电压分布在两个 MIO 组中。在本例中,我们的 LED 将连接到 MIO 47。Xilinx 提供了许多驱动程序来简化 Zynq So

2022-05-31 10:32:10 617

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关注的人

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