数字ic设计入门必备——vim自定义模板调用与vcs基本仿真操作示例

moluoqishi moluoqishi     2022-12-12     619

关键词:

一、前言

  毕业论文答辩结束,闲下来写篇文章。芯片研发人员都在Linux系统下借助各种EDA工具和代码语言完成工作,因此提高代码开发效率,熟练运用开发工具是十分必要的。本文讲述VIM编辑神器的verilogHDL自定义模板调用以及VCS仿真软件的基本使用方式。

二、VIM编辑器自定义模板调用

  在之前的博文中谈到过GVIM编辑器中可以通过调用模板来生成重复性代码,但没有介绍自定义模板的方式。关于VIM的安装与配置详细内容,见参考文献1。这里主要用到VIM的用户配置文件:.vimrc(若没有新建该文件并编辑),我们在用户目录下使用ls -al命令可以看到该文件:

技术图片

  使用VIM编辑器打开VIM配置文件,以下部分是在文件底部自行添加的命令:

技术图片

  自定义模板的格式为    :ab <com> <code>   

  其中com是调用指令,code是当前指令生成的代码。我们新建一个.v文件测试下就能看出模板调用的妙处了。

编辑(插入)模式下,输入Shixu后按下回车生成:

技术图片

输入Zuhe后按下回车生成:

技术图片

输入Counter后按下回车生成:

技术图片

  这三个是最常用到的代码,三者相互组合可以完成很多功能了。但若状态或工作模式较多,一般采用状态机完成。输入FSM后按下回车生成:

技术图片

  在设计时,经常要根据数值范围设定变量的位宽。此时经常用到一个位宽计算到函数。输入Width_func后按下回车生成:

技术图片

  在设计文件里常用的重复性代码基本就这些了,可以根据自己的coding style灵活调整。接下来说说testbench部分。输入Test后按下回车生成:

技术图片

  里边包括了testbench中的时钟和复位相关的参数与信号定义。实际上时钟和复位信号的产生也是可以复用的。输入Clock_rst后按下回车生成:

技术图片

  通过使用上班自定义模板还没有灵活到可以自动生成例化模板,这一部分功能得借助其他脚本语言完成了,笔者还没有尝试过。

三、VCS软件仿真

  光说这个软件没什么意思,我们来举个栗子~设计一个计数器,输出位宽固定32位。当使能信号拉高则开始从0计数直到最大值后再次从0开始递增。设计代码counter.v:

技术图片

  测试代码 counter_tb.v:

技术图片

  VCS仿真大体分为三步:编译、仿真以及调试。编译命令:vcs *.v -debug_all 命令行界面会显示些信息:

技术图片

  之后文件夹内会生成simv文件,执行该文件进行仿真。./simv -gui   这里使用-gui选项打开DVE图形界面。

技术图片

  接下来的操作和常用的Modelsim差不多了。把要观测的信号添加到波形窗口:

技术图片

  点击左上角按钮运行仿真:

技术图片

  按下红色箭头所指位置观察全局波形:

技术图片

  按住鼠标左键拖动来局部放大数据波形,计数器与输出从0到19周期性递增,功能正确。

技术图片

  复杂的操作后续用到再学。

参考文献

1 vim 的安装及配置 - QIYUEXIN - 博客园 https://www.cnblogs.com/qiyuexin/p/6398606.html

VCS使用学习 - IC_SOC_ARM - CSDN博客 https://blog.csdn.net/ic_soc_arm_robin/article/details/44262063

VCS-DVE - 百度文库 https://wenku.baidu.com/view/f5f7ce8f69eae009591becc1.html

数字芯片实验室的个人空间 - 哔哩哔哩 ( ゜- ゜)つロ 乾杯~ Bilibili https://space.bilibili.com/87907395/channel/detail?cid=64692

(数字ic)低功耗设计入门——物理级低功耗设计&tobecontinued?

  前面学习了从系统级到门级的低功耗设计,现在简单地了解了一下物理级设计。由于物理级的低功耗设计与后端有关了,这里就不详细学习了。这里主要是学习了一些基本原则,在物理级,进行低功耗设计的基本原则是: ... 查看详情

数字ic设计自学入门难吗?如何快速入门呢?

首先数字IC设计自学还是比较困难的,数字IC设计,是不存在速成的。曾经有同学发现自己两三个月学完了几本书,最终也只是纸上谈兵。大多企业连面试资格都不会给,即使有一个面试机会也是费尽力气争取来的... 查看详情

(数字ic)低功耗设计入门

  低功耗设计这个专题整理了好久,有一个月了,有图有证据:                 然而最近一直有些烦心事、郁闷事,拖延了一下,虽然现在还是有点烦,但是还是先发表... 查看详情

模拟ic设计与数字ic设计的区别

整理一些搜到的网页http://www.elecfans.com/analog/20131008329061.html“模拟芯片设计的四重境界”http://bbs.eetop.cn/thread-21072-1-1.htmlhttp://blog.163.com/[email protected]/blog/static/13429833320103582823644/数字、模拟电路芯 查看详情

(数字ic)低功耗设计入门——门级电路低功耗设计优化

三、门级电路低功耗设计优化  (1)门级电路的功耗优化综述  门级电路的功耗优化(GateLevelPowerOptimization,简称GLPO)是从已经映射的门级网表开始,对设计进行功耗的优化以满足功耗的约束,同时设计保持其性能,即满足设... 查看详情

模拟ic设计和数字ic设计的区别,含薪资表

前言:本文主讲《数字IC设计与模拟IC设计的区别》,初衷在于希望对新入行或想入行的同学在方向选择时提供有效的参考。正文:IC设计是半导体集成电路产品设计的统称,又称芯片设计,按功能可分为:... 查看详情

关于fpga的数字图像处理的入门问题

...时候跟着参与老师的基于fpga的项目,因为专业原因,对数字信号处理方面也接触了。现在想针对fpga数字图像处理这个方向开始努力,本科毕业后也不打算考研了。希望路过的大侠可以给点建议,或者是入门资料就更好了,我有... 查看详情

veriloghdl概述与数字ic设计流程学习笔记

...述电子系统硬件结构和行为,是一种用形式化方法来描述数字电路和系统的语言。正是因为如此,硬件与软件不一样,他不像软件,你某天突发奇想,想实现某个的界面,搞搞代码就OK了。 查看详情

django入门--自定义过滤器与标签(代码片段)

为了让Django找到自定义的模板过滤器和模板标签,需要进行文件路径配置,配置方式分为APP目录下配置和项目路径下配置两种方式:1.在APP目录下配置:针对某个应用特定的自定义第一步:在APP目录下创建"templatetags"文件夹;第... 查看详情

thinkphp模板之变量输出、自定义函数与判断语句用法

参考技术A本文实例讲述了ThinkPHP模板之变量输出、自定义函数与判断语句用法。主要包括变量输出、自定义函数与判断语句三种用法。分享给大家供大家参考。具体分析如下:模板操作变量输出:快捷输出变量复制代码代码如下... 查看详情

元学习入门必备:maml(代码片段)

...实世界映射与交互的虚拟世界,具备新型社会体系的数字生活空间。说起来比较遥远,跟我们目前现实并不是特别直观,但是元学习(MetaLearning)这个概念已经被提出了很多年了,让我们一探究竟吧。今天给大家分... 查看详情

课程设计必备之数据库操作代码模板

课程设计必备之数据库操作代码模板日常总结知识点,加深自身理解,帮助他人学习,欢迎关注我!学计算机专业的大学生们必定会遇到各种各样的课程设计,C语言课程设计、C++课程设计、Java课程设计、数据库课程设计等等。C... 查看详情

com技术入门

一、IDispatch接口与Variant类型1.IDispatch的简介与作用a)自动化技术让解释下语音能够调用到自定义的接口,b)具有自动化功能的组件是支持IDispatch接口的COM组件c)IDispatch能够接收一个函数的字符串名称,并执行这个函数.d)解释性语言要... 查看详情

无法调用自定义模板标签

】无法调用自定义模板标签【英文标题】:Unabletocallcustomtemplatetag【发布时间】:2019-11-1619:48:28【问题描述】:在html页面中,我试图调用django自定义模板标签,但在我看来,它从未达到该模板标签功能。home.html页面%loadcustom_tags%%... 查看详情

自定义 Django 管理模板

】自定义Django管理模板【英文标题】:CustomizeDjangoadmintemplate【发布时间】:2018-09-0702:20:59【问题描述】:我尝试像这样自定义导航栏Base_site.html%blocknav-global%<imgclass="brand_img"src="%static\'images/ic_launcher.png\'%"width="50"height="50"alt="logo... 查看详情

arcgis微课1000例0045:arcgis制图模板的自定义与使用方法

...板当新建一个地图时,可保存为模板。将自己的作图模板设计好,如下图所示: 查看详情

数字ic前端设计究竟怎样?薪资前景如何?

数字ic前端岗位介绍:数字ic前端设计处于数字IC设计流程的前端,属于数字IC设计类岗位的一种。数字ic前端设计主要分成几种层次的设计:IPlevel,unitlevel,fullchip/SoClevel,gatelevel等。作为数字IC前端工程师... 查看详情

Shopware 5 在模板文件中调用自定义函数

】Shopware5在模板文件中调用自定义函数【英文标题】:Shopware5callcustomfunctionintemplatefile【发布时间】:2021-08-2718:47:38【问题描述】:我使用的是Shopware5.6.1版本。我创建了自定义插件。我想在模板文件中调用自定义函数,如下所示... 查看详情