- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验三:verilog HDL中任务与函数的数字系统设计
班级: 通信二班 姓名: 孔晓悦 学号:
作业完成后,以班级为单位,班长或课代表收集齐电子版实验报告,统一提交.
文件命名规则如“通1_王五_学号”
一、实验目的
了解verilog HDL任务与函数的定义及格式
掌握函数与任务的定义与调用
掌握函数与任务在使用时的区别
掌握任务与函数的具体应用
二、预习要求
1.复习veirlogHDL行为语句。
2. 预习任务与函数的相关定义和格式要求。
3.简单电路系统设计的流程和方法。
三、实验基本概念
1、任务定义
任务定义格式:
task 任务名; //注意无端口列表
端口及数据类型声明语句;
其它语句;
endtask
任务名(端口1,端口2,……);
需要注意的是:任务调用时和定义时的端口变量应是一一对应的。
注意事项:
任务的定义与调用须在一个module模块内。
定义任务时,没有端口名列表,但需要紧接着进行输入输出端口和数据类型的说明。
当任务被调用时,任务被激活。任务的调用与模块调用一样通过任务名调用实现,调用时,需列出端口名列表,端口名的排序和类型必须与任务定义中的相一致。
一个任务可以调用别的任务和函数,可以调用的任务和函数个数不限。
2、函数定义
函数的目的是返回一个值,以用于表达式计算
函数的定义格式:
function 返回值位宽或类型说明 函数名;
端口声明;
局部变量定义;
其它语句;
endfunction
是一个可选项,如果缺省,则返回值为1位寄存器类型的数据。
注意事项:
函数的定义与调用须在一个module模块内。
函数只允许有输入变量且必须至少有一个输入变量,输出变量由函数名本身担任,在定义函数时,需对函数名说明其类型和位宽。
定义函数时,没有端口名列表,但调用函数时,需列出端口名列表,端口名的排序和类型必须与定义时的相一致。这一点与任务相同
函数可以出现在持续赋值assign的右端表达式中。
函数不能调用任务,而任务可以调用别的任务和函数,且调用任务和函数个数不受限制。
例题1 alutask
4、例题2 code_83
例题3 funct
四、实验内容
(一)典型习题的验证与仿真
设计要求:
1、指令译码器电路alutask进行调试和仿真。
2、将函数的两个例题83译码器和斐波拉切数计算的例题进行调试和仿真。
3、通过三个例题,掌握任务和函数的定义格式,使用的方法。
代码:
module alutask(opcode,a,b,c);
input [1:0] opcode;
input [7:0] a,b;
output reg [8:0] c;
always @(a or b or opcode)
begin
case(opcode)
2b00:my_and(a,b,c);
2b01:c=a|b;
2b10:c=a-b;
2b11:c=a+b;
default :c=9bx;
endcase
end
task my_and;
input [7:0] my_a,my_b;
output [7:0] my_c;
integer i;
for(i=0;i=7;i=i+1)
my_c[i]=my_a[i]my_b[i];
endtask
endmodule
仿真结果:
(二)函数与任务练习1---指令译码电路设计
设计要求:
1、在“三、实验基本概念”中例题1,进行改进。在目前4个分支的基础上增加两个分支,完成a*b的功能,利用移位相加的形式计算,两个分支分别用任务和函数设计。
2. QuartusII进行功能仿真,验证设计的正确性。
4、过程和结果(后面继续添加)
将在程序编辑、编译过程中的错误进行记录(截图或者文本),并错误指出来
(1)编译过程出现的问题总结
错误提示(系统提示) 解决方法 错误1 错误2 …….. 代码与仿真结果(结果截图)
代码:
module code_83(din,dout);
input[7:0] din;
output [7:0] dout;
function [2:0] code;
input [7:0] din;
casex (din)
8b1xxx_xxxx : code = 3h7;
8b01xx_xxxx : code = 3h6;
8b001x_xxxx : code = 3h5;
8b0001_xxxx : code = 3h4;
8b0000_1xxx : code = 3h3;
您可能关注的文档
- 高职院校学生管理与评价体系的研究与实现毕业论文开题报告.doc
- 长江上游地区产业集聚对FDI影响.pdf
- 高中化学可视化教学策略的研究-开题报告.ppt
- 高中数学124课堂教学模式实验的研究结题报告.doc
- 高中数学奥赛讲义:赋值法在函数方程中应用.doc
- 成功英语学习者在高级口译考试中听力考试策略个案研究.pdf
- 高中数学必修一集合含义及表示教案.doc
- 高中数学分层教学实验的研究报告.doc
- 高中数学课件-第二章-第13节-《定积分和微积分基本定理》.ppt
- 高中英语人教版必修二教学课件Unit-5--Section-Ⅲ--Learning-about-Language-&-Using-Language.ppt
- 人教版英语5年级下册全册教学课件.pptx
- 部编人教版2年级上册语文全册教学课件含单元及专项复习.pptx
- 人教版8年级上册英语全册教学课件(2021年8月修订).pptx
- 教科版(2017版)6年级上册科学全册课件+课时练.pptx
- 人教版PEP版6年级英语下册全册教学课件(2022年12月修订).pptx
- 部编人教版2年级下册语文全册课件(2021年春修订).pptx
- 人教版数学6年级下册全册教学课件(2023年教材).pptx
- 湘少版5年级下册英语全册教学课件(2021年春修订).pptx
- 人教PEP4年级下册英语全册教学课件 [2}.pptx
- 人教版6年级上册英语全册教学课件.pptx
文档评论(0)