TED模拟电路敏捷设计系列教程3:开始写TED代码

[复制链接]
查看49708 | 回复0 | 2024-7-18 08:51:57 | 显示全部楼层 |阅读模式
这一节我们将讲述怎样开始写TED的代码,主要包括:


      编辑器和开发环境介绍

      如何使用pytest测试框架

      如何查看波形和其他类型文件

      如何输出调试信息。



    编辑器和开发环境



      编辑器:vscode

      编辑器插件(remote-development, pylance等)





    编辑器我们建议使用vscode,在安装必要的编辑器插件之后这个编辑器就会变成一个非常强大的开发环境。比如说remote-development这个插件,可以使得我们利用本地的vscode编辑器去编辑远程服务器上的这个文件并且可以执行远程服务器上的命令。pylance是一个专门为python语言定制的一个插件,也具有非常好的辅助功能。

2. 如何使用pytest测试框架

    TED下建议使用pytest执行命令,而非python。

    pytest: python下的测试框架



        测例文件和测例函数test开头,一个测例文件可以有多个测试函数

        pytest根据文件名和函数名前面的test关键字来识别并自动运行测例      





    在开发的时候我们建议使用pytest来执行我们的命令,而不是直接使用python。pytest是python下的一个测试框架,如果我们的测试文件和测试函数以test开头,那么pytest就会识别这些测试文件和测试函数。一个测试文件可以有多个测试函数,pytest根据文件名和函数名前面的test关键字来识别并自动运行测例。下面是一个例子,这里面我们看到的是一个叫做test_demo的python文件。在这个文件里面有一个叫test01的函数,那么pytest就会识别这个测试文件和这个函数并且去执行它。在这里面我们也可以看到在同一个目录下还有其他以test开头的文件,这些都是我们的测试文件。

    那么我们怎么跑测试呢?

     (1) 跑某个文件(如some_file.py)中的某个测例(如test1)

     如果我们可以去跑某一个测试文件中的某一个测例,那么使用的是"pytest -s -vv 某一个文件名::函数的名字"。这里的-s -vv是用来控制pytest的输出,如果我们测试单个文件的时候希望能够看到尽可能多的调试信息,这时候我们加上-s -vv。如果我们一下子需要测试很多函数或者很多个文件的话,那么输出的信息量太大,我们只关心他的测试是否通过,那么我们就可以让他去隐藏这个调试信息,这样的话就不要加这两个参数。
pytest-s-vvsome_file.py::test
(2) 跑单个文件中的所有测例
pytest-s-vvsome_file.py
(3) 跑整个目录下的所有测例
pytest -s -vv some_dir
(4) 并行跑测试
pytest -n 5 -s -vv some_dir
    我们也可以跑单个文件中的所有的测例,也可以跑整个目录下的所有的测例,并且我们可以并行地去跑这个测例。上面的-n 5就表示用五路的并行来去跑测试,该功能对于说我们要跑大量的测试的时候是非常有用的。




3. 如何查看波形和其他类型文件

    我们在vscode里面可以通过点击命令行终端上的文件路径来快速的打开相关的文件。我们在TED里面会尽可能地去输出相关的这个文件的完整的路径,使得我们直接点击这个文件名就可以打开。打开的方式是我们点击键盘上的CTRL键然后再用鼠标来去点击这个文件路径。下图这个例子里该测例会输出波形文件,我们点击这个波形文件,就可以打开右面这个图片。那么除了波形文件之外,我们也可以来查看其他的文件,比如说在同一个测例里面,我们有仿真的代码,这个仿真代码就会输出仿真网表,也会输出这个仿真的日志文件。那么我们点击键盘上的CTRL键,再加鼠标的左键点击这个网表就可以打开这个网表来进行查看。





4. 如何输出调试信息

    除了导出网表之外,我们也可以去查看调试信息的来源。为了让我们能够方便地查看调试信息的来源,我们在这个输出调试信息的时候不要使用这个python提供的print函数,而是使用TED提供的debug函数。这个函数会输出我们的调试信息,它所处的这个文件和它的行号。这样我们在命令行终端点击这个文件的路径,它就会快速跳到这个命令输出的这个位置。这个对于有大量输出调试信息的程序执行的时候是非常有用的,因为有的时候如果不能够去确定这个文件输出的路径的话,输出来的很多信息并不知道它是在哪里输出的。有的时候我们会输出大量无用的调试信息,当我们程序开发完以后,想把这个调试信息给删掉是非常困难的。有了这样一个功能,我们就可以快速定位到这个调试信息位置,如果这个调试信息是无用的,那我们就可以把它给删掉。



视频教程链接:

开始写TED代码
https://www.bilibili.com/video/BV1XG41127zn/?spm_id_from=333.788.recommend_more_video.0&vd_source=cf9a2b323a06471a98417c33bd120b89


阅读推荐

Analog IP is All You Need!

泛模拟EDA国内外课题组介绍

AI/ML to synthesize analog ICs: hope or hype?

国内外优秀半导体初创不详细统计

模拟自动化设计工具介绍1:TED

TED模拟电路敏捷设计系列教程1:模块,实例与节点

TED模拟电路敏捷设计系列教程2:模块端口的类型和连接算子

全差分运算跨导放大器设计实例分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则