- 博客(55)
- 资源 (12)
- 收藏
- 关注
原创 FPGA verilog代码:原码除法器设计
该除法器模块是一个实用的FPGA设计组件,它接收两个8位的输入x和y,以及一个启动信号start。当启动信号被激活时,模块开始执行除法操作,并将结果输出到z。模块还包含一个busy信号,表示模块是否正在忙碌处理除法操作。
2024-08-17 14:07:37
527
原创 关于FPGA对 DDR4 (MT40A256M16)的读写控制 4
博主将会写一个系列的文章 关于FPGA对DDR4(MT40A256M16)的有效读写控制,最大化FPGA对DDR4的读写控制。首先将对DDR4的技术文档进行研读,注重DDR4的读写操作、刷新时间等。
2024-06-25 10:59:08
1568
原创 几个常见的FPGA问题之序列发生器、编码器、D触发器
FPGA(现场可编程门阵列)是一种灵活的硬件平台,它允许设计者根据需要实现数字逻辑电路。**本文讲述几个FPGA常见的问题——序列发生器、编码器、D触发器,以及将对应的FPGA工程附在最后**。在FPGA设计中,序列发生器、编码器和D触发器是三种常见的基本构件,它们各自有不同的用途和可能遇到的问题。
2024-06-25 09:54:40
1668
原创 军用FPGA软件 Verilog语言的编码准测之三态缓冲器和运算符
文章详细介绍了军用FPGA软件编程中使用Verilog语言时应遵守的一系列编码规范,特别是针对三态缓冲器和运算符的设计准则。文章中提出的强制准则包括:基本编程规范之三态缓冲器强制准则1—禁止组合逻辑电路的输出作为三态缓冲器的使能端强制准则2—禁止使用内部三态强制准则3—避免将双向端口直接连接输入端口或输出端口基本编程规范之运算符强制准则1----关系操作符左边与右边的数据位宽必须一致强制准则2----位操作符左边与右边的数据位宽必须一致。
2024-06-24 10:20:14
1499
原创 关于FPGA的浮点数处理 III
两段verilog代码分别实现了浮点数的加法和乘法操作 。浮点加法模块FpAdd通过提取输入浮点数的符号位、指数和尾数,对齐尾数,计算和或差,并考虑了下溢情况来生成结果。浮点乘法模块FpMul则通过提取输入浮点数的相应字段,计算尾数的乘积和指数的和,处理可能的下溢,并根据结果的规范化要求调整指数和尾数。两个模块都考虑了符号位的处理,确保了结果的符号正确,并在输出时组合了符号位、指数和尾数来形成最终的浮点数结果。
2024-06-23 11:48:38
2414
原创 关于FPGA的浮点数处理 II
在FPGA中实现浮点运算是一个复杂但有用的过程,因为浮点运算在许多应用中都是必需的,如数字信号处理、图像处理和科学计算等,上篇博客中介绍了在FPGA中使用浮点数运算的背景以及实现方式,本篇博客注重描述浮点数在FPGA中如何将有符号整数与单精度浮点数进行转换。
2024-06-21 14:11:12
1383
原创 FPGA verilog代码:按键消抖模块代码
该除法器模块是一个实用的FPGA设计组件,它接收两个8位的输入x和y,以及一个启动信号start。当启动信号被激活时,模块开始执行除法操作,并将结果输出到z。模块还包含一个busy信号,表示模块是否正在忙碌处理除法操作。
2024-06-19 13:47:56
1607
原创 军用FPGA软件 Verilog语言的编码准测之触发器、锁存器
标准准则分为强制准则和建议准则,强制准则在Verilog编程中应该遵循,建议准则在Verilog编程中可参考执行。本次分享 触发器、锁存器 的国军标verilog语言标准准则。EDA工具:ISE、Vivado、Quartus II。语言 :Verilg HDL。注:如不能连接到数据端口或者复位端口等。注:基本逻辑门包括与门、非门和或门等。
2024-06-18 17:25:14
1121
原创 关于FPGA对 DDR4 (MT40A256M16)的读写控制 3
博主将会写一个系列的文章 关于FPGA对DDR4(MT40A256M16)的有效读写控制,最大化FPGA对DDR4的读写控制。首先将对DDR4的技术文档进行研读,注重DDR4的读写操作、刷新时间等。
2024-06-18 16:10:29
1955
原创 关于FPGA对 DDR4 (MT40A256M16)的读写控制 2
DDR4 SDRAM 是一种高速的、基于 CMOS 技术的动态随机存取存储器(DRAM)。它内部配置为具有 16 个存储体的 DRAM,这些存储体被组织成 4 个存储体组,每个组包含 4 个存储体。这种设计允许 DDR4 SDRAM 实现高速操作,因为它采用了 8n-预取架构,结合了接口设计,能够在每个时钟周期的 I/O 引脚处传输两个数据字。512M×8的DDR4,功能框图如下所示(源文档图片就缺失了一块)256Mx16的DDR4,功能框图如下所示。
2024-06-14 22:30:18
1452
原创 军用FPGA软件 Verilog语言的编码准测之复位
本文学习军用可编程逻辑器件软件 Verilog 语言编程安全子集,标准准则分为强制准则和建议准则,强制准则在Verilog编程中应该遵循,建议准则在Verilog编程中可参考执行。违背示例:遵循示例:强制准则3----禁止使用有竞争冒险情况的组合逻辑输出作为复位信号违背示例:强制准则4----在资源未受限制时,必须使用专用时钟单元驱动内部产生时钟、高扇出控制信号或内部产生复位信号强制准则5----非SRAM 型 FPGA, 必须对寄存器进行上电初始化,赋固定值
2024-06-14 17:48:35
499
原创 军用FPGA软件 Verilog语言的编码准测之时钟
标准准则分为强制准则和建议准则,强制准则在Verilog编程中应该遵循,建议准则在Verilog编程中可参考执行。禁止将寄存器的输出直接连接到其他寄存器的时钟管脚。注:如有此类情况,可采用时钟网络驱动等措施。注:如果需要使用门控时钟,可采用在顶层创建独立的门控时钟生成电路等措施。EDA工具:ISE、Vivado、Quartus II。语言 :Verilg HDL。注:如不能连接到数据端口或者复位端口等。
2024-06-13 23:18:55
772
原创 关于FPGA对 DDR4 (MT40A256M16)的读写控制 I
博主将会写一个系列的文章 关于FPGA对DDR4(MT40A256M16)的有效读写控制,**最大化FPGA对DDR4的读写控制**。首先将对DDR4的技术文档进行研读,注重DDR4的读写操作、刷新时间等。
2024-06-13 22:31:45
2266
原创 关于xilinx srio ip复位问题
在FPGA开发中, 在SRIO IP核使用时候,需要在必要时候对srio复位以确保两边设备可以正常的通信,博主总结了在实际应用中srio的处理方式。
2024-06-08 23:35:39
1566
1
原创 关于AD9777芯片的说明以及FPGA控制实现 I
最近,使用到了DAC芯片AD9777芯片,在此对AD9777芯片手册进行研读,AD9777是Analog Devices公司推出的一款高性能、可编程的16位分辨率、160 MSPS(百万样本每秒)输入/输出数据率的双通道TxDAC+ D/A转换器。该芯片具有多种特色和优势,适用于广泛的通信和仪器应用。。
2024-06-08 23:21:23
1168
原创 关于AD9781芯片的说明以及FPGA控制实现 I
本文对芯片AD9781芯片进行说明,并完成AD9781的FPGA驱动实现。AD9781是一款高性能数字模拟转换器(DAC),由Analog Devices公司生产,具备12/14/16位分辨率和高达500 MSPS的采样率,适用于无线基础设施、宽带通信、射频信号发生器和任意波形发生器等多种应用。
2024-06-07 23:17:16
1125
原创 基于FPGA的AD5753(DAC数模转换器)的控制 II(SPI驱动)
本文主要描述如何使用FPGA驱动DAC芯片AD5753,已经在开发板上验证成功。使得配置完成之后,可以正常的控制dac的输出。
2024-06-07 22:50:49
1424
1
原创 关于信号翻转模块(sig_flag_mod)的实现
本文使用FPGA实现环形振荡器,达成信号翻转的作用。环形振荡器,是由奇数个非门输出端和输入端首尾相接,构成环状的电路。在环形振荡器原理图中,假设第一级反相器的输入端为低电平,经过5级反相之后,第5级反相器输出端必为高电平。在t=0时刻,此时电源(VDD)通过第5级反相器输出端对第1级反相器的输入电容充电,第一级反相器经过一级平均延迟时间Tdelay1之后,其输出状态发生转换。经过(Tdelay1+ Tdelay2+ Tdelay3+ Tdelay4+ Tdelay5)之后,第5级反相器输出端由高电平转换为低
2024-06-05 23:01:09
988
原创 关于焊点检测(SJ-BIST)模块实现
上图所示的循环用来写一系列可转换的1和0,一个1和0通过一个端口,然后穿过另一个I/O 端口。否则,读入一个逻辑 0表示一个焊接点在这个点受到了伤害,以致一个足够严重和持续时间足够长的高阻失效已经发生,并已经导致了写操作的失败。如果读入的是一个逻辑 1,用来写逻辑 1的相应的I/ 端口是无错的;复位这个端口的活动失效信号。然而,如果这个i/o端口已经处在一个激活的失效状态,不更新失效计数,把这个失效作为前一个失效的延续。a) 如果读入的不是逻辑 1,用来写逻辑 1的I/0 端口发生了一个高阻失效。
2024-06-05 22:53:57
638
原创 几个常见的FPGA问题之全加器
然后在vivado中选择 add source,增加主工程full_adder_8.v文件,并编写代码,调用full_adder IP实现8位全加器功能,最后在vivado中选择 add source 中增加 tb文件,仿真测试8位全加器功能是否正常。在这个代码中,我们定义了一个新的模块full_adder_8,它接受两个8位宽的输入 a 和 b ,以及一个单比特的进位输入 cin。adder 是生成的块名, i 是循环变量,用于索引当前的全加器实例。请根据真值表,通过卡诺图化简得到全加器的逻辑表达式;
2024-06-03 23:30:09
663
原创 解决VIvado编程中遇到的bug 5
此系列博客专门发表 博主在开发过程中遇到的各种bug,以及bug的思路分析以及解决方法,帮助诸君在开发过程中遇到类似的问题能迅速找到解决思路和方法。
2024-06-02 10:00:00
2500
原创 解决VIvado编程中遇到的bug 4
此系列博客专门发表 博主在开发过程中遇到的各种bug,以及bug的思路分析以及解决方法,帮助诸君在开发过程中遇到类似的问题能迅速找到解决思路和方法。
2024-06-02 09:30:00
2866
原创 Vivado 比特流编译时间获取以及FPGA电压温度获取(实用)
在FPGA开发中,经常需要对整个系统进行健康信息监控以及版本信息管脚,这时,需要知道FPGA 当前程序的编译时间以及FPGA实时的温度电压信息,本文对这两个部分进行总结说明,方便诸君不时之需,直接调用便可,不需要多在这上面耗费时间和精力。本文总结了Vivado 比特流编译时间获取以及FPGA电压温度获取的方法,以及获取后将数据进行解析的公式,以上内容都是实际工程中验证过的,可放心使用,如有问题可私信博主,知无不言。只需要把DATA中对应的位数取出来,即可解析出当前bit的编译时间年月日时分秒。
2024-06-01 18:00:00
2495
原创 关于FPGA 使用SPI FLASH固化时如何配置固化参数
本文总结 在使用SPI FLASH固化FPGA时,如何设置vivado生成固化参数的bit,从而可以顺利的把bit生成mcs固化文件,希望能对各位实操应用中有所帮助。
2024-06-01 12:00:00
2489
原创 解决VIvado编程中遇到的bug 2
此系列博客专门发表 博主在开发过程中遇到的各种bug,以及bug的思路分析以及解决方法,帮助诸君在开发过程中遇到类似的问题能迅速找到解决思路和方法。
2024-05-31 16:55:21
1804
原创 解决VIvado编程中遇到的bug 3
此系列博客专门发表 博主在开发过程中遇到的各种bug,以及bug的思路分析以及解决方法,帮助诸君在开发过程中遇到类似的问题能迅速找到解决思路和方法。
2024-05-31 16:54:40
1555
原创 Verilog中 generate语句的用法
本文详细阐述了Verilog中generate语句的应用,它是一种用于创建可配置和可扩展硬件设计的强大工具。generate语句允许开发者根据参数或条件重复或条件性地生成代码块,从而减少代码的冗余,提高代码的复用性。
2024-05-30 15:49:43
1790
原创 Verilog HDL中如何控制模块的调用与否
本文主要介绍了在Verilog HDL编程中,如何根据不同情况控制模块是否被调用的方法。1、注释,通过在代码中使用注释符号//或/* */来临时禁用模块;2、条件编译指令,使用ifdef和endif预处理指令来根据是否定义了特定的宏来决定是否编译某段代码。3、generate语句,利用generate和endgenerate关键字,根据参数或条件来生成代码块
2024-05-30 14:58:17
1407
原创 关于FPGA如何快速生成模块的例化模板(实用)
vivado的例化模板在生成IP中自动生成,如下,在工程source中找到所要例化的IP,红色框中的.veo文件中即是该IP的verilog 例化模板,而红色框上面的.vho文件中即是该IP的vhdl例化模板。此时,如果子模块的输入输出接口比较多的时候,手动去巧例化的模板就是一件非常枯燥乏味浪费时间的事情,本文,在结合平时做项目中的经验,对快速生成模块的例化模板作了一个总结,望能对各位实操应用中有所帮助。a) 选择如下第一个红框中的+,选择自己设计模块的路径,然后再选择ok,即可将模块添加到当前的工程中。
2023-03-31 22:29:51
8038
8
原创 关于FPGA远程更新bpi flash中multiboot的实现
如上点击当前的fpga芯片,可以找到boot status 寄存器,当寄存器中的 BIT0_0_BACK为0 时候,表示这时候跑的是multiboot image的程序,如果BIT0_0_BACK为1 时候,表示这时候跑的是golden image的程序。,常用于远程加载场景中,当远程加载失败时,flash会启动应急预案,将另一块地址的备用程序拿来作为加载FPGA的程序,防止由远程固化失败导致的FPGA启动不了的情况。,且这里的0x0800000地址,因为这里使用的是bpi x16的数据模块,因此。
2023-03-30 22:22:06
4340
11
原创 AES算法中S盒的FPGA实现 II
在 AES算法中S盒的FPGA实现 I 中简介了S盒的解释和具体的内容, 本篇博客, 主要讲解如何在FPGA中实现S盒。2.2 双端口RAM的调用2.4 S盒实现工程的说明主模块(test_s_box)分为两部分,一部分调用双端口RAM ip核,例化了32个位宽4bit,深度16的双端口RAM,用于存储32 个 S-Box 的总空间为 256 字节(=8×256bit)的数据。RAM的读地址为ADDR0-ADDR31,主模块中通过数据选择器实现了读地址的逻辑以及实现了输出信号Sbox_4_Dout和
2023-03-26 15:26:12
841
1
原创 AES算法中S盒的FPGA实现
在密码学中,S盒(Substitution-box)是对称密钥算法 ,执行置换计算的基本结构。S盒用在分组密码算法中,是唯一的非线性结构,其S盒的指标的好坏直接决定了密码算法的好坏。
2023-03-26 15:02:43
2163
原创 SM3哈希算法的FPGA实现 II
如上方框中代表的是 数据的输入 以及最后SM3哈希算法的输出。上篇博客写了SM3哈希算法的解释和具体算法的实现步骤,这节博客来具体说怎么使用FPGA实现SM3哈希算法。分为 :1.填充 2.迭代与压缩 3.计算拼凑值。语言 :verilog。EDA工具:quartus II。仿真工具: Modelsim。
2023-03-26 14:29:43
1449
10
原创 SM3哈希算法的FPGA实现 I
安全散列算法(英语:Secure Hash Algorithm,缩写为SHA)是一个密码散列函数家族,是FIPS所认证的安全散列算法。能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。SM3算法也是一种哈希算法,中国国家密码管理局在2010年发布,其名称是SM3密码杂凑算法。在商用密码体系中,SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等。
2023-03-26 14:10:07
1449
2
原创 Vivado如何对固化选项里没有的FLASH进行烧写?
在固化时,会遇到找不到flash器件的问题,这里稍微作个总结: (针对xinlinx的芯片)1,常见的厂家有 :镁光,issi, spanish 等,在vivado固化器件的选项里也只有这几家的。2,但是vivado还是支持另外一些厂家的flash芯片的,每个厂家都有固定的id,,比如今天遇到的winbond厂家,flash就是支持的。(补充:winbond 的只支持128M及128M以下的)
2023-03-13 16:46:00
7366
5
原创 基于FPGA的AD5753(DAC数模转换器)的控制 I(SPI驱动)
AD753 单通道、16位电流和电压输出DAC,提供动态功率控制和HART连接。
2023-03-08 00:00:32
2918
1
原创 基于FPGA的ADI7301art 温度传感器的控制 II(FPGA驱动代码)
基于FPGA的ADI7301art 温度传感器的控制 II引言通过FPGA 完成对ADI7301art芯片的控制,读取温度数据。2、FPGA
2023-02-24 16:51:26
1143
3
原创 Altera 的SOC器件之将自定义的IP挂在ARM硬核下(通过avalon总线),实现arm核与IP之间的通信
软件: Quartus II 17.0芯片: ALTERA Cyclone5 5CGXFC7C7F23C8语言:Verilog在文件中添加自己的ip (工程里所有的用到的.v文件,最后设置顶层,,,,后面还有仿真文件的添加这个没用过)点 Analyze Systhesis File 用来分析语法错误。在add interface里新增一个conduit,是自己ip另外输出的接口,,,复位信号也新增一个,,,剩下的是默认的avalon总线的内部线。
2023-02-23 18:53:41
864
原创 解决ISE 编程中遇到的bug I
时钟没有在mrcc和srcc这种专用时钟管脚上,而是普通的io口,,就需要选择为no buffer,并且在输入时钟上添加buff原语。: 这个问题是因为管脚在io口上定义了,但是没有到数据输出。把对应的数据给上值就行,哪怕是初值。重启软件,重新下载bit都没用。重新启动电脑后可以找到硬件了,问题得到解决。:将pll中时钟的来源做出改变,选择global buffer 错误就会消失。普通io口不能作为pll输入?可是MRCC的时钟也是专用时钟管脚。
2023-02-17 14:16:39
2566
原创 解决VIvado编程中遇到的bug I
*解决:**在去掉get_ports {led4_tri_io[0]} 中的 {} 后, bit就能顺利生成了。vivado中同时调用XADC核和DDR3核时,会报错 上述错误,这个问题很常见,reg变量被在不同的always模块同时赋值。:将DDR3核中xadc部分设置为disable。
2023-02-17 13:37:45
14483
1
FPGA乒乓球游戏机控制系统代码+仿真+上板视频
2024-08-18
FPGA+Verilog HDL+序列发生器、编码器、D触发器+仿真+代码+Vivado2018.03工程
2024-06-25
FPGA+Verilog HDL+1位带进位标志的全加器+8位全加器+仿真+Vivado2018.03工程
2024-06-14
DDR4 SDRAM MT40A1G MT40A512M8 MT40A256M16数据手册
2024-06-14
FPGA +ADT7301芯片 Verilog驱动+SPI 控制 + ADT7301art 温度传感器+测试激励tb文件
2024-06-03
7系列以上xlinx FPGA +xadc模块+获取FPGA的温度电压+使用源语 直接调用模块
2024-05-31
FPGA课程设计之定时器,已上板验证
2024-05-17
FPGA课程设计之计费器
2024-05-17
tcal6416芯片手册以及tcal6416芯片的fpga verilog驱动,已经过上板验证
2024-05-17
FPGA驱动-ADT7301驱动-Verilog代码-温度采集-源码仿真+数据文档
2023-02-25
网络监控 嵌入式系统程序+Linux;web服务器;CGI;AJAX、
2023-02-22
FPGA设计之 使用Mealy状态机 设计序列检测器“101001”
2023-02-16
FPGA设计之 使用Moore状态机 设计序列检测器“101001”
2023-02-16
室内环境数据远程采集系统设计 单片机;数据监测;设计 设计中采用了温湿度传感器和光强度传感器,通过蓝牙进行实时数据采集,保证系统
2023-02-09
DHT11温湿度传感器_数码管_报警_DE2_70源码已上板验证
2021-08-06
lms自适应滤波算法提取胎儿心电fpga实现
2018-12-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人