实验题目 双口RAM的仿真与综合 宏单元调用

实验题目双口RAM的仿真与综合

      宏单元调用

一、       实验内容

1、双口RAM的端口有写时钟控制端口wrclock、写始能端口wren、数据输入端口data、写地址端口wraddress、读时钟端口rdclock、读地址端口rdaddress以及输出端口q;

2、在QuartusII软件环境下对双口ram进行宏单元调用,并对它进行综合

3、modelsim软件环境下编写激励模块,并对宏调用的双口ram进行仿真;

4、进一步熟悉QuartusII软件和modelsim软件的功能及环境。

二、       详细设计

设计步骤如下:

1、在QuartusII软件环境下对双口ram进行宏单元调用,并对它进行综合

2、modelsim软件环境下编写激励模块,并对宏调用的双口ram进行仿真,双口RAM的端口有写时钟控制端口wrclock、写始能端口wren、数据输入端口data、写地址端口wraddress、读时钟端口rdclock、读地址端口rdaddress以及输出端口q;

3、在modelsim软件环境下进行后仿真。

4、根据仿真结果分析,最后得出结论。

三、       仿真结果

(1)    在异步时钟脉冲下的结果如下:

对应的地址有对应的输出,可以看出网表文件加上相应的延时文件仿真速度变慢同时得到的结果更接近实际。

可以看出地址1,输入的是58,则输出的是58.

  不连续地址变换仿真结果如上图。

     连续地址变换所得仿真结果如上图。

总结:经过综合得出后仿真结果可以得出输出数据存在一定的时延,数据在输出时必须经过一定时间后才能有稳定的输出,可见前仿真比较稳定,后仿真有延时,更接近实际。由以上

RAM的端口有写时钟控制端口wrclock、写始能端口wren、数据输入端口data、写地址端口wraddress、读时钟端口rdclock、读地址端口rdaddress以及输出端口q;

     可以得出地址数共有8个,及3位二进制数。数据共8位二进制。

(2)查看设计对应的寄存器传输级视图

 



(3)布线情况



(4)传真查看图



四、  调试情况,设计技巧及体会

通过本次实验,我学会了宏调用双口ram,并学会对它设计激励并在modelsim软件环境下进行后仿真,通过本次实验,我更加熟悉了利用verilo语言来描述电路,同时熟悉了利用软件仿真电路的逻辑功能并进行验证和分析。使我对QuartusII有了初步的了解,同时让我了解到硬件可以用软件来完成,此软件的模拟仿真给我们学习数字电路有很大的帮助,形象的表达了信号的输出。通过本次实验,除modelsim软件仿真电路以外,我又学会了QuartusII仿真软件的使用,觉得两个软件各自有各自的优点。并学会使用QuartusII进行对设计模块进行综合并学会了后仿真。了解了在QuartusII软件的宏调用方法。使我对FPGA有了更深刻的了解。

五、       源程序清单

激励如下:

`timescale 1 ns/1 ns

module st_ram;

reg Rdclock,Wrclock,Wren;

reg [7:0] Data;

reg [2:0] Rdaddress,Wraddress;

wire [7:0] Q;

 

ram2ram(Data,Rdaddress,Rdclock,Wraddress,Wrclock,Wren,Q );

initial

    Wrclock=0;

   always

   #5   Wrclock=~Wrclock;

initial

    Rdclock=0;

   always

   #10  Rdclock=~Rdclock;  

 

initial

 begin

 Wren = 0;  Data = 8'd23; Wraddress= 3'd0; Rdaddress = 3'd0;

 #10  Wren = 1;

 #45  Wren = 0;

  #20Wraddress =  3'd1;  Rdaddress = 3'd1;

  #10Data = 8'd56;

  #10Wren = 1;

 #45  Wren = 0;

  #20Wraddress =  3'd2;  Rdaddress = 3'd2;

  #10Data = 8'd68;

  #10Wren = 1;

 #45  Wren = 0;

  #20Wraddress =  3'd3;  Rdaddress = 3'd3;

  #10Data = 8'd58;

  #10Wren = 1;

 #45  Wren = 0;

  #20Wraddress =  3'd4;  Rdaddress = 3'd4;

  #10Data = 8'd33;

  #10Wren = 1;

 #45  Wren = 0;

  #20Wraddress =  3'd5;  Rdaddress = 3'd5;

  #10Data = 8'd254;

  #10Wren = 1;

 #45  Wren = 0;

  #20Wraddress =  3'd6;  Rdaddress = 3'd6;

  #10Data = 8'd188;

  #10Wren = 1;

 #45  Wren = 0;

  #20Wraddress =  3'd7;  Rdaddress = 3'd7;

  #10Data = 8'd189;

  #10 Wren = 1;

 #45  Wren = 0;

  #20Wraddress =  3'd0;  Rdaddress =3'd0;

  #10Data = 8'd85;

  #10Wren = 1;

 #45  Wren = 0;

  #20Wraddress =  3'd4;  Rdaddress = 3'd4;

  #10Data = 8'd36;

  #10Wren = 1;

 #45  Wren = 0;

  #20Wraddress =  3'd6;  Rdaddress = 3'd6;

  #10Data = 8'd15;

  #10Wren = 1;

 #45  Wren = 0;

  #20Wraddress =  3'd1;  Rdaddress = 3'd1;

  #10Data = 8'd58;

  #10Wren = 1;

 #45  Wren = 0;

  #20Wraddress =  3'd5;  Rdaddress = 3'd5;

  #10Data = 8'd35;

  #10Wren = 1;

 #45  Wren = 0;

  #20Wraddress =  3'd3;  Rdaddress = 3'd3;

  #10Data = 8'd234;

  #10Wren = 1;

 #60  Wren = 0;

 end

 

endmodule

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值