1.[UVM源代码研究] 如何定制一款个性化的查询查询查打印格式
2.如何在博途软件中打印出程序的源代码?
3.如何把网页上不能复制的内容打印出来
4.5种方法全网任意免费复制?原来突破网页“禁止复制”这么简单!
[UVM源代码研究] 如何定制一款个性化的打印打印打印格式
使用默认的打印格式时,执行如下代码:
实际打印结果格式如下:
查看UVM源代码,源码源码我们首先定位`uvm_info宏定义的查询查询查位置:
这段代码对uvm_info/uvm_warning/uvm_error/uvm_fatal等宏进行了描述,实际上是打印打印对uvm_report_*函数的封装。以`uvm_info为例,源码源码rtthread 源码开发版分析其执行过程,查询查询查其中使用了全局函数uvm_report_enabled。打印打印
这里又调用了uvm_root中定义的源码源码uvm_report_enabled函数。需要注意的查询查询查是,在uvm_root中并未找到这个函数的打印打印定义。经过查找源代码,源码源码发现uvm_report_object中定义了uvm_report_enabled。查询查询查源码免杀区段
为什么要通过uvm_root实例调用这个函数呢?这需要了解uvm类库的打印打印继承关系。通过分析,源码源码我们发现通过调用uvm_root中uvm_report_enabled的函数,是因为uvm_root支持单例模式,可以获取uvm_root的单例句柄执行uvm_report_object中定义的自动继承的函数,避免了创建额外的实例。
接下来分析函数执行过程,原本简单的获取severity对应的verbosity阈值设置,却涉及了severity的override问题。我们可以通过调用函数或运行时传入参数来对severity进行override。
所有severity的override都记录在uvm_pool键值对severity_id_verbosities中。
severity和verbosity枚举类型定义如下:
回到uvm_report_object中行的linux qt 源码编译代码,可以认为调用`uvm宏传入的verbosity值如果大于设置的verbosity阈值,则uvm_report_enabled返回0。另外行还有一种函数返回0的情况。
关于uvm_action和verbosity的设置类似,不再展开。执行`uvm_info系列宏时,不仅需要考虑severity对应的verbosity_level的设置是否大于阈值,还需要考虑对severity设置的行为是否为UVM_NO_ACTION来判断uvm_report_enabled的返回值。
本质上,执行的是uvm_report_server中的compose_message函数,该函数规定了uvm_info系列宏的打印格式。
这个函数的大话归来源码参数filename和line是我们调用uvm_report_info传入的`uvm_file和`uvm_line。
`__FILE__和`__LINE__是systemverilog的编译指令,在编译阶段被替换:`__FILE__被替换为当前文件的文件名,以字符串形式存在;`__LINE__被替换为当前文件的行号,以十进制数字形式存在。
如果需要定义个性化的打印格式,可以通过从uvm_report_server继承一个类重写compose_message函数实现。需要注意的是,这里不能用set_type_override_by_type/name,因为uvm_report_server类没有使用uvm_object_utils注册,也没有实现get_type()函数,所以不能用传统的factory的override方法进行override。好在uvm_report_server已经预留好了子类server的大漠找图源码覆盖函数set_server。
这个静态函数可以直接使用类uvm_report_server进行调用。接下来,我们通过一个例子来看看如何实现个性化打印的定制。
首先,我们定制自己的report_server:
然后,在base_test中实例化并set_server:
现在,我们来看看最初那句打印的执行情况:
通过以上步骤,我们便实现了个性化的打印定制,该定制对4种severity同时生效。
如何在博途软件中打印出程序的源代码?
博途软件可以将程序导出到Word文档中,具体操作可以按照以下步骤进行:
1. 打开博途软件,打开需要导出的程序。
2. 在程序编辑页面中,选择菜单栏中的“文件”-“导出”-“导出为Word文档”。
3. 在弹出的导出对话框中,可以选择导出内容的范围和格式。
4. 如果需要导出程序的注释和说明,可以勾选“导出注释”和“导出说明”选项。
5. 点击“导出”按钮,选择保存的路径和文件名,并点击“保存”按钮即可。
6. 导出完成后,可以在保存的路径中找到导出的Word文档,打开查看。
需要注意的是,导出的Word文档中包含了程序的源代码、注释和说明,如果需要保护程序的机密性,可以考虑在导出前对程序进行加密或者删除敏感信息。此外,导出的Word文档中可能会存在格式和排版问题,需要根据需要进行调整和修改。
1
在项目树中选择工程项目
2
菜单“项目”--打印,打印机/文档布局/属性,选项如下
3
点击“打印 ”,弹出对话框,选择保存路径,填写文件名,点击“保存”
4
如果页数较多,请内心等待,最终保存如下
如何把网页上不能复制的内容打印出来
右键->查看源代码,找到你想要的内容那一段,复制,在桌面上新建一个文本文件,后缀名改为.html,编辑,把你复制的内容粘贴进去,保存.
好了,现在打开你的html文件就可以了.
5种方法全网任意免费复制?原来突破网页“禁止复制”这么简单!
当我们在网络上寻找资料时,常会遇到“禁止复制”的困扰,但其实突破这种限制并不难。这里有五种方法,让你轻松获取全网的免费内容:方法一:网页本地保存- 右键点击网页,选择“另存为”或使用快捷键"Ctrl+S",选择“网页,仅HTML”格式保存,随后打开文件即可复制。
方法二:网页打印预览- 适用于WebKit内核浏览器,如多数国产双核浏览器,通过打印预览功能,复制打印页面内容。
方法三:网页源代码查找- 使用"Ctrl+U"查看源代码,输入关键词搜索,或借助文本编辑器转换为文本。
方法四:查看审查元素- 在需要的文字处右键选择“审查元素”,查看源代码并复制。
方法五:识别- 截图后,通过QQ的文字识别功能或专业的文字识别软件,将上的文字转换复制。
以上方法虽因浏览器略有差异,但总体思路一致,让你在遇到“禁止复制”的网页时,总能找到解决之道。
2024-12-28 12:55
2024-12-28 12:47
2024-12-28 12:43
2024-12-28 12:28
2024-12-28 11:51
2024-12-28 11:36