使用modelsim软件完成二选一数据选择器的仿真

[复制链接]
4546|8
 楼主| chrisyoung 发表于 2012-12-9 11:46 | 显示全部楼层 |阅读模式

//(方法一)
//---------------文件名 compare.v -----------------
modulecompare(equal,a,b);
inputa,b;
outputequal;
   assign equal = (a==b)? 1 : 0;  
   //a等于b时,equal输出为1a不等于b时,equal输出为0
endmodule
//(方法二)
modulecompare(equal,a,b);
inputa,b;
outputequal;
regequal;
   always @(a or b)
     if(a==b) //a等于b时,equal输出为1
       equal =1;
      else    //a不等于b时,equal输出为0
       equal = 0; //思考:如果不写else 部分会产生什么逻辑?
  
endmodule
//-------------------------------------------------------------
//----------测试模块源代码(方法之一)
`timescale1ns/1ns       // 定义时间单位。
`include  "./compare.v"   //  包含模块文件。在有的仿真调试环境中并不需要此语句。
                       //而需要从调试环境的菜单中键入有关模块文件的路径和名称
modulet;
   reg a,b;
   wire equal;
   initial              //initial常用于仿真时信号的给出。
     begin
       a=0;
       b=0;
     #100   a=0; b=1;
     #100   a=1; b=1;
     #100   a=1; b=0;
     #100   a=0;b=0;
     #100  $stop;      //系统任务,暂停仿真以便观察仿真波形。
     end
     
    compare m(.equal(equal),.a(a),.b(b));    //调用被测试模块t.m
   
endmodule   
//----------测试模块源代码(方法之二)-------------------------
`timescale1ns/1ns       // 定义时间单位。
`include  "./compare.v"   //  包含模块文件。在有的仿真调试环境中并不需要此语句。
                       //而需要从调试环境的菜单中键入有关模块文件的路径和名称
modulet;
   reg a,b;
   reg clock;
   wire equal;
   initial              //initial常用于仿真时信号的给出。
     begin
       a=0;
       b=0;
       clock = 0;      //定义一个时钟变量
     end
     always #50 clock = ~clock; //产生周期性的时钟
     always @ (posedge clock)   //在每次时钟正跳变沿时刻产生不同的ab
        begin  
             a = {$random}%2;   // 每次a0还是1是随机的。
             b = {$random}%2;   // 每次b0还是1是随机的。
        end
    initial
      begin  #100000   $stop;  end   //系统任务,暂停仿真以便观察仿真波形。
   
compare m(.equal(equal),.a(a),.b(b));    //调用被测试模块t.m
   
endmodule  
LongChip 发表于 2012-12-9 17:38 | 显示全部楼层
看来猴哥的忽悠是有成效的。
LongChip 发表于 2012-12-9 17:38 | 显示全部楼层
开始来人讲课了。
forgot 发表于 2012-12-9 18:02 | 显示全部楼层
LongChip 发表于 2012-12-9 17:38
看来猴哥的忽悠是有成效的。

少不了你们的捧场
xiao6666 发表于 2012-12-9 19:05 | 显示全部楼层
:)你的头像是谁啊?是一个人么?
沈伟平1 发表于 2012-12-9 19:34 | 显示全部楼层
xiao6666 发表于 2012-12-9 19:05
你的头像是谁啊?是一个人么?

小栗旬不知道吗??他的一部古惑仔电影
jahnson066 发表于 2012-12-9 20:46 | 显示全部楼层
新手学习下,
GoldSunMonkey 发表于 2012-12-9 21:09 | 显示全部楼层
GoldSunMonkey 发表于 2012-12-10 21:51 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部