张飞软硬开源基于STM32 BLDC直流无刷电机驱动器开发视频套件,👉戳此立抢👈

简谈FPGA verilog中的function用法与例子

FPGA学习交流 2018-08-10 13:42 次阅读

       大家好,又到了每日学习的时间了,今天我们来聊一聊FPGA verilog中的function用法与例子。
       
       函数的功能和任务的功能类似,但二者还存在很大的不同。在 Verilog HDL 语法中也存在函数的定义和调用。
       
       1.函数的定义
       函数通过关键词 function 和 endfunction 定义,不允许输出端口声明(包括输出和双向端口) ,但可以有多个输入端口。函数定义的语法如下:

function [range] function_id;
  input_declaration
  other_declarations
  procedural_statement
endfunction

       其中,function 语句标志着函数定义结构的开始;[range]参数指定函数返回值的类型或位宽,是一个可选项,若没有指定,默认缺省值为 1 比特的寄存器数据;function_id 为所定义函数的名称,对函数的调用也是通过函数名完成的,并在函数结构体内部代表一个内部变量,函数调用的返回值就是通过函数名变量传递给调用语句;input_declaration 用于对函数各个输入端口的位宽和类型进行说明,在函数定义中至少要有一个输入端口;endfunction为函数结构体结束标志。下面给出一个函数定义实例。

       定义函数实例:
function  AND; //定义输入变量
input A, B; //定义函数体
begin
  AND = A  && B;
end
endfunction

       函数定义在函数内部会隐式定义一个寄存器变量, 该寄存器变量和函数同名并且位宽也一致。函数通过在函数定义中对该寄存器的显式赋值来返回函数计算结果。此外,还有下列
       几点需要注意:
       (1)函数定义只能在模块中完成,不能出现在过程块中;
       (2)函数至少要有一个输入端口;不能包含输出端口和双向端口;
       (3) 在函数结构中, 不能使用任何形式的时间控制语句 (#、 wait 等) , 也不能使用 disable中止语句;
       (4)函数定义结构体中不能出现过程块语句(always 语句) ;
       (5)函数内部可以调用函数,但不能调用任务。

       2.函数调用
       和任务一样,函数也是在被调用时才被执行的,调用函数的语句形式如下: func_id(expr1, expr2, ........., exprN) ,其中,func_id 是要调用的函数名,expr1, expr2, ......exprN是传递给函数的输入参数列表,该输入参数列表的顺序必须与函数定义时声明其输入的顺序相同。下面给出一个函数调用实例。

       函数调用实例:
module comb15 (A, B, CIN, S, COUT);

input [3:0] A, B;
input CIN;
output [3:0] S;
output COUT;

wire [1:0] S0, S1, S2, S3;

function signed [1:0] ADD;

input A, B, CIN;

reg S, COUT;

begin
S = A ^ B ^ CIN;
COUT = (A&B) | (A&CIN) | (B&CIN);
ADD = {COUT, S};
end
endfunction

assign S0 = ADD (A[0], B[0], CIN),
S1 = ADD (A[1], B[1], S0[1]),
S2 = ADD (A[2], B[2], S1[1]),
S3 = ADD (A[3], B[3], S2[1]),
S = {S3[0], S2[0], S1[0], S0[0]},
COUT = S3[1];
endmodule

       在函数调用中,有下列几点需要注意:
       (1)函数调用可以在过程块中完成,也可以在 assign 这样的连续赋值语句中出现。
       (2)函数调用语句不能单独作为一条语句出现,只能作为赋值语句的右端操作数。

        今天就聊到这里,各位,加油。

收藏 人收藏
分享:

评论

相关推荐

正点原子手把手教你学FPGA系列视频

 正点原子推出的“开拓者“、”新起点”两款FPGA开发板功能强大,配有教科书级的文档教程;配套的视频分为工具篇
发表于 01-25 00:00 1449次 阅读
正点原子手把手教你学FPGA系列视频

基于FPGA的超声波测距系统设计详解

超声波测距是一种非接触式测量技术,具有定向性好以及对色彩、光照度、外界光线和电磁场不敏感的优点,当被....
发表于 03-22 08:42 0次 阅读
基于FPGA的超声波测距系统设计详解

FPGA视频教程之Quartus II的基础知识免费下载

本文档的主要内容详细介绍的是FPGA视频教程之Quartus II的基础知识免费下载内容包括了:1.....
发表于 03-21 16:54 10次 阅读
FPGA视频教程之Quartus II的基础知识免费下载

FPGA视频教程之QuartusII使用简介的详细资料说明

本文档的主要内容详细介绍的是FPGA视频教程之QuartusII使用简介的详细资料说明主要目的是:1....
发表于 03-21 16:54 13次 阅读
FPGA视频教程之QuartusII使用简介的详细资料说明

FPGA视频教程之SOPC builder的详细基础知识说明

本文档的主要内容详细介绍的是FPGA视频教程之SOPC builder的详细基础知识说明。主要目的是....
发表于 03-21 16:54 17次 阅读
FPGA视频教程之SOPC builder的详细基础知识说明

FPGA比ASIC有更短的设计周期和灵活性 非常适合需要推向市场的产品

随着技术发展和新产品新应用的出现,数码相机、手机、PDA等产品也在成为新兴的消费类电子产品。从二十世....
发表于 03-21 16:43 142次 阅读
FPGA比ASIC有更短的设计周期和灵活性 非常适合需要推向市场的产品

如何在设计套件中使用sumulink的指南?

有没有人知道教程的一些链接,如何在设计套件中使用sumulink的指南? 我希望找到一个简单的101教程,它将引导我在Simulink中创...
发表于 03-21 16:42 21次 阅读
如何在设计套件中使用sumulink的指南?

功耗与电路板的热阻有什么关系?

嗨, 我尝试使用XPE工具计算FPGA器件的功耗。 我把结果提到的'Total On-Chip Power'。 我注意到该值随着电路板热阻...
发表于 03-21 16:18 18次 阅读
功耗与电路板的热阻有什么关系?

FPGA视频教程之SignalTap II逻辑分析仪使用指南资料免费下载

本文档的主要内容详细介绍的是FPGA视频教程之SignalTap II逻辑分析仪使用指南资料免费下载....
发表于 03-21 15:43 9次 阅读
FPGA视频教程之SignalTap II逻辑分析仪使用指南资料免费下载

FPGA视频教程之NIOSII开发工具的详细资料简介

本文档的主要内容详细介绍的是FPGA视频教程之NIOSII开发工具的详细资料简介资料免费下载。 ....
发表于 03-21 15:43 15次 阅读
FPGA视频教程之NIOSII开发工具的详细资料简介

FPGA视频教程之Verilog基础的详细资料说明

本文档的主要内容详细介绍的是FPGA视频教程之Verilog基础的详细资料说明包括了:1.Veril....
发表于 03-21 15:02 13次 阅读
FPGA视频教程之Verilog基础的详细资料说明

CYCLONE IV FPGA想用JTAG口编程FLASH,提问关于MSEL的BANK区为1.8V时的配置问题

CYCLONE IV FPGA 想用JTAG口编程FLASH,MSEL所在BANK被用于DDR,IO电压为1.8V,手册的配置...
发表于 03-21 10:24 176次 阅读
CYCLONE IV FPGA想用JTAG口编程FLASH,提问关于MSEL的BANK区为1.8V时的配置问题

FPGA在人工智能时代的独特优势的全面分析

基于这些特点,我们在FPGA这项技术上押下重注,并且将其广泛的部署到了微软的云数据中心里。与此同时,....
的头像 电子发烧友网工程师 发表于 03-21 09:34 608次 阅读
FPGA在人工智能时代的独特优势的全面分析

FPGA进行图像处理的前景广阔 应用将会越来越大

用FPGA做图像处理最关键的一点优势就是:FPGA能进行实时流水线运算,能达到最高的实时性。因此在一....
发表于 03-20 16:28 60次 阅读
FPGA进行图像处理的前景广阔 应用将会越来越大

学习FPGA的小建议与总结分享

语法层面搞懂阻塞和非阻塞语句,以及Verilog语言的时序描述方法,把自己想象成编译器,尝试去编译自....
发表于 03-20 16:13 53次 阅读
学习FPGA的小建议与总结分享

FPGA 加三移位法怎么用vhdl语言写?

FPGA 加三移位法,有人用vhdl 语言写过吗
发表于 03-20 15:59 175次 阅读
FPGA 加三移位法怎么用vhdl语言写?

FPGA视频教程之怎样开始一个简单的FPGA设计

本文档的主要内容详细介绍的是FPGA视频教程之怎样开始一个简单的FPGA设计。
发表于 03-20 14:35 22次 阅读
FPGA视频教程之怎样开始一个简单的FPGA设计

FPGA视频教程之原理图输入方式的资料简介

图形(原理图)设计输入 使用Quartus 模块编辑器全功能原理图设计能力建立原理图设计的步骤 ....
发表于 03-20 14:35 16次 阅读
FPGA视频教程之原理图输入方式的资料简介

FPGA视频教程之如何使用NIOS II处理器

本文档的主要内容详细介绍的是FPGA视频教程之如何使用NIOS II处理器详细资料免费下载。
发表于 03-20 14:35 13次 阅读
FPGA视频教程之如何使用NIOS II处理器

FPGA视频教程之仿真基础的详细资料免费下载

本文档的主要内容详细介绍的是FPGA视频教程之仿真基础的详细资料免费下载包括了: 支持的仿真方法和特....
发表于 03-20 14:35 11次 阅读
FPGA视频教程之仿真基础的详细资料免费下载

FPGA视频教程之FPGA和CPLD与VHDL基础知识的详细资料说明

本文档的主要内容详细介绍的是FPGA视频教程之FPGA和CPLD与VHDL基础知识的详细资料说明。主....
发表于 03-20 14:35 16次 阅读
FPGA视频教程之FPGA和CPLD与VHDL基础知识的详细资料说明

FPGA教程之通向FPGA之路七天玩转Altera之基础篇的电子书免费下载

网上关于Altera的教程很多,可谓浩如烟海。大体来说有两类:一是,stepby step的指导如何....
发表于 03-20 13:40 15次 阅读
FPGA教程之通向FPGA之路七天玩转Altera之基础篇的电子书免费下载

探讨下工程师的能力与职场来讲述下我们工程师群体的五味杂陈的故事

相信大家都有时间观念,但是真正能执行到位的可能并没有那么多。互联网是一个快速发展的行业,RD的研发效....
的头像 电子工程技术 发表于 03-20 10:58 156次 阅读
探讨下工程师的能力与职场来讲述下我们工程师群体的五味杂陈的故事

可并行添加64位16位字数据有什么办法

大家好, 我正在使用最新的7系列FPGA,并且在我的一个应用程序中,我必须在最小的时间内添加64位16位字长的不同数据。 没...
发表于 03-20 07:35 30次 阅读
可并行添加64位16位字数据有什么办法

请问FPGA引脚分配时下图符号都代表什么意思?

在进行引脚分配时,看到如下图,不知道P、n、L、D、Q、C、三角形、五边形都代表什么意思,求大神解答,非常感谢...
发表于 03-20 06:35 16次 阅读
请问FPGA引脚分配时下图符号都代表什么意思?

FPGA前辈的经验分享

FPGA牛人的经验谈 这里我谈谈我的一些经验和大家分享,希望能对IC设计的新手有一定的帮助,能使得他们能少走一些弯路,欢...
发表于 03-20 04:24 26次 阅读
FPGA前辈的经验分享

Altera读取DDR3偶尔无法读取数据,求技术大佬

使用的自带的ip核,当avl_ready为1时,输入burstbegin和read_reaq无反应,偶发性bug,有没有大佬知道这种是什么情况呀 ...
发表于 03-19 19:59 103次 阅读
Altera读取DDR3偶尔无法读取数据,求技术大佬

FPGA vhdl语言 process for loop循环

process(a) begin for i in 1 to 27 loop 当a变化一次 for循环执行几次? ...
发表于 03-19 10:45 137次 阅读
FPGA  vhdl语言 process for loop循环

一种基于FPGA的相关测速系统设计浅析

尽管相关测速的运算量非常巨大,但是随着EDA技术的高速发展,大规模可编程逻辑器件CPLD/FPGA的....
发表于 03-19 08:45 36次 阅读
一种基于FPGA的相关测速系统设计浅析

CPCI6U-2DSP-C6678信号处理板的说明书免费下载

CPCI6U-2DSP-C6678 信号处理板基于 6U CPCI 规范,并且具有一个基于FMC 规....
发表于 03-19 08:00 21次 阅读
CPCI6U-2DSP-C6678信号处理板的说明书免费下载

FPGA烧写程序后短路

     我用的TPS54618给xilinx公司XC5VLX110提供IO3.3的电压,电路图是由webench生成的,发现的问...
发表于 03-19 07:34 72次 阅读
FPGA烧写程序后短路

英特尔谈如何与Nvidia争夺AI芯片市场

Nvidia不太可能很快放弃目前在AI培训处理器市场上的领先优势,特别是考虑到它也在该领域投入巨资。....
的头像 章鹰 发表于 03-18 21:07 1131次 阅读
英特尔谈如何与Nvidia争夺AI芯片市场

在人工智能时代 FPGA必将在更多应用领域得到更加广泛的使用

微软在数据中心里大规模部署和应用FPGA的最初实践,来自于他的“Catapult项目”。这个项目的主....
发表于 03-18 11:17 105次 阅读
在人工智能时代 FPGA必将在更多应用领域得到更加广泛的使用

微软中的FPGA发展历程盘点

"2014年,微软在计算机架构领域的顶会ISCA上发表了一篇名为“A Reconfigurable ....
发表于 03-18 11:12 97次 阅读
微软中的FPGA发展历程盘点

采用ARM和单片机的CPLD/FPGA高速数据处理系统

传统的数据采集系统一般采用单片机,系统大多通过PCI总线完成数据的传输。其缺点是数学运算能力差;受限....
发表于 03-16 09:00 121次 阅读
采用ARM和单片机的CPLD/FPGA高速数据处理系统

基于电路分割技术的查表法实现根升余弦脉冲成形滤波器FPGA设计

数字通信系统中,基带信号的频谱一般较宽,因此传递前需对信号进行成形处理,以改善其频谱特性,使得在消除....
发表于 03-15 14:15 108次 阅读
基于电路分割技术的查表法实现根升余弦脉冲成形滤波器FPGA设计

AI时代的摩尔定律的百度选择FPGA来部署的原因

会上,百度主任构架师欧阳剑提到,不同的应用场景,芯片需求也不尽相同。为此,去年百度发布了人工智能芯片....
发表于 03-15 14:02 80次 阅读
AI时代的摩尔定律的百度选择FPGA来部署的原因

安路科技连续翻倍增长,国产FPGA凭何发力?

我们知道FPGA市场长期被赛灵思、英特尔(收购Altera)、莱迪思等厂商把持。FPGA研发的技术含....
发表于 03-15 09:49 405次 阅读
安路科技连续翻倍增长,国产FPGA凭何发力?

如何使用XILINX FPGA进行片上嵌入式系统的用户IP开发

随着FPGA技术的发展,在FPGA上实现片上系统在技术上已经可能。基于FPGA片上系统开发已成为目前....
发表于 03-14 17:38 61次 阅读
如何使用XILINX FPGA进行片上嵌入式系统的用户IP开发

基于System Generator中实现算法的FPGA设计方案详解

由于数字调制信号越来越多地应用于通信信号处理领域,因此对数字信号调制识别的研究也越来越多。传统的调制....
发表于 03-14 10:32 104次 阅读
基于System Generator中实现算法的FPGA设计方案详解

基于FPGA的烟支检测系统设计方案浅析

烟支在生产过程中,由于多种因素的影响,可能会使成品烟的烟丝填充不均匀,烟支的某节烟丝过少或过多,从而....
发表于 03-14 10:18 106次 阅读
基于FPGA的烟支检测系统设计方案浅析

基于TDI-CCD的利用FPGA实现CCD图像数据整合功能的硬件系统设计

CCD是一种广泛应用于成像系统中的光学传感器,TDI-CCD利用延时积分的方法,通过对同一物体多次曝....
发表于 03-13 09:29 86次 阅读
基于TDI-CCD的利用FPGA实现CCD图像数据整合功能的硬件系统设计

如何设计一个高度灵活的可配置电源系统

如何为 100W 以上的大功率电子产品选择合适的电源?这个问题看似非常简单。可配置或可编程电源:可配....
发表于 03-12 16:12 57次 阅读
如何设计一个高度灵活的可配置电源系统

基于FPGA的加密算法设计方案详解

随着信息技术和网络化进程的发展,网络通信安全问题日益突出。现场可编程门阵列(FPGA)以其自身设计灵....
发表于 03-12 08:55 171次 阅读
基于FPGA的加密算法设计方案详解

一个基于FPGA和USB 2.0的高速CCD声光信号采集系统设计

在现代通信和雷达领域中,宽带、高增益、实时并行处理是现代接收机的重要标志。因而,这种具有高速并行处理....
发表于 03-12 08:45 119次 阅读
一个基于FPGA和USB 2.0的高速CCD声光信号采集系统设计

一种基于FPGA的智能营门防冲击系统设计详解

近年来,国际国内安全形势不容乐观,恐怖活动呈上升趋势。因种种问题冲击政府、军队、企业的事件逐年增多,....
发表于 03-12 08:35 186次 阅读
一种基于FPGA的智能营门防冲击系统设计详解

Altium Designer技术手册的详细资料合集免费下载

第一部分 1, Altium 历史,以及产品介绍,2, DXP 系统平台介绍,3, Altium D....
发表于 03-12 08:00 35次 阅读
Altium Designer技术手册的详细资料合集免费下载

Altium Designer官方中文手册的详细资料免费下载

Altium Designer入门使用手册,新手必备 Altium历史,DXP系统平台介绍,Alt....
发表于 03-12 08:00 79次 阅读
Altium Designer官方中文手册的详细资料免费下载

采用SoC FPGA虚拟目标能帮助工程师加速软件开发

公司2011年10月12号宣布可以提供业界的第一个虚拟目标平台,支持面向最新发布的SoC 器件立即开....
发表于 03-11 14:29 66次 阅读
采用SoC FPGA虚拟目标能帮助工程师加速软件开发

一种基于FPGA采用重采样技术的HD-SDI到SD-SDI的下变换实现设计

随着我国数字广播电视技术的日趋成熟,电视台采用高清数字串行信号(HD-SDI)下变换系统,目前大多数....
发表于 03-11 14:21 88次 阅读
一种基于FPGA采用重采样技术的HD-SDI到SD-SDI的下变换实现设计

65nm器件上量低功耗市场兴起 低功耗FPGA崭露头角

随着65nm工艺的应用以及更多低功耗技术的采用,拥有了更低的成本、更高的性能以及突破性的低耗电量,具....
发表于 03-11 14:16 189次 阅读
65nm器件上量低功耗市场兴起 低功耗FPGA崭露头角

基于FPGA的动态可重构技术在容错领域的应用研究浅析

太空中存在大量的宇宙射线和高能带电粒子,它们对星载电子系统的照射会导致系统出错,甚至永久损坏。其所造....
发表于 03-11 13:58 126次 阅读
基于FPGA的动态可重构技术在容错领域的应用研究浅析

国产FPGA现状堪忧 机遇当前就看企业能否抓住

“芯片投入产出比不高。国内投入不断加大,但实际效果并不明显,科技研发回报周期长,投资分散,导致投入产....
发表于 03-10 10:35 395次 阅读
国产FPGA现状堪忧 机遇当前就看企业能否抓住

随着电子的不断发展 FPGA在汽车中的应用越来越广泛

西门子事业部Mentor的Catapult HLS综合与验证高级产品营销经理Stuart Clubb....
发表于 03-10 10:22 113次 阅读
随着电子的不断发展 FPGA在汽车中的应用越来越广泛

Xilinx 7系列GTX具体的调试步骤

随着需求的多样化,FPGA的功能也进一步的增强。其中,高速收发器从本来是只有高端FPGA才有的模块,....
发表于 03-09 11:02 108次 阅读
Xilinx 7系列GTX具体的调试步骤

FPGA的CNN实现硬件加速需要考虑这些因素

网上对于FPGACNN加速的研究已经很多了,神经网络的硬件加速似乎已经满大街都是了,这里我们暂且不讨....
发表于 03-08 14:44 102次 阅读
FPGA的CNN实现硬件加速需要考虑这些因素

Verilog语法基础

Verilog HDL是一种用于数字系统设计的语言。用Verilog HDL描述的电路设计就是该电路....
的头像 发烧友学院 发表于 03-08 14:29 245次 阅读
Verilog语法基础

如何通过FPGA实现显示年、月、日、周、时、分、秒且能精准校时的数字时钟

4、5管脚支持旋转编码,4脚为公共端,3、5管脚分别为旋转编码器的A、B相输出,如上图所示,4脚接地....
的头像 电子发烧友网工程师 发表于 03-07 16:12 407次 阅读
如何通过FPGA实现显示年、月、日、周、时、分、秒且能精准校时的数字时钟

SF-EP1C开发板之基于SDRAM读写的串口调试实验

同步动态随机存取内存(synchronous dynamic random-access memor....
的头像 发烧友学院 发表于 03-07 15:12 183次 阅读
SF-EP1C开发板之基于SDRAM读写的串口调试实验

SF-EP1C开发板之基于M4K块的单口RAM配置仿真实验

随机存取存储器(英语:Random Access Memory,缩写:RAM),也叫主存,是与CPU....
的头像 发烧友学院 发表于 03-07 15:00 180次 阅读
SF-EP1C开发板之基于M4K块的单口RAM配置仿真实验

TMP411 ±1°C Programmable Remote/Local Digital Out Temperature Sensor

TMP411设备是一个带有内置本地温度传感器的远程温度传感器监视器。远程温度传感器,二极管连接的晶体管通常是低成本,NPN或PNP型晶体管或二极管,是微控制器,微处理器或FPGA的组成部分。 远程精度为±1 °C适用于多个设备制造商,无需校准。双线串行接口接受SMBus写字节,读字节,发送字节和接收字节命令,以设置报警阈值和读取温度数据。 TMP411器件中包含的功能包括:串联电阻取消,可编程非理想因子,可编程分辨率,可编程阈值限制,用户定义的偏移寄存器,用于最大精度,最小和最大温度监视器,宽远程温度测量范围(高达150°C),二极管故障检测和温度警报功能。 TMP411器件采用VSSOP-8和SOIC-8封装。 特性 ±1°C远程二极管传感器 ±1°C本地温度传感器 可编程非理想因素 串联电阻取消 警报功能 系统校准的偏移寄存器 与ADT7461和ADM1032兼容的引脚和寄存器 可编程分辨率:9至12位 可编程阈值限...
发表于 09-19 16:35 29次 阅读
TMP411 ±1°C Programmable Remote/Local Digital Out Temperature Sensor

TMP468 具有引脚可编程的总线地址的高精度远程和本地温度传感器

TMP468器件是一款使用双线制SMBus或I 2 C兼容接口的多区域高精度低功耗温度传感器。除了本地温度外,还可以同时监控多达八个连接远程二极管的温度区域。聚合系统中的温度测量可通过缩小保护频带提升性能,并且可以降低电路板复杂程度。典型用例为监测服务器和电信设备等复杂系统中不同处理器(如MCU,GPU和FPGA)的温度。该器件将诸如串联电阻抵消,可编程非理想性因子,可编程偏移和可编程温度限值等高级特性完美结合,提供了一套精度和抗扰度更高且稳健耐用的温度监控解决方案。 八个远程通道(以及本地通道)均可独立编程,设定两个在测量位置的相应温度超出对应值时触发的阈值。此外,还可通过可编程迟滞设置避免阈值持续切换。 TMP468器件可提供高测量精度(0.75°C)和测量分辨率(0.0 625°C)。该器件还支持低电压轨(1.7V至3.6V)和通用双线制接口,采用高空间利用率的小型封装(3mm×3mm或1.6mm×1.6mm),可在计算系统中轻松集成。远程结支持-55°C至+ 150°C的温度范围。 特性 8通道远程二极管温度传感器精度:±0.75&...
发表于 09-18 16:05 31次 阅读
TMP468 具有引脚可编程的总线地址的高精度远程和本地温度传感器