个人实验(抽题)

1.打开modelsim软件新建工程,

2.首次运行ModelSim时,在建立project 前,需要先建立一个工作库(library),一般将这个library命名为work,project一般都是在这个work下面工作的。File\new\library,弹出对话框是否创建work library,点击OK创建成功。

 

创建界面如下图

3.新建工程 File\new\project ,点击OK创建成功。

创建界面如下图

4.创建工程.。

4.1 导入工程测试文件。以BCD码加法器源码为方针文件,直接从quartus II 的workspace中导入代码,即Add Existing File(添加已存在文件)

如下图:

界面中Reference... & Copy... 两项,前者便于修改和调试代码,老司机可选;后者是直接将BCD.v 复制到 ModelSim_workSpace(ModelSim工作区)。

BCD码加法器源码如下: 分别使用assign 和 always 语句描述。

module BCD(A,B,Sum,Cout);
input [3:0]A,B;
output [3:0]Sum; 
output Cout;
 reg [3:0]Sum;
reg Cout;
wire [4:0]Temp;
assign Temp = A + B;
assign {Cout , Sum} = (Temp > 9 )? Temp +6 : Temp;
always@(A or B)
begin
{Cout , Sum} = A + B;
if({Cout , Sum} > 9 )
{Cout , Sum} = {Cout , Sum} + 6;
end
endmodule

4.2 创建工程中的被测试文件.


被测试文件代码如下:

`timescale 1ns/1ns    
module BCD_tb;        
  reg [3:0]addend1,addend2;   
  wire [3:0]sum;
  wire C;                     
  parameter DELAY = 100;      
  integer i,j;
   BCD U1( .A(addend1);
          .B(addend2);
          .Cout(C);
          .Sum(sum)
          );    
          initial       
          begin
    addend1 = 0;  
    addend2 = 0;
    for(i = 0;i < 10;i = i + 1)
    for(j = 0;j < 10;j = j + 1)
    begin
      #DELAY addend1 = i;
             addend2 = j;
    end
  end
  
  initial
  $monitor($time,,,"%d + %d = %d , carry = %d ",addend1,addend2,sum,C);
  endmodule

将被测试文件保存至 ModelSim_workSpace 自定义工作区内,此处文件名可不同与工程名。

4.3 在project区单击右键,如下图, 将被测试文件 BCD_TB1 添加至工程 project 中。

5.编译仿真文件,右键单击Compile/Compile All

.

6.开始仿真:

结果如下图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值