| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 避免重复造轮子,我们去哪找FPGA IP或是HDL功能模块? -> 正文阅读 |
|
[网络协议]避免重复造轮子,我们去哪找FPGA IP或是HDL功能模块? |
一. 各FPGA厂家IP库对于一些常用的IP,通常各FPGA厂商的开发软件中会自带,并长期免费提供给用户使用或者允许申请IP评估免费使用一段时间。这些IP通常是不开源的,但使用起来很方便,有助于开发者快速实现相关功能。 1.1 Xilinx(AMD) IP核Xilinx官网的IP核界面如上图所示,我们可以按各种分类查找IP核,也可以根据关键词搜索IP核,对于一些较新的IP,Xilinx会开发IP评估,我们也可以申请IP评估资格来先一步使用这些IP。关于IP评估的申请使用请参考我的另一篇博客: 另一种方法是在Vivado软件中的IP Catalog中搜索,注意将隐藏和禁用不匹配的IP关掉(这里Vivado的中文翻译错了),这样就能搜索到所有IP,否则只会显示和当前器件匹配的IP。 1.2 Altera(Inter) IP核[查找英特尔? FPGA 知识产权 (IP) 核心 (intel.cn)](https://www.intel.cn/content/www/cn/zh/products/programmable/intellectual-property/find-fpga-ip.html#sort=%40title ascending) Inter官网的FPGA知识产权界面如上图所示,同样可搜索IP或者根据分类查找,也可在Quartus软件的IP Catalog中搜索,选择Show IP for all device families,表示显示所有器件可用的IP; 选择Show IP for active device families,表示仅显示当前器件可用的IP。 二. 开源FPGA IP网站FPGA和IC设计发展多年,大量的IP已经被设计完成并开源分享出来,找到这些开源的代码能帮助我们事半功倍的完成工作。当然,这些开源IP用起来不如FPGA厂家提供的IP方便,有些能直接使用,有些则需要我们先消化理解代码并做少量修改才能实现需要的功能,但相较于从头开发已经算是站在了巨人的肩膀上。 2.1 OpenCores网站简介:世界上最大的FPGA开源IP核网站,里面包含大量已经测试好/没有完全测试好的Verilog/VHDL源代码。 在左侧点击Projects可以看到网站的目录,如下图所示。此网站需要先注册(免费的),登录后才能下载。 2.2 GithubGitHub: Where the world builds software · GitHub GIthub是世界上最大的软件代码分享平台,虽然相较于C语言、Python等软件语言,HDL语言在Github上资源较少,但仍然有大量优秀的HDL代码值的借鉴。可以在Github上搜索关键词,如下图的I2C Verilog即可找到开源的IP核。 2.3 CSDNCSDN上有大量博主会分享HDL代码,有优质的,有凑数的,需要自行把控。 2.4 alexforencic[Welcome Alex Forencich] 可以看到,该网站的Verilog IP包含:
其实还包括pcie的IP核,没有在上图显示出来。该网站源码在Github上开源,有人持续维护。 2.5 zipcpuThe ZipCPU by Gisselquist Technology 这是一个个人博客网站,博主有分享大量自己编写的IP核,包括AXI-Lite,AXI Stream,UART,I2C等。当然从网站名称我们可以知道,博主设计了一个CPU,名叫ZipCPU,并配备了一个操作系统,叫ZipOS。 2.6 其它开源IP网站后续了解更多会更新此博客,先占个坑。 三. 总结建议优先使用厂商提供的IP核完成设计。如果厂商未提供相关IP,优先去OpenCores中找,再去Github上搜索,基本就能找到相关/类似的IP或HDL功能模块。当然,我的博客中也有个人工作中总结的一些Verilog功能模块,都经过本人实际上板验证可供参考,觉得有用可订阅加关注。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 7:29:14- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |