分享一個FPGA寄存器接口自動化工具

FPGA模塊越寫越多,規范性和可移植性卻堪憂。要是有一個工具可以根據模塊接口描述文件生成verilog和c頭文件就好了。苦苦搜尋找到了幾款免費的工具,SystemRDL、cheby和rggen。筆者學習了下cheby和reksio,reksio是gui版的cheby,這是是歐洲核子研究中心 (CERN)的控制電子和機電一體化 (CEM) 部門開源的接口生成工具,使用體驗非常棒,直接看效果。

1、使用reksio圖形軟件描述寄存器屬性

在這里插入圖片描述

  • Noders tree面板中是寄存器的樹形結構描述,可以靈活添加各種對象,如block、reg

  • Attributes面板是每個對象具有的屬性,可以在此界面修改屬性

  • 右下角的Children overview中是子對象的的整體預覽

2、生成sv格式接口包裝

使用cheby命令自動生成sv代碼,sdma.sv中將axi總線命令轉換成了寄存器的讀寫

cheby --hdl=sv --gen-hdl=sdma.sv -i sdma.yaml

在這里插入圖片描述
在這里插入圖片描述

3、生成c頭文件

使用cheby命令自動生成c頭文件代碼

cheby --gen-c=sdma.h -i sdma.yaml

在這里插入圖片描述

4、生成模塊接口文檔

這個功能就niub了,能直接生成接口文檔,再也不用擔心接口文檔寫錯了。

cheby --gen-doc=sdma.html -i sdma.yaml

在這里插入圖片描述

最后,附上以上工具源碼位置

https://gitlab.cern.ch/be-cem-edl/common/cheby
https://gitlab.cern.ch/Cheburashka/reksio

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/916944.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/916944.shtml
英文地址,請注明出處:http://en.pswp.cn/news/916944.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

小程序中事件對象的屬性與方法

在小程序中,事件處理函數的參數為事件對象(通常命名為 e),包含了事件相關的詳細信息(如事件類型、觸發元素、傳遞的數據等)。事件對象的屬性和方法因事件類型(如點擊、輸入、觸摸等)…

使用寶塔“PostgreSQL管理器”安裝的PostgreSQL,如何設置遠程連接?

安裝 PostgreSQL 使用寶塔“PostgreSQL管理器”安裝PostgreSQL,版本可以根據自己的需求來選擇,我這里使用的是16.1 創建數據庫 根據下圖所示步驟創建數據庫,其中 “訪問權限”一定要選擇“所有人”啟用遠程連接設置允許所有 IP 連接 listen_a…

論文:M矩陣

M矩陣是線性代數中的一個概念,它是一種特殊類型的矩陣,具有以下性質:非負的非對角線元素:矩陣的所有非對角線元素都是非負的,即對于矩陣MMM中的任意元素mijm_{ij}mij?,當i≠ji\neq jij時,有m…

跳躍表可視化深度解析:動態演示數據結構核心原理

跳躍表可視化深度解析:動態演示數據結構核心原理 一、跳躍表基礎概念與核心優勢 跳躍表(SkipList)是一種基于多層索引鏈表的數據結構,通過概率平衡實現高效的插入、刪除和查找操作。其核心優勢體現在: ?時間復雜度優…

《Sentinel服務保護實戰:控制臺部署與SpringCloud集成指南》

sentinel 介紹 Sentinel是阿里巴巴開源的一款服務保護框架,目前已經加入SpringCloudAlibaba中。官方網站: home | Sentinel Sentinel 的使用可以分為兩個部分: 核心庫(Jar包):不依賴任何框架/庫,能夠運行…

IBM Watsonx BI:AI賦能的下一代商業智能平臺

產品概覽 IBM Watsonx BI 是基于 watsonx 企業級 AI 與數據平臺 構建的智能分析解決方案,專為現代化企業打造。它深度融合人工智能技術,突破傳統 BI 工具的限制,通過自動化數據洞察、自然語言交互和預測分析,幫助企業在復雜數據環…

Python實現GO鵝優化算法優化GBRT漸進梯度回歸樹回歸模型項目實戰

說明:這是一個機器學習實戰項目(附帶數據代碼文檔),如需數據代碼文檔可以直接到文章最后關注獲取 或者私信獲取。 1.項目背景 隨著大數據和人工智能技術的快速發展,回歸預測在金融、氣象、能源等多個領域中扮演著至關…

深度學習計算(深度學習-李沐-學習筆記)

層和塊 單一輸出的線性模型:單個神經網絡 (1)接受一些輸入; (2)生成相應的標量輸出; (3)具有一組相關 參數(parameters),更新這些參數…

leetcode熱題——搜索二維矩陣Ⅱ

目錄 搜索二維矩陣Ⅱ 題目描述 題解 解法一:暴力搜索 C 代碼實現 復雜度分析 解法二:二分查找 C 代碼實現 復雜度分析 解法三:Z字形查找 算法核心思想 算法步驟詳解 C 代碼實現 復雜度分析 搜索二維矩陣Ⅱ 題目描述 編寫一個…

牛客 - 數組中的逆序對

描述 在數組中的兩個數字,如果前面一個數字大于后面的數字,則這兩個數字組成一個逆序對。輸入一個數組,求出這個數組中的逆序對的總數P。并將P對1000000007取模的結果輸出。 即輸出P mod 1000000007 數據范圍: 對于 50% 的數據, size≤104 s…

Linux 日志管理與時鐘同步詳解

Linux 日志管理與時鐘同步詳解 一、日志管理 1. 日志服務概述 Linux 系統中主要有兩種日志服務,分別負責臨時和永久日志的管理: systemd-journald:存儲臨時日志,服務器重啟后日志會丟失,無需手動配置rsyslog&#xff1…

個人如何做股指期貨?

本文主要介紹個人如何做股指期貨?個人參與股指期貨交易需要遵循一定的流程和規則,同時需充分了解其高風險、高杠桿的特點,并做好風險管理。個人如何做股指期貨?一、了解股指期貨基礎股指期貨是以股票價格指數為標的物的金融期貨合…

設計模式-單例模式 Java

模式概述 單例模式(Singleton Pattern)是設計模式中最基礎但應用最廣泛的創建型模式之一,確保一個類僅有一個實例,并提供一個全局訪問點。這種模式在需要全局唯一對象的場景中至關重要,如配置管理、線程池、數據庫連接…

RFID 系統行業前沿洞察:技術躍遷與生態重構

在物聯網與人工智能深度融合的時代,RFID(射頻識別)系統正經歷從 “單品識別工具” 到 “智能決策中樞” 的范式轉變。這一技術憑借其非接觸式數據采集、環境適應性強、全生命周期追溯等特性,在醫療、制造、農業、環保等領域引發連…

實現implements InitializingBean, DisposableBean 有什么用

在 Spring 框架中,實現 InitializingBean 和 DisposableBean 接口用于管理 Bean 的生命周期回調,分別控制 Bean 的初始化后和銷毀前行為。具體作用如下:1. InitializingBean 接口public interface InitializingBean {void afterPropertiesSet…

GitLab 18.2 發布幾十項與 DevSecOps 有關的功能,可升級體驗【一】

沿襲我們的月度發布傳統,極狐GitLab 發布了 18.2 版本,該版本帶來了議題和任務的自定義工作流狀態、新的合并請求主頁、新的群組概覽合規儀表盤、下載安全報告的 PDF 導出文件、中心化的安全策略管理(Beta)等幾十個重點功能的改進…

如何快速把Clickhouse數據同步到Mysql

直接使用Clickhouse官方支持的Mysql引擎表的方式! 一、首先創建Mysql引擎表: CREATE TABLE saas_analysis.t_page_view_new_for_write (id Int64,shop_id Nullable(Int64),session_id Nullable(String),client_id Nullable(String),one_id Nullable(Str…

Kafka 重復消費與 API 冪等消費解決方案

Kafka 是一個高性能的分布式消息系統,但消費者重啟、偏移量(offset)未正確提交或網絡問題可能導致重復消費。API 冪等性設計則用于防止重復操作帶來的副作用。本文從 Kafka 重復消費和 API 冪等性兩個方面提供解決方案,重點深入探…

win11推遲更新

1、按住WINR2、輸入以下命令:reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" /v FlightSettingsMaxPauseDays /t reg_dword /d 10000 /f3、點擊確定4、打開搜索框5、在搜索框里邊輸入更新,選擇檢查更新6、在暫停…

【uniapp】---- 使用 uniapp 實現視頻和圖片上傳且都可以預覽展示

1. 前言 接手得 uniapp 開發的微信小程序項目,新的開發需求是需要同時上傳圖片和視頻,但是之前的上傳都沒有進行封裝,都是每個頁面需要的時候單獨實現,現在新的需求,有多個地方都需要上傳圖片、視頻或語音等,這樣就需要封裝一個組件,然后發現部分地方使用了 uni-file-p…