FPGA开源项目:Verilog常用可综合IP模块库

时间:2025-08-02  作者:Diven  阅读:0

Verilog常用可综合IP模块库

FPGA开源项目:Verilog常用可综合IP模块库

优秀的 Verilog/FPGA开源项目介绍(十九)- Verilog常用可综合IP模块库

想拥有自己的Verilog IP库吗?设计时一个快捷键就能集成到自己的设计,酷炫的设计你也可以拥有!

每个公司应该都会维护属于自己公司风格的IP库,作为个人学习或者持续使用的方式,这种方法很有用。今天肯定不是分享我司的IP库,而是一个开源库,每个人都可以使用、维护或者修改,当然作为学习(多人维护)也是不可多得的资料。把该库集成到自己常用的文本编辑器(SublimeVScodeVim等等)可以很快完成代码设计。

简介

这是verilog/systemverilog 可综合模块的集合。

所有代码在典型的 FPGA 和主流 FPGA 供应商中都具有高度可重用性。

可以出于任何目的对文件进行重新混合、转换和构建,甚至是商业用途。

但是必须提供创作者的姓名并与原始作品相同的许可。

工程链接

https://github.com/pConst/basIC_verilog

详细介绍

文件夹外的文件根据文件名很容易判断其用途,下面着重介绍文件夹内部文件:

 

目录描述
Advanced Synthesis Cookbook/Altera cookbook中的有用代码
KCPSM6_Release9_30Sept14/Xilinx 的 PICoblaze 软处理器
pacoblaze-2.2/适用于 Altera 器件的 Picoblaze 版本
example_projects/FPGA 项目示例
benchmark_projects/多种 FPGA 类型的编译时间基准
scripts/有用的 TCL 脚本

 

注1:cookbook:类似技巧大全的意思

这里还有一个TCL脚本文件,再简单介绍一下:

 

脚本描述
scripts/allow_undefined_ports.tcl允许为 Vivado IDE 生成带有未定义引脚的测试项目
scripts/compile_quartus.tclQuartus IDE 中用于命令行项目编译的样板脚本
scripts/convert_sof_to_jam.batAltera/Intel FPGA 配置文件转换器
scripts/convert_sof_to_rbf.bat另一个 Altera/Intel FPGA 配置文件转换器
scripts/iverilog_compile.tcl使用 iverilog 工具编译 Verilog 源代码并在 gtkwave 工具中运行模拟的完整脚本
scripts/modelsim_compile.tclModelsim无项目模式编译脚本
scripts/post_flow_quartus.tcl英特尔 Quartus IDE 的自定义报告或报告分析
scripts/post_flow_vivado.tclXilinx Vivado IDE 的自定义报告或报告分析
scripts/program_all.batAltera/Intel FPGA 的命令行编程器示例
scripts/project_version_auto_increment.tclQuartus IDE 的项目版本自动增量脚本
scripts/quartus_system_console_init.tcl通过 JTAG-to-Avalon-MM 桥 IP 读/写 Avalon-MM 的初始化脚本
scripts/set_project_directory.tcl更改当前目录以匹配 Vivado IDE 中的项目目录
scripts/write_avalon_mm_from_file.tcl通过 JTAG-to-Avalon-MM 桥 IP 将二进制文件中的批量二进制数据写入 Avalon-MM

 

注2:Avalon:ALTERA公司FPGA内部使用的总线,下图是典型Altera FPGA系统

其模块说明

 

脚本描述
ActionBurst.v多通道一次性触发模块
ActionBurst2.v可变步长的多通道一次性触发
adder_tree.sv将多个值并行相加
bin2gray.sv格雷码到二进制转换器
bin2pos.sv将二进制编码值转换为one-hot代码
clk_divider.sv宽参考时钟分频器
debounce.v输入按钮的两周期去抖动
delay.sv用于产生静态延迟或跨时钟域同步的有用模块
dynamic_delay.sv任意输入信号的动态延迟
edge_detect.sv组合边沿检测器,在每个信号边沿上提供一个滴答脉冲
lifo.sv单时钟 LIFO 缓冲器(堆栈)实现
NDivide.v原始整数除法器
prbs_gen_chk.svPRBS 模式生成器或检查器
pulse_gen.sv产生具有给定宽度和延迟的脉冲
spi_master.sv通用spi主模块
UartRx.v简单明了的 UART 接收器
UARTTX.v简单明了的 UART 发送器
uart_rx_shifter.sv类似 UART 的接收器移位器,用于 FPGA 内部或 FPGA 之间的简单同步消息传递
uart_rx_shifter.sv类似 UART 的接收器移位器,用于 FPGA 内部或 FPGA 之间的简单同步消息传递
UartRxExtreme.v极小的 UART 接收器实现
UartTxExtreme.v极小的 UART 发送器实现
......

 

今天只介绍了一个项目,这个项目可以给大家提供一个思路尤其对于没有工作或者刚入门不久的同行,自己在编写代码时要想着可继承性,这样在以后做类似项目时可以借用,并且长期维护一个代码对于这个模块的理解有很大帮助。

还是感谢各个大佬开源的项目,让我们受益匪浅。后面有什么感兴趣方面的项目,大家可以在后台留言或者加微信留言,今天就到这,我是爆肝的碎碎思,期待下期文章与你相见。

审核编辑:黄飞

 

猜您喜欢

贴片电阻作为电子元件中的基础组件,其性能直接影响到整个电路的稳定性和可靠性。金凤冠作为国内知名的电子元器件品牌,其贴片电阻产品因质量优异、价格合理而受到关注。本...
2018-08-04 16:07:30

电子设备中,功率电感是关键部件。选型不当,会影响设备性能。本文将为大家介绍功率电感的选型方法。确定电感值选电感时,首先要看电感值。电感值会影响电路的工作频率。一...
2025-03-26 22:01:07

保险丝作为关键的保护元件,其重要性日益凸显。华威(Huawei)作为知名的通信和电子设备制造商,其推出的Huawei9保险丝系列受到关注。那么,华威 Huawe...
2024-07-18 04:20:30

LED灯具以其节能环保的特点,已经逐渐走入了千家万户。然而,很多人不知道的是,LED灯具的亮度和寿命,很大程度上取决于与其匹配的驱动器。那么,LED光源驱动器究...
2024-10-25 00:00:00

贴片电阻上的202并非直接代表阻值,而是表示其尺寸。202代表的是英制尺寸,即长宽分别为0.2英寸和0.02英寸。转换成公制单位,大约是5.08mm x 1.2...
2024-11-29 10:25:57

电子电路设计中,电阻是必不可少的元器件。插件电阻和贴片电阻是两种常见的类型,各有优势,适用于不同的应用场景。插件电阻成本较低,功率较大,便于手工焊接和更换,在一...
2024-11-29 10:26:24

PTC热敏电阻作为重要的保护元件,受到了越来越多工程师和设计师的关注。作为行业内知名品牌,ROYALOHM(厚生)很好的品质和丰富的产品线,在PTC热敏电阻领域...
2013-01-08 06:14:30

光敏电阻,又称为光电阻,是对光敏感的电阻器。的阻值会光照强度的变化而变化,具有的应用,如光控开关、光传感器等。了解光敏电阻的阻值与哪些因素有关,对于优化其应用和...
2025-04-14 18:01:12

线坠是常见的渔具,应用于钓鱼活动中。根据不同的使用需求,线坠可以分为多种类型。按材质分类,线坠主要有铅坠、不锈钢坠和塑料坠。铅坠因其重量大、价格低而被使用;不锈...
2017-11-23 00:00:00

防静电鞋是专门设计的鞋子,主要用于防止静电对人体和设备造成的损害。在电子、化工、制药等行业,静电可能引发火灾、爆炸或设备故障,因此穿戴防静电鞋显得尤为重要。防静...
2012-03-29 00:00:00