zoukankan      html  css  js  c++  java
  • ModelSim应用笔记

    一、 ModelSim 仿真波形保存与查看

    · 应用情况:在数字电路设计中(Verilog or VHDL),ModelSim是常用的仿真工具。当我们仿真大型的工程时,往往需要保留仿真波形,以便分析和以后查看。这就需要学习在ModelSim里面如何保存仿真波形及调用波形。

    · 学习网页: http://wjfblack.blog.163.com/blog/static/18005148420117240336431/

    · 步骤

    1. 仿真结束后,产生相应的波形。在wave界面,将仿真波形保存为 .do文件(信号文件)。
    2. 切换左边任务栏至“sim”,,点击保存,给将要保存的 .wlf文件(波形文件)命名。
    3. 保存,OK,关闭modelsim。
    4. 重启modelsim,open 之前保存的 .wlf文件,然后 load 对应的 .do文件。
    5. Enjoy

    · 备注:.do文件及.wlf文件最后名字保持一致,以便管理

    二、 ModelSim中寄存器组值查看工具

       在ModelSim中,当定义了寄存器数组(例如:reg [7:0] ram [0:127]),可以通过Memory List工具查看仿真时的值。步骤:

    1. 定义Reg类型,例如RAM
      module ram_1024Byte
      #(parameter DATA_WIDTH = 16, parameter ADDR_WIDTH = 8)
      (
      	input [(DATA_WIDTH-1):0] data,
      	input [(ADDR_WIDTH-1):0] read_addr, write_addr,
      	input we, clk,
      	output reg [(DATA_WIDTH-1):0] q
      );
      
      	// Declare the RAM variable
      	reg [DATA_WIDTH-1:0] ram[0:(2**ADDR_WIDTH-1)];
      
      	// Initiation
      	initial
      	begin
      		$readmemh("../dev/ram_init.dat", ram);
      	end
      	
      	// Read and Write Operation
      	always @ (posedge clk)
      	begin
      		// Write
      		if (we)
      			ram[write_addr] <= data;
      
      		// Read (if read_addr == write_addr, return OLD data).	To return
      		// NEW data, use = (blocking write) rather than <= (non-blocking write)
      		// in the write assignment.	 NOTE: NEW data may require extra bypass
      		// logic around the RAM.
      		q <= ram[read_addr];
      	end
      
      endmodule
      
    2. 仿真

      新建工程-》编译-》仿真(without optimization)

    3. View->Memory List,便可以查看RAM中寄存器的值

  • 相关阅读:
    C语言基础:C语言结构体(2)
    C语言基础:C语言结构体(1)
    C语言基础:C语言变量类型
    开源魔兽服务端代码托管地址大全
    新浪微博_第三期整理
    UITextField特性整理
    Xcode快捷键整理
    sleep和wait区别
    IOS7新特性-AVSpeechSynthesisVoice
    【OBJC类扩展之MD5加密】NSString+MD5
  • 原文地址:https://www.cnblogs.com/garylee/p/2772249.html
Copyright © 2011-2022 走看看