
FPGA技巧
文章平均质量分 83
此专栏不会长篇大论,专职在FPGA开发时遇到的技巧,力求快准狠,不啰嗦,不废话,长期更新
吾引先森
专注FPGA领域的学习,生命不止,奋斗不息。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
关于 【vivado ila debug时 高级触发的使用】之 改变ILA采样频率
在工程中定义一个触发条件寄存器,在ILA高级设置中将此寄存器作为附加的触发条件,则可利用此触发条件实现对采样频率的分频,即如果该触发条件100个系统时钟拉高一次,则实现了采样频率的100分频, 再加上VIO的配合,则可以实现对ILA采样时钟的整数倍分频。这种方法一劳永逸,可随意切换ILA的采样频率,以达到想到的Debug结果,在工程调试中能起到事半功倍效果。调试过程中,对debug工具的熟悉会使得调试过程更有效率。如有错误和疑问的地方欢迎留言交流,共同进步。原创 2023-02-08 17:56:47 · 5695 阅读 · 0 评论 -
关于FPGA对 DDR4 (MT40A256M16)的读写控制 4
博主将会写一个系列的文章 关于FPGA对DDR4(MT40A256M16)的有效读写控制,最大化FPGA对DDR4的读写控制。首先将对DDR4的技术文档进行研读,注重DDR4的读写操作、刷新时间等。原创 2024-06-25 10:59:08 · 1713 阅读 · 0 评论 -
几个常见的FPGA问题之序列发生器、编码器、D触发器
FPGA(现场可编程门阵列)是一种灵活的硬件平台,它允许设计者根据需要实现数字逻辑电路。**本文讲述几个FPGA常见的问题——序列发生器、编码器、D触发器,以及将对应的FPGA工程附在最后**。在FPGA设计中,序列发生器、编码器和D触发器是三种常见的基本构件,它们各自有不同的用途和可能遇到的问题。原创 2024-06-25 09:54:40 · 1744 阅读 · 0 评论 -
军用FPGA软件 Verilog语言的编码准测之三态缓冲器和运算符
文章详细介绍了军用FPGA软件编程中使用Verilog语言时应遵守的一系列编码规范,特别是针对三态缓冲器和运算符的设计准则。文章中提出的强制准则包括:基本编程规范之三态缓冲器强制准则1—禁止组合逻辑电路的输出作为三态缓冲器的使能端强制准则2—禁止使用内部三态强制准则3—避免将双向端口直接连接输入端口或输出端口基本编程规范之运算符强制准则1----关系操作符左边与右边的数据位宽必须一致强制准则2----位操作符左边与右边的数据位宽必须一致。原创 2024-06-24 10:20:14 · 1704 阅读 · 0 评论 -
关于FPGA的浮点数处理 III
两段verilog代码分别实现了浮点数的加法和乘法操作 。浮点加法模块FpAdd通过提取输入浮点数的符号位、指数和尾数,对齐尾数,计算和或差,并考虑了下溢情况来生成结果。浮点乘法模块FpMul则通过提取输入浮点数的相应字段,计算尾数的乘积和指数的和,处理可能的下溢,并根据结果的规范化要求调整指数和尾数。两个模块都考虑了符号位的处理,确保了结果的符号正确,并在输出时组合了符号位、指数和尾数来形成最终的浮点数结果。原创 2024-06-23 11:48:38 · 2752 阅读 · 0 评论 -
军用FPGA软件 Verilog语言的编码准测之触发器、锁存器
标准准则分为强制准则和建议准则,强制准则在Verilog编程中应该遵循,建议准则在Verilog编程中可参考执行。本次分享 触发器、锁存器 的国军标verilog语言标准准则。EDA工具:ISE、Vivado、Quartus II。语言 :Verilg HDL。注:如不能连接到数据端口或者复位端口等。注:基本逻辑门包括与门、非门和或门等。原创 2024-06-18 17:25:14 · 1213 阅读 · 0 评论 -
关于xilinx srio ip复位问题
在FPGA开发中, 在SRIO IP核使用时候,需要在必要时候对srio复位以确保两边设备可以正常的通信,博主总结了在实际应用中srio的处理方式。原创 2024-06-08 23:35:39 · 1784 阅读 · 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 · 1063 阅读 · 0 评论 -
关于焊点检测(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 · 713 阅读 · 0 评论 -
关于FPGA 使用SPI FLASH固化时如何配置固化参数
本文总结 在使用SPI FLASH固化FPGA时,如何设置vivado生成固化参数的bit,从而可以顺利的把bit生成mcs固化文件,希望能对各位实操应用中有所帮助。原创 2024-06-01 12:00:00 · 3064 阅读 · 0 评论 -
Vivado 比特流编译时间获取以及FPGA电压温度获取(实用)
在FPGA开发中,经常需要对整个系统进行健康信息监控以及版本信息管脚,这时,需要知道FPGA 当前程序的编译时间以及FPGA实时的温度电压信息,本文对这两个部分进行总结说明,方便诸君不时之需,直接调用便可,不需要多在这上面耗费时间和精力。本文总结了Vivado 比特流编译时间获取以及FPGA电压温度获取的方法,以及获取后将数据进行解析的公式,以上内容都是实际工程中验证过的,可放心使用,如有问题可私信博主,知无不言。只需要把DATA中对应的位数取出来,即可解析出当前bit的编译时间年月日时分秒。原创 2024-06-01 18:00:00 · 2892 阅读 · 0 评论 -
Verilog中 generate语句的用法
本文详细阐述了Verilog中generate语句的应用,它是一种用于创建可配置和可扩展硬件设计的强大工具。generate语句允许开发者根据参数或条件重复或条件性地生成代码块,从而减少代码的冗余,提高代码的复用性。原创 2024-05-30 15:49:43 · 1977 阅读 · 0 评论 -
Verilog HDL中如何控制模块的调用与否
本文主要介绍了在Verilog HDL编程中,如何根据不同情况控制模块是否被调用的方法。1、注释,通过在代码中使用注释符号//或/* */来临时禁用模块;2、条件编译指令,使用ifdef和endif预处理指令来根据是否定义了特定的宏来决定是否编译某段代码。3、generate语句,利用generate和endgenerate关键字,根据参数或条件来生成代码块原创 2024-05-30 14:58:17 · 1498 阅读 · 0 评论 -
关于FPGA如何快速生成模块的例化模板(实用)
vivado的例化模板在生成IP中自动生成,如下,在工程source中找到所要例化的IP,红色框中的.veo文件中即是该IP的verilog 例化模板,而红色框上面的.vho文件中即是该IP的vhdl例化模板。此时,如果子模块的输入输出接口比较多的时候,手动去巧例化的模板就是一件非常枯燥乏味浪费时间的事情,本文,在结合平时做项目中的经验,对快速生成模块的例化模板作了一个总结,望能对各位实操应用中有所帮助。a) 选择如下第一个红框中的+,选择自己设计模块的路径,然后再选择ok,即可将模块添加到当前的工程中。原创 2023-03-31 22:29:51 · 8477 阅读 · 9 评论 -
Vivado如何对固化选项里没有的FLASH进行烧写?
在固化时,会遇到找不到flash器件的问题,这里稍微作个总结: (针对xinlinx的芯片)1,常见的厂家有 :镁光,issi, spanish 等,在vivado固化器件的选项里也只有这几家的。2,但是vivado还是支持另外一些厂家的flash芯片的,每个厂家都有固定的id,,比如今天遇到的winbond厂家,flash就是支持的。(补充:winbond 的只支持128M及128M以下的)原创 2023-03-13 16:46:00 · 8207 阅读 · 6 评论 -
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 · 953 阅读 · 0 评论 -
关于 xilinx sdk软核elf文件与xilinx vivado bit文件合并的方法
在使用软核时候需要注意将软核的程序与vivado程序合并起来,这样在下载合并的bit文件后,即可启动对应的软核程序。有错误疑问的地方欢迎评论留言交流。原创 2023-02-09 12:00:00 · 4536 阅读 · 0 评论 -
[FPGA 固化 下载] altera Quartus jic flash固化步骤
1.在修改代码后,综合,编译,生成sof文件;2.点开jic生成页面 ,如下3.如下:红框中选择 jic 和 板子对应的flash ,这里是EPCQ128然后 点击flash loader ,在右侧选择 add deveice,选择对应的fpga器件3.添加sof文件4.压缩代码打勾,点ok 即可5.下载原创 2022-10-19 10:22:18 · 2048 阅读 · 0 评论 -
0315 FPGA的浮点数处理 I
在进行复杂的运算时,常常会涉及到小数操作,而对于FPGA来说,只认整数,不认小数。这时便有两种处理方式,第一,将小数扩大2的次方倍,直至小数扩大到整数,然后进行处理运算,第二种便是使用浮点和顶点数表示数据,然后进行运算。这时会遇到下一个问题,在FPGA中 定点和浮点的运算是怎么样的?原创 2022-03-15 15:49:48 · 2959 阅读 · 0 评论 -
quartus 中直接引用的延时模块(Modelsim已验证)
已验证 quartus 中直接引用的延时模块软件:Quartus语言:Verilog引言在设计时序时,我们经常要用到延时模块,即将某个信号进行延迟N个clk处理。在Quarus中有可以直接引用的原语模块,按照格式直接调用即可,方便快捷,可以缩短工程的开发周期。1、模块调用格式lpm_shiftreg LPM_SHIFTREG_component ( .clock (clk), .shiftin (data_in),原创 2021-11-19 15:00:27 · 4497 阅读 · 1 评论 -
quartus中设置 systemverilog综合
引言使用quartus建立工程时,有时需要使用Systemverilog HDL语言综合程序,才能顺利通过编译,这时需要在quarus软件中手动设置。解决步骤quartus ———assigniments———settings———Compiler Settings———Verilog HDL input———systemverilog...原创 2021-09-27 14:30:37 · 3976 阅读 · 0 评论