码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 电力电子转战数字IC20220630day36——路科实验3


    要求1

     首先将package和tb这个模块分成两个文件来存放。遇到一个新的东西,以及读完代码后的一些不了解的知识点如下

    semaphore

    [SV]SystemVerilog Semaphore_sec 王的博客-CSDN博客SemaphoreSemaphore是一个SystemVerilog内置类,用于对共享资源的访问控制和基本同步。信号量就像一个包含键数的桶。使用信号量的进程必须首先从bucket中获取一个键,然后才能继续执行。所有其他进程必须等待,直到有足够数量的键返回到bucket。假设有两个进程试图访问一个共享内存区域。其中一个进程试图写入,而另一个进程试图读取相同的内存位置。这导致一个不可预测的结果。信号量可以用来克服这种情况。Semaphore 语法semaph...https://blog.csdn.net/qq_39876540/article/details/124421896

    mailbox

    SystemVerilog教程之Mailboxes - 知乎Mailboxes是一种在进程之间交换消息的机制。数据可以通过一个进程发送到Mailboxes,然后由另一个进程获取。 数据可以是任何有效的systemVerilog数据类型,包括类class数据类型。 SystemVerilog提供以下使用邮箱的…https://zhuanlan.zhihu.com/p/87845018

    Mailboxes是一种在进程之间交换消息的机制。数据可以通过一个进程发送到Mailboxes,然后由另一个进程获取。数据可以是任何有效的systemVerilog数据类型,包括类class数据类型。

    也就是线程之间的fifo

    【路科V0】systemVerilog基础17——线程的通信_桐桐花的博客-CSDN博客_sv中mailbox信箱mailbox线程通信的三个类型:eventsemaphoremailboxmailbox信箱,顾名思义,可以用来收发信息。在SV中,mailbox可以用来存放任何数据类型,也可以从信箱中读取这些数据信箱可以设置尺寸大小,防止存储数据过多,或者占用过多资源信箱存放数据的方式,是同FIFO一致的,即先存放进来的数据,也会被先读出信箱mailbox的内建方法//创建信箱: new ()//将信息写...https://blog.csdn.net/weixin_41788560/article/details/124119656

     assert断言

    SV之Assertions 断言_bleauchat的博客-CSDN博客_sv断言目录SV中的断言Building blocks of SVA SV断言中的内建块SVA Sequence 和 propertyImplication operator 关联操作SVA built in methodsdisable iff and ended constructVariable delay in SVA SVA中的可变延时多时钟Mul...https://blog.csdn.net/bleauchat/article/details/90415146简单看成if

    iff

    Systemverilog中的iff事件控制_小苍蝇别闹的博客-CSDN博客_sv中iff使用systemverilog已经有一段时间了,主要是其中的部分新特性能够简化代码的编写,比如interface、支持多维端口等。为了进一步深入学习systemverilog,最近抽空更广泛的学习了一些systemverilog的内容。本文记录一下Systemverilog中的事件控制和sequence控制相关内容的学习情况。1. 事件控制1.1 iffSystemverilog在@事件控制中添加了iff修饰词,只有当iff后的条件为真时,@事件才会触发。注意,iff可以在always和alwahttps://blog.csdn.net/yinyeyy/article/details/111086864

    event

    SystemVerilog: 事件控制event_ucanredo的博客-CSDN博客_system verilog的event参考文献:https://www.chipverify.com/systemverilog/systemverilog-eventevent和旗语semaphore以及mailbox都是用于线程间的通信(IPC),负责线程之间的数据交换和同步。EVENT事件是静态的同步对象句柄(可以像参数一样在子程序中传递),它用来同步多个并发的进程,比如某个进程等待着事件,而另一个进程则触发这个事件。几...https://blog.csdn.net/weixin_43249032/article/details/84035517

    首先来理清层次和结构 

    basic_test

    new函数将name给到父类中的new

    执行父类root_test中的do_config后

    分别对三个通道进行约束(数量,间隔,数据尺寸)

    root_test

    声明8个句柄

    拿到子类的new后,对所有的class进行例化(checker,3agent,3gen,mcdt_monitor),一共八个。

    将generator中的两个信箱的ch_trans,通过initiator传送给agent

    将checker的in信箱的mon_data_t,通过monitor传送给agent

    将checker的out信箱的mon_data_t,通过monitor传送给mcdt_monitor

    gen和run停下来的反馈?这两个task看不太懂

    3个agent、3个gen、mcdt_mon和checker同时run起来,出现gen_stop_e就停止gen

    3个通道的接口给到agent(通过set_interface),mcdt的接口给到mcdt_mon(通过set_interface)


    这里将结构分成数据处理的部分gen+init=agent,数据监测部分monitor=ch+mcdt的mon,比较数据部分checker

    agent

    对initiator和ch_monitor做了三件事:命名与例化(new),接口的连接(set_interface),运行起来(run)

    作为一个中间商

    generator

    例化两个信箱req_mb和rsp_mb(信箱的位置是在这,其他都是传送句柄(数据包)),信箱存放的是类(ch_trans)的句柄req和rsp
    根据最上面basic_test给出的约束条件,给出相应的ntrans个数据包trans,放入req和拿出rsp

    initiator

    命名new和连接set_interface

    run和drive:取出gen的req信箱中的req,用ch_write发送出去,复制req到rsp(克隆函数),点亮trans中的rsp(bit位),将rsp(句柄)给回到gen的rsp信箱

    ch_trans

    最底层,被传送的,这是一个数据包,包括数据+id+间隔,每个trans都有一定数量的数据及其通道id等,每个trans之间都有间隔

    上面initiator提到的克隆函数也在这里

    monitor

    ch_monitor

    new命名和接口set_interface

    存放data和id的信箱,如果输入端数据有效且ready,就放到mon_data_t,再放到信箱中

    mcdt_monitor

    同上,new和接口

    同样的信箱,如果mcdt输出端有效,就放到mon_data_t,再放到信箱中

    checker

    例化上面monitor中的信箱,也就是说上面只是句柄,这里才是信箱的位置

    一共例化3个in1个out,四个信箱

    先拿out的句柄,case对应3个id去取对应通道的句柄,比较数据,如果不一样,error+1,比较完comp+1

  • 相关阅读:
    Scanf 不安全报错问题
    一看就会的Chromedriver(谷歌浏览器驱动)安装教程
    c++ call_once 使用详解
    go 极简后台管理-二次开发
    COLMAP简明教程 重建 转化深度图 导出相机参数 导入相机参数 命令行
    实验四 循环结构程序设计
    DS18B20数字温度计 (一) 电气特性, 寄生供电模式和远距离接线
    怎样使用pdf转换器?一篇文章教会你
    H3C-IRF堆叠-VRRP双机热备-IPSecvpan
    使用 Elasticsearch 作为向量数据库:深入研究 dense_vector 和 script_score
  • 原文地址:https://blog.csdn.net/weixin_39668316/article/details/125547130
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号