systemverilog常用可综合ip模块库
想拥有自己的systemverilog ip库吗?设计时一个快捷键就能集成到自己的设计,酷炫的设计你也可以拥有!
每个公司应该都会维护属于自己公司风格的ip库,作为个人学习或者持续使用的方式,这种方法很有用。今天肯定不是分享我司的ip库,而是一个开源库,每个人都可以使用、维护或者修改,当然作为学习(多人维护)也是不可多得的资料。把该库集成到自己常用的文本编辑器(sublimevscodevim等等)可以很快完成代码设计。
简介 这是verilog/systemverilog 可综合模块的集合。
所有代码在典型的 fpga 和主流 fpga 供应商中都具有高度可重用性。
本项目是几个常用可综合模块集合的集合,下面分别介绍这些项目。
工程链接 ❝ https://github.com/suisuisi/basic_systemverilog
详细介绍 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.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系统
其他模块说明
脚本 描述
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 和库的简单示例。
关于包使用等详细信息,请查看项目介绍。
总结 今天只介绍了一个项目,这个项目可以给大家提供一个思路尤其对于没有工作或者刚入门不久的同行,自己在编写代码时要想着可继承性,这样在以后做类似项目时可以借用,并且长期维护一个代码对于这个模块的理解有很大帮助。
最后,还是感谢各个大佬开源的项目,让我们受益匪浅。后面有什么感兴趣方面的项目,大家可以在后台留言或者加微信留言,今天就到这,我是爆肝的碎碎思,期待下期文章与你相见。
国内英伟达RTX 4090显卡全部下架,现货涨价最高至5万,游戏玩家怎么办?
手机屏上hd怎么取消_手机左上角显示HD是开启什么功能
海克斯康的超高精度测量机迎来全球首展
电机“减肥”增效的奥秘!
特朗普发布的美国首份国防战略《国家安全战略》阐释
SystemVerilog常用可综合IP模块库
realme官微宣布realme X正式亮相,4800万升降全面屏手机
了解Linux的平均负载和性能监控是什么?
小萌智能教育机器人:一款面向未来教育的产品,有屏有轮有品质
中国5G有望最早在2020年正式规模商用
vocs在线监测仪治理印刷vocs污染
你不知道的“LED电视”十大真相
联网智能机器人未来可能扮演多种角色
2017物联网安全沙龙,8月5日深圳见
重磅!中软国际与乐普健康达成合作,正式启动鸿蒙原生应用开发
一种在片上系统中实现Nand Flash控制器的方法
叫板华为!小米自曝美国CES展发布黑科技手机:白色mix
印度正在成为培养区块链技术人才的重要国家
学会针对永洪API接口的性能测试,工作效率提升百倍
荣耀畅玩6A和荣耀8哪个好?怎么区别对比看了就知道