[构思]依据verilog源文件中的关键代码及其注释,使用脚本命令生成代码文档

2023-11-08

依据verilog源文件中的关键代码及其注释,使用脚本命令生成代码文档。(跟Doxygen工具功能类似)

针对的场景是工程里的代码没有文档,阅读不方便。注释没有章法,代码越长,阅读直观感受越差。

脚本需求指数,个人认为二颗星吧(毕竟还没见到周围人写过代码文档)。脚本实现后,应该可以规范代码文档的格式,方便了解代码文档的质量。

Doxygen_百度搜索
https://www.baidu.com/s?f=8&rsv_bp=1&rsv_idx=1&word=Doxygen&tn=97925205_hao_pg

verilog代码文档的内容需求

verilog代码文档的内容需求,一般包括下述方面:

  • module功能。需要verilog注释加以描述。
  • 端口介绍。需要verilog注释加以描述。
  • 基本算法(比如状态机的状态跳转,为了方便。可以利用simvision里的状态跳变图)。需要verilog注释配合加以描述。
  • 实现框架(主要是介绍内部实例之间的关系。可以利用simvision里的schematic视图。可以visio)。需要verilog注释加以描述。
  • author、date、修改history等代码版本相关的信息,可以通过svn/git去维护。不需要verilog注释加以描述。
  • define、parameter、localparam描述。需要verilog注释加以描述。
  • 内部变量描述,wire和reg。需要verilog注释加以描述。
  • 每个代码段的简单描述。需要verilog注释加以描述。

生成文档的实现思路

意义:
1. 文档和代码保持一致。
2. 方便养成代码写注释和写文档的习惯。
3. 方便code review。

实现思路:
1. 脚本实现用perl即可。
2. verilog注释,依赖的是关键词“//”和“/**/”。
3. verilog代码文档,很多信息,来源于代码本身。所以,不要局限于注释内容。
4. verilog代码为了保证清晰明了,使用图形在所难免。所以利用markdown语法即可,但是markdown语法版本太多,怎么选择?

综上所述,脚本实现不难,而且有一定的工程意义。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[构思]依据verilog源文件中的关键代码及其注释,使用脚本命令生成代码文档 的相关文章

  • 折叠具有多个字段的行

    我有这个代码 awk seen 1 2 a 1 a 1 a 1 t 2 END for i in a print i a i inputfile 我想折叠具有两个以上字段的行 但始终基于第一个字段作为索引 输入文件 三列制表符分隔 prot
  • 如何在 Perl 中使用原始套接字?

    你怎样才能得到一个rawPerl 中的套接字 那么构建与其一起使用的数据包的最佳方法是什么 与在 C 中执行的操作相同 通过在创建套接字时设置套接字类型 在示例中CPAN http search cpan org rgarcia perl
  • Perl regex:如何知道匹配数

    我循环遍历一系列正则表达式并将其与文件中的行进行匹配 如下所示 for my regex regexs ref LINE for rawfile regex do do something here next LINE 有没有办法让我知道我
  • 如何修复 Math::BigInt 调用的 Math::Pari 中的“`as_number' 不是 Pari 函数名称”?

    在 Perl 5 8 5 上 我看到问题中列出的错误 我正在运行这些版本模块 数学 BigInt 1 89 数学 BigInt FastCalc 0 19 数学 BigInt GMP 1 24 数学 BigInt Pari 1 13 数学
  • 在 Perl 中,“$a”和“$b”在 sort() 函数之外还有什么特殊用途吗?

    我问了一个关于 Perl 中 a 和 b 使用的问题sort 前几天的功能 Perl 的 sort 函数中的 a 和 b 到底是什么 https stackoverflow com questions 26127617 what exact
  • Perl 中函数调用和 goto &NAME 有什么区别?

    我正在读 Perl 这很有趣 但读书时从这里转到 https www tutorialspoint com perl perl goto statement htm在 Perl 中我有一个疑问 我知道 goto 语句有三种类型 转到标签 转
  • 模块不是任务或 void 函数

    我正在尝试在 Verilog 中创建一个用于进位选择加法器的模块 除了以下部分导致编译错误之外 一切正常 module csa a b s cout input 15 0 a b output 15 0 s output cout wire
  • Mojolicious:我应该使用一个还是多个 websocket?

    我正在自学 Mojolicious 和 websockets 到目前为止 我已经有了一个网页 它显示数据库中的行 并具有用于添加 删除和更新行以及选择用于排序的列的按钮 目前 它在每个按钮的 javascript onclick 处理程序中
  • 从函数返回哈希值的最佳 Perl 实践是什么?

    我正在考虑将哈希引用传递给函数或从函数返回数据的最佳实践 一方面 仅将输入值传递给函数并仅返回输出变量似乎很直观 然而 在 Perl 中传递哈希值只能通过引用来完成 因此有点混乱 而且似乎更有可能犯错误 另一种方法是在输入变量中传递引用 但
  • 如何在 Perl 中使用变量作为模块名称?

    我知道可以在 Perl 中使用变量作为包变量的变量名 我想使用变量的内容作为模块名称 例如 package Foo our names blah1 blah2 1 在另一个文件中 我希望能够将标量的内容设置为 foo 然后访问中的名称数组F
  • 在 Perl 中检测全局破坏

    我想检测我的物体是否被DESTROY作为全局破坏的一部分 并打印出警告 因为这显然是一个错误并导致数据丢失 显而易见的方法似乎是 sub DESTROY my self shift if i am in global destruction
  • 与 6 位随机字母数字代码发生冲突的概率是多少?

    我使用以下 Perl 代码生成随机字母数字字符串 仅限大写字母和数字 用作 MySQL 数据库中记录的唯一标识符 数据库的行数可能会保持在 1 000 000 行以下 但实际的绝对最大值约为 3 000 000 行 我是否有 2 条记录具有
  • 如何检测FTP文件传输完成?

    我正在编写一个脚本 用于轮询 FTP 站点上的文件并在可用时将它们下载到本地 文件由各个来源方随机存放到 FTP 站点 我需要一种方法能够在下载之前检测 FTP 站点上的文件是否已被源方完全传输 关于如何解决这个问题有什么想法吗 如果您可以
  • Java 相当于 Perl 的 s/// 运算符?

    我有一些代码正在从 Perl 转换为 Java 它大量使用了正则表达式 包括s 操作员 我已经使用 Perl 很长时间了 但仍然习惯 Java 的做事方式 特别是 字符串似乎更难使用 有谁知道或有一个完全实现的Java函数s 这样它就可以处
  • 如何只读取文件的第一行

    我已经用谷歌搜索了一段时间 但我找不到只读取文件第一行的函数 我需要读取文本文件的第一行并从中提取日期 Perl 新手 open my file lt filename txt my firstLine lt file gt close f
  • Perl 正则表达式匹配模式的多个实例并替换

    我有一个看起来像这样的字符串 abc 1 2 3 something here foo 10 6 34 somethingelse here def 1 2 another 我想将此字符串拆分为一个数组 其中包含 abc 1 2 3 som
  • 如何在 Perl 中找到正则表达式匹配的位置?

    我需要编写一个接收字符串和正则表达式的函数 我需要检查是否有匹配并返回匹配的开始和结束位置 正则表达式已经由qr 该函数还可能收到一个 全局 标志 然后我需要返回所有匹配的 开始 结束 对 我无法更改正则表达式 甚至无法添加 用户可能使用的
  • Web 开发中的 Perl [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 我可以在 VIM 或 Perl 中替换单个正则表达式中的多个项目吗?

    假设我有字符串 The Quick Brown Fox Jumps Over the Lazy Dog 我可以用一个正则表达式将其更改为 The Slow Brown Fox Jumps Over the Energy Dog 吗 目前 我
  • 如何使用 Perl 在 Unix 中获取文件创建时间

    如何使用 perl 在 unix 中获取文件创建时间 我有这个命令显示文件的最后修改时间 perl MPOSIX le print strftime d b Y H M localtime lstat 9 for ARGV file txt

随机推荐

  • 磁盘性能基本测试方法

    author skate time 2011 08 22 磁盘性能基本测试方法 dd if dev zero of tmp bs 1M count 10 用dd命令测试瞬间写的能力 iozone a i 1 i 0 c g 5M n 1M
  • PC电脑版微信聊天记录迁移方法

    微信电脑版自带的 备份与恢复 功能 只能把手机上的聊天记录 备份在电脑上 仅仅是备份 是不能在微信电脑版上查看刚备份的聊天记录的 备份后就可以删除手机上的聊天记录 需要的时候再用电脑版留存的备份恢复到手机上 适用场景 可自行琢磨 微信手机版
  • config:invalid signature

    之前服务器换了IP 啥都配置对了 就是IP没改过来 好了 又是花了半天时间排查问题 问题解决 微信config invalid signature 的其中一个错误就是ip地址问题 需在公众号后台 gt 基本配置 gt 设置IP白名单 欢迎关
  • Python time time()方法返回的是秒

    描述 Python time time 返回当前时间的时间戳 1970纪元后经过的浮点秒数 语法 time 方法语法 time time 参数 NA 返回值 返回当前时间的时间戳 1970纪元后经过的浮点秒数 实例 以下实例展示了 time
  • Linux目录操作命令

    1 查看目录命令 ls 用法 ls 选项 目录名 常用选项 a 显示所有文件 包含隐藏文件 l 显示长文件信息 案例 查看 user下的所有文件 ls a user ls 文件或目录路径信息 ls d 查看目录信息 ls l 文件或目录信息
  • Unity Shader入门精要文章目录

    前言 从今天开始 我将每天开始学习一些有关于Shader的知识 并把所学到的知识简化 写成文章来供大家参考或者学习 一方面是为了巩固知识 另一方面是我也没有找到什么系统的文章来学习Shader的知识 我的Shader学习大部分是参考了Uni
  • GDI+ 中路径类使用总结

    背景 路径是一系列相互连接的直线和曲线 由许多不同类型的点所构成 用于表示复杂的不规则图形 GraphicsPath 类表示 要绘制一组图形 如线条 矩形 多边形和曲线等 可以通过 Graphcis 类的 DrawPath 方法一次性绘制
  • 《Python进阶系列》二十六:面试题目:[lambda x: x*i for i in range(4)]

    quad quad 闲着无聊 看了道面试题 瞬间涨姿势了 特地做个总结 题目 题目如下 lst lambda x x i for i in range 4 res m 2 for m in lst print res 上述式子的输出结果 预
  • VirtualBox中出现 UUID have already exists : 修改 UUID

    VirtualBox中出现UUID have already exists 解决方法 要点 C Program Files Oracle VirtualBox VBoxManage exe internalcommands sethduui
  • C++——vector

    文章目录 vector的介绍 vector的使用 为什么vector不提供find 排序 sort vector的模拟实现 搭一个最简单的架子 构造函数和析构函数 尾插 尾删 operator 迭代器 insert erase 迭代器失效
  • [caffe安装]配置环境过程中出现的问题及解决

    今天要跑一下Convolutional Autoencoder for Loop Closure 轻量级神经网络闭环方法 caffe安好之后编译程序出现以下错误 Scanning dependencies of target deeplcd
  • React 之常用组件类型

    无状态组件 主要用于内部没有状态更新操作的组件 同构props进行基本的数据渲染或常量展示 该类组件职责单一 有利于组件的高复用 const PureComponent props gt div props list map txt ind
  • 金融市场概览

    文章目录 金融市场的功能 金融市场的分类 主要金融机构 中国金融市场概况 本文简要展现真实世界中的金融市场的面貌 介绍其基本结构 主要玩家 交易的主要资产 以及主要的业务形式 金融市场的功能 金融是通过交易金融资产来实现资金通融 很容易想到
  • Qt学习笔记3:Qt工程的目录结构

    经过前两篇的学习 已经可以使用Qt空项目模板创建自己的工程了 通过本篇的学习 整理一下如果使用Qt工程的目录结构 使项目更规范和容易管理 当前的目录结构 如图所示 这是前篇中创建的工程 只有main cpp和widget cpp widge
  • postman-接口批量执行、接口串联

    一 接口批量执行 1 点击postman左侧Collections下面有个添加文件夹图标 就可以创建测试项目 2 该目录下还可以创建子目录 进行测试用例的细分 3 创建测试用例 创建接口测试用例 即新建http请求 选择请求方式 写好url
  • 【AUTOSAR】CCP协议的代码分析与解读(四)----CCP协议数据下载和上传

    数据下载 DNLOAD DNLOAD指令负责将CRO中的数据下载到ECU中 起始地址为先前设定的MTA0 下载完毕后MTA0指针自增 自增的字数为下载的字节数 DNLOAD命令的CRO数据场结构 如下所示 位 置 类 型 描 述 0 字节
  • redis&mariadb + keepalived 高可用

    目录 机器准备 安装后服务 redis 安装redis mariadb 安装mariadb 启动和配置 互为主从同步配置 keepalived keepalived安装 修改主从 keepalived的配置 主从配置 mariadb监控 主
  • Java实现数据结构----插入排序直接插入排序

    七大基于比较的排序之插入排序 直接排序 直接插入排序 原理 主要步骤 1 先假设第一个元素已经排好序 2 然后依次取出还需要进行排序的下一个元素 也就是排序完成的元素后面的下一个元素 取出下一个元素 设为待插入元素 在已经排序的元素序列中从
  • MySQL 数据库性能优化之缓存参数优化

    https blog csdn net truelove12358 article details 51956356 博客 学院 下载 图文课 论坛 APP 问答 商城 VIP会员 活动 招聘 ITeye GitChat 写博客 赚零钱 传
  • [构思]依据verilog源文件中的关键代码及其注释,使用脚本命令生成代码文档

    verilog代码文档的内容需求 生成文档的实现思路 依据verilog源文件中的关键代码及其注释 使用脚本命令生成代码文档 跟Doxygen工具功能类似 针对的场景是工程里的代码没有文档 阅读不方便 注释没有章法 代码越长 阅读直观感受越