vivado的初使用-两位半加器

打开vivado 2017.4

选择Quick Start---create project 或者点击左上角的 File---New project创建新项目

创建工程名称与工程目录(不能含中文)

选择开发板类型

接下来,就可以编写我们的第一个程序啦

点击加号创建程序文件

点击create file,编辑程序名(不能包含中文,建议与模块名相同)

定义模块输入输出

我们要创建的是2位数的半加器,a和b是二位输入,sum是三位输出

port name:参数列表   Direction:输入/输出  Bus:不选中表示标量,长度为1;选中表示向量,使用的比特在后面标出。

1.编辑程序文件源码

module task1( 
   input [1:0] a,    
   input [1:0] b,   
   output [2:0] sum
    );    
   assign sum=a+b; // assign相当于连线,一般是将一个变量的值不间断地赋值给另一个变量,就像把这两个变量连在一起,所以习惯性的当做连线用,比如把一个模块的输出给另一个模块当输入。
endmodule

 

2.生成仿真文件

功能:·准备所有数据 ·测试程序文件正确与否

注意仿真文件不需要输入输出端口,所有数据均内部创建

打开仿真文件后是这样的:

编辑仿真文件:

module sim1(

    );
    reg [1:0] a1,b1;
    wire [2:0] sum1;
    initial//初始化模块,只执行一次
    begin //与end连在一起类似于大括号
       a1=2'b01;//2'b表示位宽,由于时序元件只能存储二值电平,因此计算位宽都要转成二进制来计算。如4'h0,它的0是十六进制的,表示二进制的4'b0000,所以是4位;16'h4012每个数字表示4位,所以共16位。
       b1=2'b10;
       #10 a1=2'b11;
       #10 b1=2'b01;
    end
    task_1 myadder(a1,b1,sum1);//“模块名 实例名(参数1,参数2,……)”(按照端口位置进行连接)“模块名 实例名 (.端口名1(参数1),.端口名2(参数2),……)”(按照端口名进行连接)
endmodule

点击Run Simulation运行仿真文件

图中的a1、b1、sum1表示各对象最终值

也可以通过以下两种仿真文件分别查看所有可能输入组合与随机输入组合

module sim2;
   reg[3:0] data;
   wire[1:0] a,b;
   wire[2:0] sum;
   
   assign a = data[3:2];
   assign b = data[1:0];
   initial
      data=4'b0000;
   always #10
      data=data+1;
   task_1 myadder(a,b,sum);
endmodule

 

module sim3;
   reg[1:0] a,b;
   wire[2:0] sum;
   always #10
   begin
      a={$random}%4;
      b={$random}%4;
   end
   task_1 myadder(a,b,sum);
endmodule

 

初次完结!zlt.lyf

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值