期末实验的记录

第一部分:本次实验的介绍

这次给大家带来三次实验,以下是本次实验的代码

第一个实验

来自课本教材上的p39图2.42
行为级描述电路代码语言

module example5(x1,x2,s,f);
input x1,x2,s;
output f;
reg f;
always @(x1,x2,s)
if (s==0)
f=x1;
else 
f=x2;
endmodule

第二个实验

来自Verilog HDL高级设计(第二版)
p159图6.16
锁存器的无意综合
第一个文件:or4实验原理文件

module or4_behav#(parameter word_length=4)(
output reg y,
input [word_length-1:0]x_in
);
integer k;
always@x_in begin:check_for_1
y=0;
for (k=0;k<=word_length-1;k=k+1)
if(x_in[k]==1)begin 
y=1;
disable check_for_1;
end 
end 
endmodule 

第二个文件:or4_;latch

module or4_behav_latch#(parameter word_length=4)(
output reg y,
input [word_length-1:0]x_in
);
integer k;
always@(x_in [3:1])  begin:check_for_1    //不完整敏感表
y=0;
for (k=0;k<=word_length-1;k=k+1)
if(x_in[k]==1)begin 
y=1;
disable check_for_1;
end 
end 
endmodule 

第三个实验

Verilog HDL仿真设计(第2版)
第十一章实验六

第一个文件:dds实验原理代码

module dds(clk,reset,div,choose,data);
input [5:0] div;
input [1:0] choose;
input clk,reset;
output [7:0] data;
wire [7:0]data;
reg [5:0] addr,address;
reg [5:0] i;
reg clkdiv;
function [7:0] rom;
input [5:0]address;
begin 
case (address)
     0 : rom = 0;
	  1 : rom = 4;     
	  2 : rom = 12; 
	  3 : rom = 21;     
	  4 : rom = 25; 
	  5 : rom = 21;   
	  6 : rom = 12;   
	  7 : rom = 4;   
	  8 : rom = 20; 
	  9 : rom = 20; 
	  10 : rom = 20; 
	  11 : rom = 20; 
	  12 : rom = 1; 
	  13 : rom = 1; 
	  14 : rom = 1; 
	  15 : rom = 1; 
	  16 : rom = 0; 
	  17 : rom = 5; 
	  18 : rom = 10;
	  19 : rom = 15;
	  20 : rom = 20; 
	  21 : rom = 25;
	  22 : rom = 30;
	  23 : rom = 35; 
	  24 : rom = 35; 
	  25 : rom = 30; 
	  26 : rom = 25; 
	  27 : rom = 20;
	  28 : rom = 15; 
	  29 : rom = 10; 
     30 : rom = 5; 	
     31 : rom = 0; 
	  default :rom = 10'hxx;
	  endcase
	  end
	  endfunction 
	  assign data = rom(address);
	  endmodule 
	  

第二个文件:tbs6实验测试代码

module tbs6;
reg [5:0] div;
reg [1:0]choose;
reg clk,reset;
wire [7:0] data;

initial 
begin 
clk=0;reset=1;div=1;choose=0;
#4 reset=0;
#4 reset=1;
#1000 choose=1;
#1000 choose=2;
#1000 choose=3;
#1000 $stop;
end

always #5 clk=~clk;
dds dds(clk,reset,div,choose,data);

endmodule 

第二部分:实验的操作介绍

第一个实验:行为级语言的代码描述

第一个实验的操作:行为级描述语言电路的代码详情
第一步:将文件加入modelsim的library中打开
在这里插入图片描述
第二步:实验的波形图仿真的,实验的频率100ns参数为10ps
在这里插入图片描述
我们会发现:我们的实验的结果是一个具有周期性变化的时序图
在这里插入图片描述
详细的介绍请进入我的视频中:课本实验的讲解

第二个实验:锁存器的无意综合

第一步:将文件在modelsim的library中打开一个文件or4
在这里插入图片描述
第二步:实验进行波形图的,100ns频率,各个数值采用的10*n的递增
在这里插入图片描述
第三步:采用第一步的方法打开我们or4_latch文件
在这里插入图片描述
此时,进行一个代码的对比
在这里插入图片描述
第四步:观察波形图的变化,进行仿真图的分析
在这里插入图片描述
详细介绍会在我的视频:锁存器的无意综合

第三个实验:实验六“信号发生器设计”

第一步:在modelsim的library中打开实验的dds实验原理文件
在这里插入图片描述
第二步:在对实验代码的分析后,我们进行实验仿真
在这里插入图片描述
第三步:采用第一步,打开我们的tbs6实验测试代码
在这里插入图片描述
第四步:对测试代码进行仿真,得到以下的仿真图
在这里插入图片描述
详细的讲解,请进入我的视频:信号发生器设计

第三部分:实验总结

通过本学期的系统的学习数字逻辑电路为期几天的设计已经结束,在这几天的学习、设计及信号发生器仿真过程中我感触颇深。使我对抽象的理论有了具体的认识。通过对函数信号发生器的设计,我还深刻认识到了“理论联系实际”的这句话的重要性与真实性。
同时在这次实验中,我明白了老师为什么总是让我们动手操作,这样可以让我们明白怎样用所学的知识去解决实际问题。为了这次的实验设计,我们不得不去复习前面的知识,并且还在网上开始查资料,偶尔还会和同学们进行讨论。这对我们对之前所学习的知识起到了又一次的温习以及应用。在实验中,代码的错误是最能让人崩溃的,但是这些问题在同学互帮互助下,解决之后又感到特别的喜悦,看到那些波形图出来的时候会觉得特别有成就感。其次,这次课程设计提高了我和同学之间合作水平,使我们配合更加默契,体会到成功来自于汗水,体会到成果的来之不易。
通过本次实践操作,也让我深刻明白:只有将课本上的理论知识,结合实践不断练习,不断总结提炼,反复思考实践中的经验教训,才能够真正消化为自己的知识。

实验的工具:本次实验采用的13.1quartusII、modelsim10.1d和modelsim10.7d

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值