ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

[github repo]根据Excel表格自动生成寄存器RTL/RALF/C header的脚本

2021-06-13 23:36:23  阅读:549  来源: 互联网

标签:Excel github 读取 RTL 写入 寄存器 时会 清零 影响


gen_apb_file

Repo
Author
License
standard-readme compliant

目录

背景

SOC芯片中绝大部分功能模块都有寄存器,处理器通过对寄存器的读写,实现对模块状态的获取和功能的配置。硬件工程师、验证工程师、软件工程师都需要与寄存器打交道,需要有一份中心化[1]且可读性强的寄存器描述文件作为依据,以制作寄存器硬件模块、寄存器验证模型、寄存器配置的头文件。而手动制作消耗时间,且容易出错。

graph TD; 寄存器描述文件-->寄存器硬件模块RTL; 寄存器描述文件-->寄存器验证模型; 寄存器描述文件-->寄存器配置的头文件;

描述

gen_apb_file为一种开源的寄存器文件解决方案,包括中心化的寄存器描述文件(Excel格式)和相应的寄存器文件生成脚本,能够快速生成用于寄存器硬件模块、ralf模型、c语言头文件。主要有以下特性:

  • 支持APB接口类型
  • 寄存器位宽可配
  • 支持25种寄存器存取类型[2](见下表)
  • 可生成verilog
  • 可生成ralf
  • 可生成c header
  • 支持多个模块

尚待改进的地方如下:

  • 未支持语义检查
  • c header未包括域的信息
NO ACCESS DESCRIPTION
1 RO 读写此域都无影响
2 RW 会尽量写入,读取时对此域无影响
3 RC 写入时无影响,读取时会清零
4 RS 写入时无影响,读取时会设置所有的位
5 WRC 尽量写入,读取时会清零
6 WRS 尽量写入,读取时会设置所有的位
7 WC 写入时会清零,读取时无影响
8 WS 写入时会设置所有的位,读取时无影响
9 WSRC 写入时会设置所有的位,读取时会清零
10 WCRS 写入时会清零,读取时会设置所有的位
11 W1C 写1清零,写0时无影响,读取时无影响
12 W1S 写1设置所有的位,写0时无影响,读取时无影响
13 W1T 写1入时会翻转,写0时无影响,读取时无影响
14 W0C 写0清零,写1时无影响,读取时无影响
15 W0S 写0设置所有的位,写1时无影响,读取时无影响
16 W0T 写0入时会翻转,写1时无影响,读取时无影响
17 W1SRC 写1设置所有的位,写0时无影响,读清零
18 W1CRS 写1清零,写0时无影响,读设置所有位
19 W0SRC 写0设置所有的位,写1时无影响,读清零
20 W0CRS 写0清零,写1时无影响,读设置所有位
21 WO 尽可能写入,读取时会出错
22 WOC 写入时清零,读取时出错
23 WOS 写入时设置所有位,读取时会出错
24 W1 在复位(reset)后,第一次会尽量写入,其他写入无影响,读取时无影响
25 WO1 在复位后,第一次会尽量写入,其他的写入无影响,读取时会出错

安装

依赖python及xlrd

  • sudo apt-get install python
  • pip install xlrd

用法

  • python gen_apb_file.py template.xls

维护者

@wudayemen

如何贡献

Open an issue or submit PRs.

参考

[1] [参考路科验证文章](http://blog.eetop.cn/blog-1561828-6266218.html) [2] [参考 «UVM实战» p512]

许可证

The gen_apb_file.py is using the LGPL license. That's for the formalities. But there are some practical statements implied by those licenses:

Your freedoms are:

  • You can use gen_apb_file.py in your closed/commercial projects.
  • The generated RTL is yours (.v files)
  • The generated RALF is yours (.ralf files)
  • The generated C HEADER is yours (.h files)

Your obligations (and my wish) are:

  • f you modify the gen_apb_file.py , please, share your improvements.
    Also, gen_apb_file is provided "as is", without warranty of any kind.

标签:Excel,github,读取,RTL,写入,寄存器,时会,清零,影响
来源: https://www.cnblogs.com/wudayemen/p/14881531.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有