- 博客(38)
- 资源 (1)
- 收藏
- 关注
原创 Systemverilog 第25-30章
接口端口列表中的网络或变量与接口内部的其他网络或变量之间的区别在于,只有列表中的网络或变量在实例化接口时才能通过名称或位置进行外部连接。SystemVerilog 中的接口结构正是为了封装模块之间的通信而专门设计的,它使得从抽象的系统级设计通过逐步细化直至更低层次的寄存器传输和结构设计视图的迁移能够实现顺畅进行。接口的目的是封装通信。如果接口端口连接的实际值是对一个接口的层级化引用或者是对一个层级化引用接口的 modport 的引用,则该层级化引用应指向一个接口实例,且不应通过数组化实例或生成块进行解析。
2025-11-29 23:40:09
800
原创 RISCV instr 第21-30章
本章介绍了 Zfa 标准扩展内容,该扩展新增了立即加载指令、IEEE 754-2019 的最小值和最大值运算指令、四舍五入整数运算指令以及静音浮点比较指令。对于 RV32D 架构,Zfa 扩展还新增了将双精度浮点值从整数寄存器传输到其他寄存器以及从其他寄存器传输到整数寄存器的指令;对于 RV64Q 架构,它则新增了针对四精度浮点值的类似指令。Zfa 扩展依赖于 F 扩展。
2025-10-18 11:36:40
213
原创 RISCV instr 第0-9章
FENCE.I 并不能确保在多处理器系统中,其他 RISC-V 运算器的指令读取操作能够观察到本地运算器的写入操作。因此,标准的 Linux ABI 已将 FENCE.I 从用户层面移除,并现在要求使用系统调用来维持指令获取的一致性,这使得操作系统能够在当前系统中减少执行 FENCE.I 的次数,并为未来改进的指令获取一致性机制提供向前兼容性。即时编译器在执行单个 FENCE.I 指令之前可能会生成大量的指令序列,并通过将翻译后的指令写入已知不在 I 缓存中的内存区域来分摊任何指令缓存窥探/无效化开销。
2025-10-09 15:05:37
363
原创 【vscode使用说明】
launch.json 文件用于配置调试器,定义如何启动和调试程序。它允许你在 VSCode 中设置断点、单步执行代码、查看变量值等。tasks.json 文件用于定义和配置可以在 VSCode 中运行的任务。这些任务通常包括编译代码、构建项目、运行脚本等。位置: 通常位于项目根目录下的 .vscode 文件夹中。位置:通常位于项目根目录下的 .vscode 文件夹中。
2025-08-16 11:02:57
876
原创 RISCV instr 第31-40章
标记为custom-2/rv128和custom-3/rv128的操作码是保留给rv128将来使用的,但将被避免用于标准扩展,因此也可以用于RV32和RV64的自定义指令集扩展。为此,我们将基本ISA (RV32I或RV64I)与选定的标准扩展(IMAFD、Zicsr、Zifencei)的组合定义为“通用”ISA,并使用指令集扩展的IMAFDZicsr_Zifencei组合的缩写G。与大多数商业ISA不同,RISC-V ISA设计清楚地将基本ISA和广泛适用的标准扩展从这些更专业的补充中分离出来。
2025-08-07 17:33:58
292
原创 RISCV -- Privilege
cycle和instret计数器用于支持用户模式的自剖析使用,其中用户可以两次读取计数器并计算增量,以评估用户软件的性能和行为。当前,这些计数器并没有按特权模式过滤,因此在处理trap(例如,缺页异常或中断)到权限更高的代码时,计数器会继续递增。对用户观察到的计数器值引入了不可预测的噪声。向用户模式泄露有关特权软件执行的信息。该建议通过对cycle和instret计数器引入特权模式过滤来解决这些问题。
2025-06-30 16:00:47
845
原创 RISCV-CBQRI
服务质量(Quality of Service, QoS)被定义为预先通过服务水平协议(Service level agreement, SLA)保证一个工作负载的最小端到端性能。工作负载可以是单个应用程序、一组应用程序、一个虚拟机、一组虚拟机或这些应用程序的组合。性能以每周期指令数(instruction per cycle, IPC)、服务工作延迟等指标的形式进行测量。可用缓存容量、内存带宽、互连带宽、CPU周期、系统内存等各种因素都会影响同时运行多个工作负载的计算系统的性能。
2025-06-26 10:15:53
873
原创 riscv-iommu
本文档描述了RISC-V IOMMU架构。这个版本,版本20250620,包括以下RISC-V IOMMU基本架构规范和标准扩展版本:印刷错误已更正,并已进行编辑更新。澄清了当两个阶段都是裸阶段时,转换大小是由实现定义的。阐明了队列的长度比它的条目数少1。本文档的第2章到第8章构成RISC-V IOMMU基本架构规范。第9章包含对基本体系结构的标准扩展。这个版本,20240901,包含RISC-V IOMMU基本架构规范和标准扩展的以下版本:一组印刷错误和编辑更新。
2025-06-26 07:58:52
1133
原创 ieee-5001 nexus protocol
Nexus5001论坛™(http://www.ieee-isto.org/Nexus5001/),以前被称为全球嵌入式处理器调试接口标准联盟(GEPDISC),成立的目的是为嵌入式控制应用程序开发急需的嵌入式处理器调试接口标准。本标准的内部名称是“Nexus”,仅在本文档中使用。目标是一个通用规范,解决调试接口的严峻挑战。可受益于此标准接口的应用包括汽车动力系统、数据通信、计算机外设、无线系统和其他控制应用程序。随着半导体和系统设计的不断进步,嵌入式应用程序正在使用性能更高的嵌入式处理器。
2025-06-24 16:28:32
818
原创 CLIC 学习
当xnxti CSR的级别高于保存的中断上下文(保存在cause中)并且高于相应特权模式的中断阈值时,软件可以使用xnxti CSR为相同特权模式下的下一个水平中断提供服务,而不需要产生中断流水线刷新和上下文保存/恢复的全部开销。到循环内存映射的中断区域的互连,并不需要添加到boot的特权模式。待决位位于字节的第0位。在CLIC模式下,将0写入clicintattr[i].shv将中断i设置为非矢量,在特权模式x下,对于所有异常和中断,hart会跳转到xtvec的高XLEN-6位中保存的陷阱处理程序地址。
2025-06-16 20:02:47
1125
原创 【systemverilog断言总结】
assert property书写要求先写完property,然后再断言对应的property,不可以有如下写法。定义形式参数,不需要指明对象,使得序列可以复用。2.1.2 序列中的形式参数。2.1.1 序列内建方法。2.6.1 重叠时序窗口。2.6 描述延迟的方法。
2025-05-27 14:11:43
346
原创 参数化功能覆盖率
的参数化写法允许通过传递参数来动态配置覆盖组的结构(如变量、bin 范围、类型等),从而提高代码的复用性和灵活性。参数化可以用于调整覆盖组的粒度、范围或逻辑,适用于需要根据不同测试条件或设计配置生成不同覆盖点的场景。假设需要覆盖一个总线信号的值域,但总线的宽度可能因设计而变化(如 8-bit、16-bit 等),可以通过参数化。构建可扩展的覆盖层次结构,例如覆盖协议头的字段时,字段长度可能因协议版本而异。在不同模块或 IP 中,信号的宽度或范围可能不同,参数化。当覆盖的信号类型可能不同时(如。
2025-03-11 09:18:04
1121
原创 uvm 环境问题
在仿真中加入stop_squence函数 会导致item_done must be paired with a previous call to get_next_item。如果不使用stop_sequence函数,使用seq.kill函数,会导致try_get_item twice without item_done的报错。
2025-02-28 14:39:10
202
原创 sequence概述
1、采用start_item();2、采用uvm_send() 的方式,直接发送出去就结束,不会等transaction结束后才往下走。
2024-12-18 15:43:05
264
原创 SV 断言
systemVerilog中bind使用方法_verilog 的bind用法-优快云博客SVA——与设计的连接(bind关键字用法)_sv bind-优快云博客
2024-07-16 08:57:30
210
原创 【uvm_reg_model】
rw.kind = UVM_READ;rw.addr = addr_t;temp_sqr = reg_mdl.default_map.get_sequencer();tr = temp_adapter.reg2bus(rw);temp_sqr.execute_item(tr);
2023-07-30 23:07:59
225
原创 【float浮点】专题
在一些情况会出现无效的浮点数,例如除0,例如负数求平方根等,像这类情况,获取到的浮点数的值是无效的。阶码全1,尾数非全0的表示无效数NaN。例如:求负数的平方根,例如0.0/0.0。NaN 即 Not a Number 非数字。INF 即 Infinite 无穷大。阶码全1,尾数全0表示无穷大INF。
2023-04-18 14:23:48
210
原创 【perl】专题
Perl next 语句用于停止执行从next语句的下一语句开始到循环体结束标识符之间的语句,转去执行continue语句块,然后再返回到循环体的起始处开始执行下一次循环。
2023-04-16 21:21:14
85
原创 【perl正则匹配】
可以使用 system() 函数执行 Unix 命令, 执行该命令将直接输出结果。默认情况下会送到目前Perl的STDOUT指向的地方,一般是屏幕。如果进程退出时,会向父进程发送一个CHLD的信号后,就会变成僵死的进程,需要父进程使用wait和waitpid来终止。在父进程中返回子进程的PID,在子进程中返回0。signal是发送的数字信号,9为杀掉进程。使用反引号运算符可以很容易的执行 Unix 命令。exec 函数执行完引号中的命令后进程即结束。,那么开始和结束将会指字符串的每一行:每一行的开头就是。
2023-04-16 21:17:01
1103
1
原创 【perl】【next】介绍
perl 其中 LABEL 是可选的,如果没有指定 LABEL,next 语句将返回到循环体的起始处开始执行下一次循环。如果使用next语句指定了label, 则执行将跳至使用label标识的下一个迭代。
2023-04-15 20:33:30
418
1
原创 【perl】【 split】使用
perl split会根据给定的模式拆分字符串,对于使用制表符、冒号、空格或任意符号分割不同字段数据的字符串来说,用这个操作符分解提取字段相当方便。只要你能将分隔符写成模式,就可以用split分解数据。
2023-04-15 20:16:01
1837
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅