实验四、在 Verilog HDL 中使用函数
更新时间:2023-06-03 09:09:01 阅读量: 实用文档 文档下载
- 数据库实验四推荐度:
- 相关推荐
实验四、在 Verilog HDL 中使用函数
一:函数源代码:
module tryfunct(clk, n, result, reset);
output[31:0] result;
input[3:0] n;
input reset, clk;
reg[31:0] result;
always @(posedge clk)
begin
if(!reset)
result=0;
else
begin
result=n*factorial(n)/((n*2)+1);
end
end
function[31:0] factorial;
input[3:0] operand;
reg[3:0] index;
begin
factorial=operand?1:0;
for(index=2; index<=operand; index=index+1)
factorial=index*factorial;
end
endfunction
endmodule
二:函数的测试代码:
`timescale 1ns/100ps
`include "tryfunct.v"
`define clk_cycle 5
module tryfunct_test;
reg[3:0] n,i;
reg reset, clk;
wire[31:0] result;
initial
begin
clk=0;
n=0;
reset=1;
#10 reset=0;
#10 reset=1;
for(i=0; i<=15; i=i+1)
begin
#20 n=i;
end
#10 $stop;
end
always #`clk_cycle clk=~clk;
tryfunct mod1( .clk(clk), .n(n),.result(result), .reset(reset) );
initial $monitor($time,,,"n=%d, reset=%b, result=%d", n, reset, result);
endmodule
三:Transcript显示结果:
Loading work.tryfunct_test
# Loading work.tryfunct
# ** Warning: (vsim-3009) [TSCALE] - Module 'tryfunct' does not have a `timescale directive in effect, but previous modules do.
# Region: /tryfunct_test/mod1
# WARNING: No extended dataflow License exists
add wave sim:/tryfunct_test/*
run
# 0 n= 0, reset=1, result= x
run
run
run
run -continue
run
run -continue
run
run -continue
add wave -r /*
run
run -continue
run -all
# 5 n= 0, reset=1, result= 0
# 10 n= 0, reset=0, result= 0
# 20 n= 0, reset=1, result= 0
# 60 n= 1, reset=1, result= 0
# 80 n= 2, reset=1, result= 0
# 100 n= 3, reset=1, result= 0
# 105 n= 3, reset=1, result= 2
# 120 n= 4, reset=1, result= 2
# 125 n= 4, reset=1, result= 10
# 140 n= 5, reset=1, result= 10
# 145 n= 5, reset=1, result= 54
# 160 n= 6, reset=1, result= 54
# 165 n= 6, reset=1, result= 332
# 180 n= 7, reset=1, result= 332
# 185 n= 7, reset=1, result= 2352 # 200 n= 8, reset=1, result= 2352 # 205 n= 8, reset=1, result= 18974 # 220 n= 9, reset=1, result= 18974 # 225 n= 9, reset=1, result= 171890 # 240 n=10, reset=1, result= 171890 # 245 n=10, reset=1, result= 1728000 # 260 n=11, reset=1, result= 1728000 # 265 n=11, reset=1, result= 19090643 # 280 n=12, reset=1, result= 19090643 # 285 n=12, reset=1, result= 58122076 # 300 n=13, reset=1, result= 58122076 # 305 n=13, reset=1, result= 134883669 # 320 n=14, reset=1, result= 134883669 # 325 n=14, reset=1, result= 25012577 # 340 n=15, reset=1, result= 25012577 add wave sim:/tryfunct_test/*
add wave sim:/tryfunct_test/*
# Compile of tryfunct_test.v was successful.
# Compile of tryfunct.v was successful.
# 2 compiles, 0 failed with no errors.
add wave sim:/tryfunct_test/*
四:测试波形如下图所示:
正在阅读:
钢结构柱加工制作施工方案03-06
川环函〔2016〕1400号 关于印发《四川省核技术利用辐射安全监督检查大纲(2016)》的通知03-11
江苏省海门市麒麟中学1990—2000届班主任及学生名单11-17
螺纹铣削宏程序03-12
运河区代理发表职称论文发表-电气工程电气自动化存在问题改进策04-07
最新北师大版 四年级数学上册第二单元 线与角教学设计与教学反思05-27
大纲与大纲解析的区别10-05
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 函数
- Verilog
- 实验
- 使用
- HDL
- 在FactoryTalk View Studio ME 6.0 中转换MER文件
- 2012届高考化学二轮专题复习定时精练(十一)
- 在企业文化建设动员会上的讲话
- 卫星导航定位算法与程序设计_第2课_软件工程方法概述
- 《刑事典型案例分析》期末论文
- 高三物理计算题训练
- 13 联通品牌战略规划
- 2014春最新人教小学PEP英语三年级下册全册教案
- Excel中根据出生日期计算年龄的公式
- 专业音响安装调试4
- 与设计、发包人、监理人等三建方的协调、配合措施
- excel2003上机练习题
- 普及康熙历史必备的五本书
- 有理数加减混合运算(2)
- 刑事科学技术模拟试卷4合1
- 初中英语语法练习题
- 优质石油套管的生产与开发
- TEWL测试结合人体斑贴试验预测皮肤刺激作用
- 如何做好建筑工程预结算
- 汕头礼仪、汕头标识,首选联谊礼仪标识