自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (1)
  • 收藏
  • 关注

原创 Vitis HLS 学习指南与实践教程

Vitis HLS 学习指南与实践教程摘要:本文系统介绍了AMD Vitis HLS工具及其应用。HLS技术将C/C++代码自动转换为硬件描述语言,显著提升FPGA开发效率(5-10倍)。文章对比了HLS与传统RTL设计的优势,包括抽象级别高、开发周期短、代码重用性强等特点。详细讲解了Vitis HLS工具链的核心功能,包括支持的C/C++特性(如任意精度数据类型)、开发流程(项目创建-代码编写-仿真-综合)以及关键优化技术(流水线、循环展开、数组分割等编译指示)。通过具体代码示例展示了HLS设计方法,为F

2025-10-23 22:20:16 978

原创 vivado综合报错,但没有明确报错信息

文章摘要:代码在组合逻辑中使用temp_reg进行自运算导致综合报错,原因是组合逻辑中自运算会产生自依赖问题。解决方案是通过引入临时变量作为中转,有效避免了组合逻辑中的自依赖报错问题。修改后代码进行赋值操作,综合时不再报错,功能验证正确。修改方案简单高效,仅需增加临时变量中转即可解决该问题。

2025-10-22 20:05:30 190

原创 xdma IP使用教程1-xdma ip核配置

fpga xdma IP核配置教程

2025-10-13 23:43:52 989

原创 vivado问题解决- ila抓波形时,抓取的数据变成了constant

ila抓波形时,抓取的数据变成了constant,我用ila抓取了1024位的数据data_out[1023:0],但显示的是ila/constant0_n。在messages中发现warning信息,信息提示要抓取的数据有多驱动行为,选择修改代码,解决多驱动问题后再抓取数据即可。

2025-09-23 14:48:31 182

原创 modelsim命令行基础教程

本文介绍了使用ModelSim进行Verilog仿真的基本命令流程。主要包括:1)创建工作目录和库(vlib work);2)编译Verilog文件(vlog);3)启动仿真(vsim)并设置参数;4)添加观测信号(add wave);5)运行仿真(run);6)查看波形窗口(view signals/wave)。文中详细说明了各命令参数的含义,如-novopt禁止优化、-c命令行模式等,并提供了完整的TCL仿真脚本示例。这些命令涵盖了从工程建立到波形查看的完整仿真流程,适合初学者快速掌握ModelSim的

2025-08-15 16:39:35 305

原创 基于XADC原语实现FPGA板卡测温

本文介绍了基于XADC原语实现FPGA板卡温度测量的方法。通过Verilog代码实现了温度监测模块,适用于7系列FPGA芯片。核心代码使用XADC IP核配置温度阈值参数,通过状态机控制数据读取过程,输出16位温度测量值MEASURED_TEMP。该方案可直接复用,支持外部时钟输入和复位控制,并提供转换结束标志信号EOC/EOS。代码中设置了温度上下限报警值,并提供了完整的XADC配置参数,便于开发者快速实现FPGA温度监测功能。

2025-08-04 15:49:57 412

原创 【7系列GTX收发器系列文章——一文带你读懂GT收发器(一)】

最近饱受GTX收发器的痛苦,调试一直有非常多的问题,找百度找网友找豆包找Deppseek找了个遍,效率实在太低。期间也是遇到了很多的困难难以解决,现在我回个头 反思了下自己,是不是自己太差劲,最后想想还是要给自己加油!所以,现在我准备沉下心来去阅读手册,开发手册应用手册。我遇到的问题别人肯定也遇到过,多去学习别人的思路和方法。针对我自己遇到的问题,我也希望给遇到相同的问题踩个坑,帮助他们去解决相关的问题,

2025-07-25 16:43:09 672

原创 vivado报错[Synth 8-3391] Unable to infer a block/distributed RAM for ‘buff‘ because the memory pattern

分析原因:下面是我的memory定义。报错原因是我的WRITE_LENGTH值太大。

2025-07-25 10:17:31 458

原创 Vivado报错信息[Place 30-574] Poor placement for routing between an IO pin and BUFG

摘要:使用Vivado时出现差分时钟输入报错,原因是将信号绑定在普通IO而非晶振上。解决方案有两种:1)将信号正确绑定到晶振;2)在xdc文件中添加set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets adc_dclk_p]命令,将报错转为警告以生成比特流。该问题可通过修改时钟路由约束解决,参考相关博客获取详细说明。

2025-07-23 19:48:01 346

原创 ADS8331手册驱动开发

值得注意的就几个引脚,CONVST,EOC,CS,RESET,SDI,SDO,SCLK。CONVST:转换开始标志EOC:状态输出,转换过程中EOC是一直为低的,这个引脚也可以编程为INT中断信号。如果编程为INT信号,在转换后引脚会拉低并在cs拉低后拉高CS:片选信号,低有效,没啥好说的RESET:ADC复位信号,高有效SDI:可以理解为SPI接口的MISOSDO:MOSI,SPI接口SCLK:SPI时钟。

2025-07-16 23:39:10 894

原创 GT IP核仿真测试

摘要 本文介绍了GT IP核的仿真测试与配置方法。作者分享了使用Xilinx 7系列FPGA中GTX IP核的实践经验,详细讲解了IP核的多页配置参数,包括线速率(3.125Gbps)、参考时钟(156.250MHz)、数据宽度(20bit)等关键设置。重点分析了官方例程的代码框架,指出核心模块gtwizard_exdes.v、gtwizard_0_support和帧生成/检测模块的作用。文章强调在仿真阶段需将EXAMPLE_SIM_GTRESET_SPEEDUP设为TRUE,并建议初学者先理解GT基本原理

2025-07-11 23:20:56 1145

原创 IPsec协议概述

IPv6 作为新一代的网络互联协议提供了标准的、健壮的以及包容广泛的机制,可以有效地保证数据在不安全的公共网络上进行安全传输,是建立一个可靠的、可管理的、安全的和高效的 IP 网络的长期解决方案,其先进性和灵活性得到越来越多的认可。用户到用户的协议之间的连接都是认证的、加密的,两个网关之间连接的认证和加密是可选的。两个网关之间的连接是认证的、加密的,但从用户到用户的网关之间的连接,服务器和服务器的网关之间的网际连接是未加密的,这是企业的小分支机构通过网络远程访问企业内部网络的 VPN 方式。

2025-06-28 19:57:01 1113

原创 HMAC算法

HMAC是一种基于哈希的消息认证码技术,用于验证消息完整性和身份认证。其核心原理是将密钥与消息通过哈希函数处理:首先对密钥进行预处理(补零或哈希),然后分别与ipad(0x36)和opad(0x5c)异或,再与消息拼接后哈希运算,最终结合两次哈希结果生成认证码。HMAC通过这种双重哈希机制增强了安全性,确保消息在传输中未被篡改且来源可信。

2025-06-21 22:20:43 386

原创 IDEA算法原理详细介绍

IDEA是一种分组加密算法,使用128位密钥和64位分组。其加密过程采用8轮迭代和输出变换,核心运算包括模2^16加法、模2^16+1乘法及异或操作。算法首先生成52个子密钥,每轮使用6个子密钥。解密过程与加密结构相同,仅需更换子密钥。IDEA设计便于软硬件实现,能有效实现数据扩散和扰乱。

2025-06-21 13:14:40 1102

原创 DES算法原理以及实现

DES是Data Encryption Standard的缩写,是美国国家标准局于1977年公布的由IBM公司研制的 Data Encryption Standard 的缩写,是美国国家标准局于 1977 年公布的由 IBM 公司及美国国家安全局,并被作为非机密门使用的数据加密标准。DES 成为标准以后,每五年进行一次再确认,通常在 12 月进行。1973 年 5 月,美国国家标准局(NBS)征求密码算法,用于在传输和存储期间保护数据。

2025-06-16 16:41:35 1187

原创 RC4算法原理

RC4是一种广泛使用的流密码算法,由Rivest于1987年开发。其原理基于密钥调度算法(KSA)和伪随机生成算法(PRGA)两个核心步骤。KSA通过可变长度密钥对256字节的内部状态数组进行初始化,PRGA则从该数组中选取字节生成密钥流。算法简单高效,曾应用于Windows、SSL等多种场景。文中通过n=3的简化示例,演示了从密钥初始化到密钥流生成的全过程,包括状态数组的置换和输出字节的计算。尽管RC4曾广泛使用,但现已发现安全漏洞,在重要场景中逐渐被更安全的算法替代。

2025-06-16 14:33:04 909

原创 SHA系列算法开篇-SHA3算法

SHA3是新一代安全散列算法标准,采用创新的"海绵结构"设计,包含吸收和挤压两个阶段。其核心为Keccak-f置换函数,通过24轮操作(θ、ρ、π、χ、ι)对1600位状态矩阵进行非线性变换。与SHA-2不同,SHA3采用独特的消息填充机制,确保任意长度输入都能适配算法运算。该算法由Keccak团队在NIST竞赛中胜出,2015年成为FIPS标准,提供了更高的安全性和灵活性,成为密码学领域的重要突破。

2025-06-15 19:49:31 1294

原创 Vivado综合输入输出IO接口优化问题

通过分析代码发现我使用function时将state_reg赋值给本身了,修改代码后正常。定义state_reg_r变量,将function后的值赋值给state_reg_r。在编译综合时,我的输入和输出都是128位的数据,但。重新编译综合后正常。

2025-06-13 10:41:59 320

原创 SSL/TLS通信

SSL/TLS是一种结合对称密码、公钥密码和数字签名等技术的安全通信协议,用于保护HTTP等网络通信的机密性、完整性和认证。它通过加密传输数据防止窃听(如信用卡号),使用消息认证码检测篡改,并通过数字证书验证服务器身份。SSL是早期版本,TLS是其后续改进标准,目前已发展至TLS 1.3。SSL/TLS不仅用于HTTPS网页,也可保护SMTP、POP3等协议。其工作原理分为记录协议(加密传输)和握手协议(算法协商和身份验证),通过预定义的密码套件确保兼容性。由于SSL 3.0存在漏洞(如POODLE攻击),

2025-06-13 00:15:06 647

原创 伪随机数发生器

以上我们介绍几种伪随机数发生器,但用于密码学中的随机数都是真随机数,而不是通过算法去生成的,这种生成的随机数很容易被反推以及破解。

2025-06-12 22:45:51 423

原创 SHA系列算法开篇-SHA2-512

本文详细解析了SHA2-512哈希算法的核心原理与实现步骤。SHA2-512作为安全关键领域广泛使用的密码学哈希函数,具有512位输出、1024位消息分块和80轮计算等特征。文章首先介绍了算法的初始化哈希值和轮常数,然后分步骤讲解了消息填充、分块处理、逻辑函数、密钥扩展等关键过程,重点剖析了80轮压缩函数的运算机制。通过伪代码展示了从消息预处理到最终哈希值生成的全流程,为理解SHA2-512的工作原理提供了清晰的技术路径。该算法通过复杂的位运算和迭代处理,确保输出具有抗碰撞性和不可逆性。

2025-06-11 23:58:22 907

原创 Diffi-Hellman交换

Diffie-Hellman密钥交换是1976年提出的一种安全协议,允许通信双方在不安全的信道上生成共享密钥。其核心步骤为:双方首先公开交换大质数P和生成元G;然后各自生成随机私密数A和B;通过计算并交换G^A mod P和G^B mod P;最终各自能独立计算出相同的共享密钥(G^(A×B) mod P)。该协议基于离散对数难题,被广泛用于密钥协商(如IPSec),即使交换过程被监听,攻击者也无法轻易推算出密钥。

2025-06-11 20:47:34 818

原创 SHA系列算法开篇-SHA2-256

作为现代密码学的基石之一,SHA-256保护着我们的数字世界。本文将深入探讨这一算法的内部工作原理,揭示它如何将任意长度的输入转换为固定长度的"数字指纹"。

2025-06-10 21:09:31 756

原创 RSS实现数字签名

本文演示了使用RSA算法进行数字签名的完整流程。首先利用私钥(D=29,N=323)对消息123生成签名157,然后通过公钥(E=5,N=323)验证签名还原出原始消息123。整个过程验证了签名的真实性,展示RSA签名具有防篡改特性。需要注意的是,实际应用中还应结合单向散列函数以提高安全性。

2025-06-10 20:39:53 347

原创 AES ECB模式的python实现

本文介绍了AES加密算法的Python实现,包含加密和解密的核心步骤。加密过程包括字节代换(通过S盒转换)、行移位、列混合和轮密钥加;解密则为对应的逆操作。文章提供了完整的S盒、逆S盒和轮常量定义,并实现了关键操作函数:sub_bytes/inv_sub_bytes进行字节代换、shift_rows/inv_shift_rows处理行移位、mix_columns完成列混合。代码采用4×4状态矩阵表示数据块,通过位运算实现有限域乘法运算。该实现完整展示了AES算法的核心流程,可作为学习密码学的参考示例。

2025-04-29 20:28:55 205

原创 分组密码工作模式

以上就是5中分组密码的模式。我们下篇见,ByeBye~

2025-03-29 16:46:00 304

原创 加密算法-AES

分组长度和密钥长度可以指定为位,192位和256位。一般128位密钥需要10轮加密。加密主要分为4个部分:字节代换、行位移、列混合、轮密钥加,最后一轮不执行列混合,第一轮前将明文和原始密钥进行一次XOR或者加密操作。下面是加密和解密过程。

2025-03-29 16:05:06 945

原创 加密算法-DES

DES是一种对称密码体制,加密和解密使用同一种密钥,密钥长度56位,DES是一种分组密码算法,分组长度为64位,明文和密文的长度相同。由四个部分组成:扩展置换(E盒)、密钥加非线性代换(S盒)、线性置换(P盒)。DES初始密钥长度为64位,但有效密钥长度为56位,在第8、16、24、40、48、56和64位是奇偶校验位。分别循环左移1位或2位,并作为下一轮输入,同时通过PC-2输入,置换产生48位输出,即子密钥。初始密钥通过置换PC-1得到56位密钥,将密钥分为2组28位密钥C。分为8个S盒,每组6位。

2025-03-29 15:29:51 863

原创 UVM入门与进阶

UVM入门与进阶(实验部分)phase机制config机制消息管理phase机制phase机制使得验证环境从组建、到连接、再到执行得以分阶段进行,按照层次结构和phase顺序严格执行,继而避免一些依赖关系,也使得UVM用户可以正确地将不同的代码放置到不同的phase块中。代码:package phase_order_pkg; import uvm_pkg::*; `include "uvm_macros.svh" class comp2 extends uvm_component

2021-03-26 16:45:33 665

pcie xdma新手入门教程

pcie xdma新手入门教程

2025-07-31

Verilog学习资料及课件

一份很好的verilog学习资料及课件,学习资料仅供参考学习,如有侵权,请私信我!

2025-06-16

开源CPU项目E906

开源项目E906,想学习CPU相关知识的可以研究下这个项目,很有深度。

2025-01-16

makefile文档教程-零基础学习makefile

makefile带来的好处就是——“自动化编译”,只需一个make命令,整个工程就是自动编译,极大提高软件开发效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数IDE都有这个命令。

2025-01-15

ug939-design-files.zip

提供了在Vivado设计中使用IP的多种方法

2021-04-15

空空如也

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

TA关注的人

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