可综合的SystemVerilog:参数化函数/任务
在Verilog中,参数化模块被广泛应用。参数可重新定义保证模块的可配置性及可复用性。但是,函数及任务并无法像模块一样被参数化,减弱了Verilog的描述化能力。
SystemVerilog提供了一种方式解决上述限制,在参数化的类(class)中使用静态(static)函数/任务。调用函数/任务时,重新定义类的参数,例程如下:
virtual class Functions #(parameter SIZE=32);static function [SIZE-1:0] adder (input [SIZE-1:0] a, b);return a+b;endfunction
endclassmodule top (input logic [63:0] a, b,output logic [63:0] y);always_comby = Functions #(64)::adder(a, b);
endmodule
参数化使我们只需要维护一个版本的函数/任务,而不是像原先因不同的数据类型,数据大小产生多个代码版本。该功能有两个使用限制:
- 类必须被声明为虚拟(virtual)类
- 类必须定义在$unit命名空间中
上述代码在Vivado 2014.3中可综合通过,但是Synplify-Pro 2013.03不支持virtual class关键字声明。
下篇预告:可综合的SystemVerilog:命名空间
转载于:https://www.cnblogs.com/wind330/p/5041775.html
可综合的SystemVerilog:参数化函数/任务相关推荐
- Chapter 6 : 综合数据和分组函数
Chapter 6 : 综合数据和分组函数 COUNT AVE SUM MAX MIN 分组函数必须要在group by 的情况下才可以使用奥 select count(*) from emp e; ...
- Jmeter之参数化函数助手_randomstring
上次讲到的是CSVread函数来获取测试数据的参数化,这次使用randomstring 有的时候有些参数是不断变化的,我们如果利用csv去做,还是要准备很多不同的数据,但是我们如果用randomstr ...
- matlab 函数 向量参数,Scipy integrate(quad,quadration,nquad)不能集成向量参数化函数?等效函数(MATLAB works)...
我正在将一些代码从MATLAB转换为python,并且正在努力获得一个函数,该函数以数组参数(作为参数)来使用Scipy进行集成.在 我已经将代码简化为一个在Scipy中产生相同错误的基本示例,而等效 ...
- jmeter参数化-函数助手—CSVRead
使用场景:不同的测试数据,做批量并发请求时,可以使用. 利用函数从文件里面读取数据,我们这里只讲解csv的 步骤: 准备好csv格式的数据 准备好接口,还是注册接口:参数有 mobilephone以及 ...
- SystemVerilog——任务和函数(Tasks and Functions)[转]
SystemVerilog从Verilog继承了任务和函数功能.任务和函数是两种用来定义子程序的方式.如果子程序需要消耗仿真时间,使用任务,否者子程序消耗仿真时间为0,则使用函数.另外,函数可以有返回 ...
- [文档].艾米电子 - 在综合中使用函数,Verilog
对读者的假设 已经掌握: 可编程逻辑基础 Verilog HDL基础 使用Verilog设计的Quartus II入门指南 使用Verilog设计的ModelSIm入门指南 内容 1 概述 在Veri ...
- 用模板函数与函数指针完成行为参数化
用模板函数与函数指针完成行为参数化 函数模板:参数类型.返回值类型不具体指定,用一个虚拟的类型代表,主要特点是通用性强. 函数指针:指向函数的指针. 行为参数化:功能函数作为参数,实现不同的功能只需要 ...
- SystemVerilog与功能验证
目录 一.功能验证流程 二.验证手段.验证技术.验证方法学 三.数据类型与编程结构 四.并发进程与进程同步 五.面向对象编程 六.虚接口 七.随机测试 八.继承与多态 九.功能覆盖率 十.断言 一.功 ...
- pytest实战--参数化parametrize+前置fixture
文章目录 参数化 parametrize 适用场景 一个典型的例子 前置fixture+参数化 适用场景 一个典型的例子 示例2 个人疑问? pytest既可以用来做单元测试,也可以用来做自动化接口测 ...
最新文章
- jdk12‘javac‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
- HashTable和HashMap的区别详解
- 神策 2020 数据驱动用户大会:新愿景 + 新定位 + 新舰队正式亮相!
- string.Format出现异常输入的字符串格式有误的解决方法
- 安卓吸顶+下拉放大_Android自定义scrollView实现顶部图片下拉放大
- Qt的Xml操作QDomDocument
- BP神经网络python代码实现
- 修改UEditor编辑器上传图片大小限制
- PageOffice 安装使用说明
- Echarts示例大全 Demo合集网站
- 5214页PDF的进阶架构师学习笔记,阿里巴巴内部Jetpack宝典意外流出
- 小朋友排队问题(树状数组)
- 永远不能懈怠,要记住,黎明之前,最为黑暗
- 阿里云服务器安装jdk8版本
- 学好计算机的用途,学电脑的用途是什么
- 数据预处理之数据清洗
- 虚拟机Centos,登陆之后又弹回到登陆界面,无法进入系统
- You are trying to add a non-nullable field 'code' to business without a default; we can't do that...
- Camera | 2.MIPI、CSI基础
- 一个优秀的RPC框架需要考虑的问题