0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SystemVerilog常用可综合IP模块库

OpenFPGA 来源:OpenFPGA 作者:OpenFPGA 2022-05-05 09:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

SystemVerilog常用可综合IP模块库


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

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

简介

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

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

本项目是几个常用可综合模块集合的集合,下面分别介绍这些项目。

工程链接

https://github.com/suisuisi/basic_systemverilog

详细介绍

basic_verilog

8c596972-cc0b-11ec-bce3-dac502259ad0.png

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

目录 描述
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.tcl Quartus IDE 中用于命令行项目编译的样板脚本
scripts/convert_sof_to_jam.bat Altera/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.tcl Xilinx Vivado IDE 的自定义报告或报告分析
scripts/program_all.bat Altera/Intel FPGA 的命令行编程器示例
scripts/project_version_auto_increment.tcl Quartus 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系统

8c730bde-cc0b-11ec-bce3-dac502259ad0.png

其他模块说明

脚本 描述
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.sv PRBS 模式生成器或检查器
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 发送器实现
... ...

generic_systemverilog_designs_library

  • binary_counter

SystemVerilog 中具有异步复位的 n 位二进制计数器。

  • binary_to_gray

SystemVerilog中的n位二进制到格雷码组合转换器电路。

  • demultiplexer

具有宽度和输出端口数量参数化的解复用器。

  • full_adder

SystemVerilog 中的 n 位全加器

  • full_subtractor

SystemVerilog 中的 n 位全减法器

  • gray_counter

使用 SystemVerilog 中的二进制计数器和二进制到格雷码组合转换器电路实现的具有异步复位的 n 位格雷码计数器。

  • multiplexer

具有宽度和输入端口数量参数化的多路复用器

SvLibDR

包括串口和SPI接口的可综合IP模块

SystemVerilog-Bitmap-Library-AXI-Image-VIP

描述

要验证视频或图像处理 IP,可能需要将真实图像读取到设计中,并通过接口发送其数据。然后,从界面获取输出,并将其转换为新图像,保存或比较。

为了解决这个复杂的问题,设计了这个库,它可以帮助您简化设计流程。使用一些简单的 API 可以轻松地在测试台中读取和写入标准位图文件 (.BMP)。并且,使用 AXI-Stream Video Image VIP,可以轻松地将图像发送到与 Xilinx 用户指南 UG934 兼容的标准 AXI-Stream 视频接口,从输出接口接收图像并保存。

位图处理库可以通过 System Verilog 将 Windows 位图文件 (.BMP) 读取和写入位数组(虚拟内存),以进行 IP 验证。该库支持 24 位和 32 位位图读入和 32 位位图写出。

使用位图处理库的 AXI-Stream Video Image VIP。“axi_stream_video_image_in_vip”IP 可以将位图文件读入内存,并通过 AXI-Stream 视频接口(在 Xilinx 用户指南 UG934 中定义)发送。而“axi_stream_video_image_out_vip”IP可以监控一个AXI-Stream接口,获取在接口上传输的帧并保存到位图文件中。

一般信息

支持的位图:

输入:24-bpp/32-bpp RGB/RGBA 位图输出:32-bpp RGBA 位图

这个库的优势

  • 简单的 API
  • 开源
  • 与流行的 EDA 工具兼容(在 Modelsim 和 Qustasim 上测试)

包中的文件

文件 描述
bitmap_processing.sv 位图处理库。
axi_stream_video_image.sv AXI 流视频图像库(用于回调类)。
axi_stream_video_image_in_vip.sv VIP 用于读取位图并将其发送到接口。
axi_stream_video_image_out_vip.sv VIP 用于监控界面并将图像保存为位图。
axi_stream_video_image_example.sv 如何使用 VIP 和库的简单示例。

关于包使用等详细信息,请查看项目介绍。

总结

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

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

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • System
    +关注

    关注

    0

    文章

    166

    浏览量

    38820
  • 编辑器
    +关注

    关注

    1

    文章

    829

    浏览量

    33061
  • 模块库
    +关注

    关注

    0

    文章

    2

    浏览量

    5151

原文标题:优秀的 Verilog/FPGA开源项目介绍(二十二)- SystemVerilog常用可综合IP模块库

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    IP6162 集成隔离通信,级联使用的光伏MPPT DC-DC

    3简介IP6162是一款集成隔离通信,级联使用的MPPT DC-DC,具有最大功率点追踪功能功能(MPPT),能快速准确的追踪到太阳能电池板的最大功率输出点,实现太阳能的最大利用。IP6162集成
    发表于 04-14 10:20 0次下载

    海外静态IP和海外动态IP有哪些区别?怎么选择?

    IP地址 你今天用是这个IP,明天还是这个IP,不会自动变化,如果你用的是海外静态IP,不管国内的IP怎么变换,国外出口
    的头像 发表于 04-13 12:36 86次阅读
    海外静态<b class='flag-5'>IP</b>和海外动态<b class='flag-5'>IP</b>有哪些区别?怎么选择?

    疆鸿智能Ethernet/IP转DeviceNet,卡机器人智联枢纽,破壁协同高效智造

    疆鸿智能Ethernet/IP转DeviceNet,卡机器人智联枢纽,破壁协同高效智造 在注塑厂生产流水线上,设备协议不通常常成为自动化升级的瓶颈。当罗克韦尔Ethernet/IP PLC作为
    的头像 发表于 03-31 15:15 172次阅读
    疆鸿智能Ethernet/<b class='flag-5'>IP</b>转DeviceNet,<b class='flag-5'>库</b>卡机器人智联枢纽,破壁协同高效智造

    Profinet转Ethernet IP网关连接卡机器人问答式精简配置指南

    Profinet转Ethernet IP网关连接卡机器人问答式精简配置指南。 本文以西门子Profinet主站→Profinet从站转Ethernet IP主站网关→卡机器人(Et
    的头像 发表于 03-24 11:35 456次阅读
    Profinet转Ethernet <b class='flag-5'>IP</b>网关连接<b class='flag-5'>库</b>卡机器人问答式精简配置指南

    【「龙芯之光 自主可控处理器设计解析」阅读体验】--LoongArch逻辑综合、芯片设计

    本篇讲述学习LoongArch逻辑综合测试性设计、物理设计章节内容。 一.逻辑综合 逻辑综合(logic synthesis)是将电路的行为级描述,特别是寄存器传输级(Regist
    发表于 01-18 14:15

    一文详解SystemC仿真的编译

    AMD Vivado 设计套件以文件和的形式提供仿真模型。仿真包含器件和 IP 的行为和时序模型。编译后的可供多个设计项目使用。用户必须在设计仿真之前通过名为 compile_s
    的头像 发表于 12-12 15:08 5032次阅读
    一文详解SystemC仿真<b class='flag-5'>库</b>的编译

    RDMA设计6:IP架构2

    中传输层、网络层及网络接口层功能。首先,该模块接收来自融合以太网协议栈的网络包,并为其逐层添加UDP、IP 及 ETH 头部,使其成为完整的网络包后发送至 CMAC 集成块。其次,该模块解析来自远程
    发表于 11-26 10:24

    创客匠人创始人IP+AI万人大会次日:深度探讨AI时代IP价值重塑与持续增长路径

    2025年11月23日,全球创始人IP+AI万人高峰论坛进入第二日议程。在厦门海峡大剧院,数千名创始人、企业家及行业领袖齐聚,围绕“AI时代的IP价值重构”“数字时代的终身学习”及“持续变现的
    的头像 发表于 11-24 13:10 358次阅读
    创客匠人创始人<b class='flag-5'>IP</b>+AI万人大会次日:深度探讨AI时代<b class='flag-5'>IP</b>价值重塑与<b class='flag-5'>可</b>持续增长路径

    中科易联EtherNet IP开关量IO模块ST35-ADP-EIP与AB PLC通讯应用案例

    中科易联EtherNet/IP开关量IO模块ST35-ADP-EIP与AB PLC通讯应用案例
    的头像 发表于 09-08 15:45 974次阅读
    中科易联EtherNet <b class='flag-5'>IP</b>开关量IO<b class='flag-5'>模块</b>ST35-ADP-EIP与AB  PLC通讯应用案例

    50 欧姆、高 IP3、低噪声宽带增益模块 skyworksinc

    电子发烧友网为你提供()50 欧姆、高 IP3、低噪声宽带增益模块相关产品参数、数据手册,更有50 欧姆、高 IP3、低噪声宽带增益模块的引脚图、接线图、封装手册、中文资料、英文资料,
    发表于 09-01 18:32
    50 欧姆、高 <b class='flag-5'>IP</b>3、低噪声宽带增益<b class='flag-5'>模块</b> skyworksinc

    华秋 KiCad 发行版 9.0.4 发布:属于您自己的云端器件模块电路

    “  本次更新增加了个人中心,让您可以维护自己的云端器件模块电路。同时增加了 PCB/SMT 下单功能,让您可以在 KiCad 里直接下单并追踪订单的进度。  ”   华秋发行版概览 华秋
    的头像 发表于 08-28 19:11 1.3w次阅读
    华秋 KiCad 发行版 9.0.4 发布:属于您自己的云端器件<b class='flag-5'>库</b>及<b class='flag-5'>模块</b>电路<b class='flag-5'>库</b>

    零基础在智能硬件上克隆原神莉实现桌面陪伴(提供人设提示词、知识、固件下载)

    个步骤:1、创建智能体:配置莉的基础信息2、声音复刻:克隆莉的声音3、配置知识:配置莉和嘟嘟的背景、故事经历、语录等知识
    发表于 08-22 19:51

    SmartDV推出先进的H.264和H.265视频编码器和解码器IP

    综合IP产品系列支持H.264的基本/主流/高性能配置和H.265的主流/主流10/主流静态图像配置,提供了跨越不同应用的无缝集成和无与伦比的灵活性。
    的头像 发表于 06-27 11:11 1841次阅读
    SmartDV推出先进的H.264和H.265视频编码器和解码器<b class='flag-5'>IP</b>

    达梦数据常用管理SQL命令详解

    达梦数据常用管理SQL命令详解
    的头像 发表于 06-17 15:12 7633次阅读
    达梦数据<b class='flag-5'>库</b><b class='flag-5'>常用</b>管理SQL命令详解

    海外住宅IP代理优势综合分析

    海外住宅IP代理凭借其独特的资源特性与技术架构,在跨境电商、数据采集、广告投放等场景中展现出显著优势。以下从核心功能、技术保障、合规性及适用场景等维度进行详细分析: 一、隐匿性与安全性提升 真实IP
    的头像 发表于 04-25 10:28 719次阅读