verilog之function
verilog之function
1、基本作用
function,就是声明一个函数。与task的区别就是有参数。function的返回值就是函数名(可以设置位宽),输入值任意,均作为输入参数。代码块需符合verilog的语法规则。如放在assign块中的函数需要使用wire变量,always语句中的函数需要使用reg型的变量。不可在function内部加入赋值类型的标志。
2、实际例子
module fun_user (
input a,
input b,
input c,
output [3:0] d,
output [3:0] d2
); function [3:0] dataout;
input a;
input b;
input c;
dataout={a,b,c};
endfunction assign d=dataout(a,b,c); endmodule
3、反思小结
function函数在verilog中的作用显然不如高级语言。一方面可综合语句确实不适合做成函数,另外一方面verilog并不擅长高级逻辑。verilog在verilog中主要的应用是精简代码,减少相似度高的代码块。task则是减少相同的代码块。两者在verilog中都不是关键作用。
verilog之function的更多相关文章
- verilog中function的使用
函数的功能和任务的功能类似,但二者还存在很大的不同.在 Verilog HDL 语法中也存在函数的定义和调用. 1.函数的定义 函数通过关键词 function 和 endfunction 定义,不允 ...
- verilog的function使用
语法: function [range] function_id; input_declaration other_declarations procedural_statement ...
- $clog2(转)
(转http://www.xilinx.com/support/answers/44586.html) 13.2 Verilog $clog2 function implemented imprope ...
- 通过百度echarts实现数据图表展示功能
现在我们在工作中,在开发中都会或多或少的用到图表统计数据显示给用户.通过图表可以很直观的,直接的将数据呈现出来.这里我就介绍说一下利用百度开源的echarts图表技术实现的具体功能. 1.对于不太理解 ...
- verilog中的function用法与例子
函数的功能和任务的功能类似,但二者还存在很大的不同.在 Verilog HDL 语法中也存在函数的定义和调用. 1.函数的定义 函数通过关键词 function 和 endfunction 定义,不允 ...
- (原创)task和function语法的使用讨论(Verilog,CPLD/FPGA)
1. Abstract function和task语句的功能有很多的相似之处,在需要有多个相同的电路生成时,可以考虑使用它们来实现.因为个人使用它们比较少,所以对它们没有进行更深的了解,现在时间比较充 ...
- Verilog function的使用
function的用法 function的标准写法如下: function <返回值的类型或是范围> (函数名): <端口说明语句> //input xxx <变量类 ...
- verilog function功能函数写法
:] sm2tc; :] din; :] dp; :] dn; :] dout; begin dp = {'b0, din[14:0]}; dn = ~dp + 'b1; dout = (din[] ...
- system verilog中的跳转操作
在verilog中,使用disable声明来从执行流程中的某一点跳转到另一点.特别地,disable声明使执行流程跳转到标注名字的声明组末尾,或者一个任务的末尾. verilog中的disable命令 ...
- system verilog的一些总结(从其他博客复制来的)
转载自 http://blog.sina.com.cn/s/blog_e7fec2630101f5t9.html SystemVerilog是一种硬件描述和验证语言(HDVL),它基于IEEE 136 ...
随机推荐
- Ehcache 3.x 笔记
现在Ehcache版本已经到3.10了, 网上查到的大部分还是2.x版本的使用说明, 把基础用法记了一下, 以后有时间再翻译. 基础使用, 创建 CacheManager CacheManager c ...
- Ubuntu20.04下的ESP8266环境
硬件说明 ESP8266使用的是3.3V供电, 和Arduino不一样, ESP8266的I/O脚是不能防5V的, 连上就烧. 其输出只有12mA, 而Arduino是20-40mA. ESP8266 ...
- Laravel入坑指南(7)——中间件Middleware
Laravel框架中引入了"中间件"这个概念,笔者觉得不是太合适.这里的Middleware和Java Servlet中的过滤器(Filter)就是一个东西,但是想比之下Filte ...
- 简单了解HTTP、Websocket和Netty
前言 伴随着网络的快速发展,网络通讯越来越重要,通讯的快捷.安全.方便影响着用户的体验.本文将探讨这些技术的原理.特点以及在实际应用中的应用场景. 1.HTTTP(超文本传输协议) HTTP是一种传输 ...
- win32-读取控制台中所有的字符串
我们可以先读取字符串所占的行数,再乘以控制台的实际宽度 bool ReadFromConsole() { HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDL ...
- win32 - 使用Desktop Duplication API复制桌面图像
该代码来源于codeproject,经过测试发现,在屏幕处于旋转的情况下捕获的图像是黑色的.暂时没有找到原因. 代码开箱即用, #define WIN32_LEAN_AND_MEAN #include ...
- 【LeetCode二叉树#18】修剪二叉搜索树(涉及重构二叉树与递归回溯)
修剪二叉搜索树 力扣题目链接(opens new window) 给定一个二叉搜索树,同时给定最小边界L 和最大边界 R.通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>=L) .你 ...
- ABP模块签入GitLab后自动打包并推送到ProGet
# 1.添加一个名为下划线的解决方案文件夹 # 2.把解决方案根目录下的几个必要的文件添加到上述文件夹下 # 3.修改NuGet.Config,添加私有NuGet服务器的网址,并配置用户名和密码: A ...
- 【Azure事件中心】使用Python SDK(Confluent)相关方法获取offset或lag时提示SSL相关错误
问题描述 使用Python SDK(Confluent)相关方法获取offset或lag时, 提示SSL相关错误, 是否有更清晰的实例以便参考呢? 问题解决 执行代码,因为一直连接不成功,所以检查 c ...
- 【Azure 应用服务】azure function powershell 调用 New-AzADServicePrincipal -DisplayName $sp -PasswordCredential $spCred
问题描述 powershell 调用New-AzADServicePrincipal -DisplayName $sp -PasswordCredential $spCred,出现如下错误: Reso ...