Verilog语言里如何调用函数?

作者&投稿:米党 (若有异议请与网页底部的电邮联系)
Verilog程序中如何调用子模块~

verilog在调用模块的时候(也称模块实例化),信号端口可以通过位置或名称关联,其形式如下面的例子:

module and (C,A,B);
input A,B;
output C;
...
endmodule

and A1 (T3, A1, B 1); //A1为调用and这个模块的一个加法器,在对A1进行实例化时采用位置关联,T3对应输出端口C,A对应A1,B对应B1。
and A2(.C(T3),.A(A2),.B(B2));//在对A2实例化时采用名字关联,C是and 器件的端口,其与信号T3相连,A对应A2,B对应B2

quartus仿真是不支持不可综合逻辑的,用modelsim吧,或者把随机数写进rom中进行仿真。

$rondom为非可综合逻辑,只能用于仿真。
要想在FPGA硬件里面实现随机数,首先用rom的方法产生01随机数,然后在看你想要产生哪种分布的随机数,在用反函数的方法实现。

verilog中函数(function)都是有返回值的,在定义函数时如果你不声明返回值的类型和宽度,则默认为1个1位的reg型变量。
verilog中调用函数和C语言类似,格式为:函数名(实参1,实参2...)
例如你定义了一个函数die,此函数中声明为input的端口为a,b,实际调用时用到的变量为aa,bb,假设要把返回值赋给q,则调用语句为:
q=die(aa,bb);
需要注意的是不能把die(aa,bb)作为一条完整的语句,它实际相当于一个操作数。
——Medied.Lee

直接调用把,function


erilog敏感信号是什么意思
简单的说。。就是这个信号的变化,控制你程序是否进行。。这是我的理解。。

求扩展名大全.*
Netants 暂存文件 Netants .ani 动画鼠标 .arj 压缩文件 ARJ .avi 电影文件 Windows media Player .awd 传真文档 .bak 备份文件 .bas Basic 语言 Basic .bat DOS批处理文件 .bin MAC 二进制码文件 Stuffit Expander .bmp 图象文件 画图\/看图软件 .cab 压缩文件 Winzip .cdr Corel图画文件 Corel Draw .chk...

求助有关常用扩展名的知识
AWR Telsis数字储存音频文件扩展名格式 Axx ARJ压缩文件的分包序号文件,用于将一个大文件压至几个小的压缩包中(xx取01-99的数字)A3L Authorware 3.x库文件 A4L Authorware 4.x库文件 A5L Authorware 5.x库文件 A3M,A4M Authorware Macintosh未打包文件 A4P Authorware无运行时间的打包文件 A3W,...

文件的扩展名
ASF Microsoft高级流媒体格式文件 ASM 汇编语言源文件,Pro\/E装配文件 ASO Astound Dynamite对象文件 ASP 动态网页文件;ProComm Plus安装与连接脚本文件;Astound介绍文件 AST Astound多媒体文件;ClarisWorks“助手”文件 ASV DataCAD自动保存文件 ASX Cheyenne备份脚本文件;Microsoft高级流媒体重定向器文件,视...

电脑里所有的文件格式(类型?)
.bas Basic 语言 Basic .bat DOS批处理文件 .bin MAC 二进制码文件 Stuffit Expander .bmp 图象文件 画图\/看图软件 .cab 压缩文件 Winzip .cdr Corel图画文件 Corel Draw .chk Scandisk检察后制作的文件 可以删掉 .com DOS命令文件 自执行 .cpx Cryptapix加密图片文件 Cryptapix .cur 静态鼠标 ....

帮我!!帮我!!
LOG 日志文件LPD Helix Nut和Bolt文件LRC Intel可视电话文件LSL Corel Paradox保存的库文件LSP AutoLISP、CommonLISP和其他LISP语言文件LST 列表文件LU ThoughtWing库单元文件LVL Parallax Software的 Miner Descent\/D2 Level扩展LWLO Lightwave分层对象文件LWOB Lightwave对象文件LWP Lotus WordPro 96\/97文件LWSC Lightwave...

计算机上后缀名大征集
LOG 日志文件 LPD Helix Nut和Bolt文件 LRC Intel可视电话文件 LSL Corel Paradox保存的库文件 LSP AutoLISP、CommonLISP和其他LISP语言文件 LST 列表文件 LU ThoughtWing库单元文件 LVL Parallax Software的 Miner Descent\/D2 Level扩展 LWLO Lightwave分层对象文件 LWOB Lightwave对象文件 LWP Lotus WordPro 96\/97...

ISE调用modelsim仿真
1.运行modelsim-win64-10.1c-se.exe,可设置安装路径D:\\modeltech64_10.1c2.安装过程中会让选择是否“Install Hardware Security Key Driver”,选择yes,最后按要求reboot(貌似不重启也可以 )3.开始crack.把MentorKG.exe拷贝到:D:\\modeltech64_10.1c\\win644.使用命令提示符来执行,win+r运行...

efl文件是什么
LOG 日志文件 LPD Helix Nut和Bolt文件 LRC Intel可视电话文件 LSL Corel Paradox保存的库文件 LSP AutoLISP、CommonLISP和其他LISP语言文件 LST 列表文件 LU ThoughtWing库单元文件 LVL Parallax Software的 Miner Descent\/D2 Level扩展 LWLO Lightwave分层对象文件 LWOB Lightwave对象文件 LWP Lotus WordPro 96\/97...

博白县13436017418: Verilog语言里如何调用函数? -
称贫时泰: verilog中函数(function)都是有返回值的,在定义函数时如果你不声明返回值的类型和宽度,则默认为1个1位的reg型变量. verilog中调用函数和C语言类似,格式为:函数名(实参1,实参2...) 例如你定义了一个函数die,此函数中声明为input的端口为a,b,实际调用时用到的变量为aa,bb,假设要把返回值赋给q,则调用语句为: q=die(aa,bb); 需要注意的是不能把die(aa,bb)作为一条完整的语句,它实际相当于一个操作数.——Medied.Lee

博白县13436017418: verilog的function怎么用 -
称贫时泰: 1、task定义可以没有输入.function必须至少输入 2、function智能与主模块共用同一个仿真时间单位,而task可以定义自己的方阵时间单位 3、function要有返回值,返回一个值,而task不需要返回值.

博白县13436017418: Verilog怎么调用随机函数? -
称贫时泰: quartus仿真是不支持不可综合逻辑的,用modelsim吧,或者把随机数写进rom中进行仿真.$rondom为非可综合逻辑,只能用于仿真. 要想在FPGA硬件里面实现随机数,首先用rom的方法产生01随机数,然后在看你想要产生哪种分布的随机数,在用反函数的方法实现.

博白县13436017418: verilog 定义function模块 怎么调用 -
称贫时泰: 问题就在于你的那一句`include"adder.v",去掉之后不管你怎么放都可以了.理论上来讲,不同的module应该放在不同的文件内,但也不是绝对的,一般时候放在一起也不会有影响.`include"adder.v"这样的指令一般用于编译预处理,也就是所谓的宏定义的调用中,调用模块的话adder my_adder(cout,sum,a,b,cin);这样的调用指令就足够了,用不上`include

博白县13436017418: 求解:verilog语言中$fopen $fdisplayh $fclose三个函数的用法
称贫时泰: 1 文件可以用系统任务$fopen打开.用法有两种 $fopen("<文件名>"); <文件句柄>=$fopen("<文件名>"); 2$fdisplay是将数据写入制定的文件中.例如 H1=$fopen("文件名");%取一个文件的句柄 $fdisplay("数据");%将数据写入文件 3同上当你想关闭文件的时候就使用fclose fclose(<文件句柄>);%这里的文件句柄就是在$fopen中获得的文件句柄

博白县13436017418: Verilog里面有类似C语言中return的语法不? -
称贫时泰: quartus II里可以"混用"Verilog和SystemVerilog(应该说混出来的东西就是SV了)在设置里选SystemVerilog-2005就可以 不过return语句可能是不可综合的(我对SV不甚了解) 请你确定其用法再使用 verilog里的函数调用不需要return语句 被调用的函数执行完后自动回到上一级函数、任务或进程 我不清楚你说的"退出"是什么意思 正常情况是F1里进行40次循环后回到F2,F2再次调用F1 如此循环5次 最后到F2里执行调用F1后面的语句

博白县13436017418: verilog 模块调用语句的使用 -
称贫时泰: 如果这样写的话,p1,p2是底层端口,即内端口,而p1x他们是顶层端口,即外端口,还有一种写法是不写内端口,直接按顺序对应好:<模块名> <实例名>(p1x,p2x,.....);当然还是...

博白县13436017418: 用Verilog编写时,可以可以利用if语句调用模块 -
称贫时泰: 这个思路是错误的 调用其它子模块,不能有IF CASE等 思路是,把MODE变成模块M1 的输入

博白县13436017418: verilog的module中怎样循环调用另外几个module? -
称贫时泰: module topmod(); ...submod1 u1(...); //这里就是调用子模块submod2 u2(...); endmodulemodule submod1(...) ... endmodulemodule submod2(...) ... endmodule上述所有放主程序topmod.v里即可.子程序也可以拆分出去,分别命名为submod1.v, submod2.v.

博白县13436017418: Verilog hdl语言中:调用一个模块,如果我不想使用其中的一些输入或者输出接口,该如何调用? -
称贫时泰: 觉得应该是这样:HOUR()

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网