cocotb进行verilog的仿真

参考文献:

讲述了cocotb的代码,和verilog语言的对应关系:Limfx-专业的科研工作者内容发布平台

cocotb官网:Welcome to cocotb's documentation! --- cocotb 1.9.0 documentation

cocotb的思想:基于UVM,通用验证方法学Universal Verification Methodology, UVM,参考资料:UVM-什么是UVM方法学_uvm验证方法学-CSDN博客

https://en.wikipedia.org/wiki/Universal_Verification_Methodology

一、cocotb怎么将输入连接到dut,又怎么接收dut中的值

在cocotb的官网介绍中说明了,python(cocotb)给到DUT的输入端输入,然后给到监控输出端的输出。

dut也就是"Device Under Test。

二、一个简单的例子

在cocotb的github官网页面有一个简单例子:https://github.com/cocotb/cocotb?tab=readme-ov-file

参考的解析资料:cocotb使用指南(一)-CSDN博客

三​​​​、这段是什么意思

三、await函数的作用

四、def 和async def的区别

再次基础上,可以想到,def相当于是给定初始的输入和输出,有点线网类型组合逻辑的感觉。

async def就有点时序逻辑,在上升沿做判断。给定新的赋值等等。

五、找到引用库的位置,对照定义

如下,我知道

python语法

装饰器详解

python装饰器(详解)_python 装饰器-CSDN博客

讲解装饰器的视频:【Python 高级特性】装饰器:不修改代码,就能改变函数功能的强大特性_哔哩哔哩_bilibili

什么是装饰器:

参考自:python装饰器(详解)_python 装饰器-CSDN博客

开放封闭原则

开放:指的是对拓展功能是开放的

封闭:指的是对修改源代码是封闭的

复制代码
装饰器就是在不修改被装饰器对象源代码以及调用方式的前提下为被装饰对象添加新功能

如图定义了一个装饰器,传入一个函数func,接收到的形参是*args和**kwargs,也就是所有的参数照单全吃。加上了一个start_time 和end_time,两个相减,输出函数的执行时间,并且返回输出结果。然后返回return wrapper。

square是一个计算函数平方的函数,定义一个decorated_square(装饰后的square函数)来接收square的执行时间。然后给定参数10,执行就行。

最常用的方式就是给函数带个帽子,等价于上面的形式。

最最后,也就是我们cocotb中的使用形式了

格式化字符串f的使用

f'{f.__name__} is running.' 是一个 f-string,其中 {f.__name__} 是一个表达式,表示函数 f 的名称。

讲解*args和**kwargs的视频:

*args会接收传入的所有参数

【Python摸鱼读物】*:别只把它当乘号,还能打包和解包_哔哩哔哩_bilibili

**kwargs是两个**,传入的是一个字典,key是变量名称,value是变量对应的值

*可以用来解包这样本来person是一个对象,解包之后,解包成两个餐宿,就能传入greet函数

两个星号**用来解字典的包

导入需要的类和函数

导入类

导入函数

导入的绝对路径和相对路径还没有弄明白????

输入参数有none

说明参数可以不输入,默认是空列表。也可以输入会进行相应的处理

相关推荐
XINVRY-FPGA3 天前
XCVP1802-2MSILSVC4072 AMD Xilinx Versal Premium Adaptive SoC FPGA
人工智能·嵌入式硬件·fpga开发·数据挖掘·云计算·硬件工程·fpga
9527华安4 天前
国产安路FPGA开发设计培训课程,提供开发板+工程源码+视频教程+技术支持
fpga开发·fpga·安路·视频教程·培训·安路fpga
brave and determined4 天前
可编程逻辑器件学习(day36):从沙粒到智能核心:芯片设计、制造与封装的万字全景解析
fpga开发·制造·verilog·fpga·芯片设计·硬件设计·芯片制造
XINVRY-FPGA6 天前
XCVU9P-2FLGC2104I Xilinx AMD Virtex UltraScale+ FPGA
嵌入式硬件·机器学习·计算机视觉·fpga开发·硬件工程·dsp开发·fpga
brave and determined6 天前
可编程逻辑器件学习(day34):半导体编年史:从法拉第的意外发现到塑造现代文明的硅基浪潮
人工智能·深度学习·fpga开发·verilog·fpga·设计规范·嵌入式设计
stay_cloud7 天前
《Verilog语言与FPGA实现》课程实验
verilog·fpga·数码管
brave and determined8 天前
可编程逻辑器件学习(day30):数字电路设计中的流水线技术:原理、实现与优化
学习·fpga开发·verilog·fpga·数字电路·硬件设计·嵌入式设计
brave and determined8 天前
可编程逻辑器件学习(day29):Verilog HDL可综合代码设计规范与实践指南
深度学习·fpga开发·verilog·fpga·设计规范·硬件编程·嵌入式设计
brave and determined11 天前
可编程逻辑器件学习(day26):低主频FPGA为何能碾压高主频CPU?
人工智能·嵌入式硬件·深度学习·学习·fpga开发·云计算·fpga
brave and determined12 天前
可编程逻辑器件学习(day24):异构计算:突破算力瓶颈的未来之路
人工智能·嵌入式硬件·深度学习·学习·算法·fpga·asic