NAND Flash Simulation Model设计总结

NAND Flash Simulation Model设计总结:
重点是如何建立这样的模型:
通常做ASIC设计所可以使用的Verilog语言的成分比Verilog能提供的要小。它必须是可综合的。而用于仿真的Verilog程序,就可以使用整个Verilog所提供的语言全集。下面介绍一些设计仿真模型的相关技术:
1.    task的使用
task便于封装一些通用的任务,这常常在Test bench中使用。
例如:
task    memory_read;
   input  [BLCK_BITS-1:0] block;
   input  [PAGE_BITS-1:0]  page;
   input  [COL_BITS-1:0]    col;
   output [DQ_BITS-1:0]    data;

   reg    [(ROW_BITS + COL_BITS) -1:0] addr;
   reg    [(ROW_BITS) -1:0]       page_addr;

   begin
      // chop off the lowest address bits
      addr = {block, page, col};
      page_addr = {block, page};

      data = mem_array[addr];
   end
endtask
    使用Task便于提供一个接口,这个接口可以被用来调用。

2.     如何模拟电路中的一些Timing
比如建立,保持时间
   每个Chip都有一些Timing之类的参数,一般在Chip的Datasheet中提供。为了模拟Chip的Timing特性。
   Io_buf <= #tREA_max status_register;
   #tWB_max;
    第一句,是在延迟#tREA_max后,输出status_register的内容到Io_buf去。
    第二句,是简单的延迟tWB_max。

3.     如何建立模型:
因为模型不必是可综合的,所以,可以采用Verilog中所有的语言成分。
我们的地址,命令和数据都是在We_n的上升沿进行的锁存。所以采用这样的结构来采样地址,命令和数据。

//
//   address state enable.这下面是接收地址的允许条件
//

assign address_enable = (~Cle && Ale && ~Ce_n && Re_n);

//   Address Latch, get the latched address on the rising edge of We_n

always @ (posedge We_n) begin // positive edge of We_n
    
    if (address_enable) begin : latch_address
        // Latch Column Address
        if (addr_start <= COL_BYTES && addr_start <= addr_stop && ~col_valid) begin : latch_col_addr

            case (addr_start)
                1 : col_addr[7 : 0] = Io[7 : 0];
                2 : col_addr[COL_BITS - 1 : 8] = Io[7 : 0];
            endcase

            if (addr_start >= 2) begin
                col_valid = 1'b1;
            end
        end // latch_col_addr

        // Latch Row Address
        if (addr_start >= (COL_BYTES +1) && addr_start <= addr_stop) begin : latch_row_addr
        
            case (addr_start)
                3 : begin
                    row_addr_last[active_plane] = new_addr;
                    row_valid = 1'b0; ####
                    new_addr[7:0] = Io[7:0];
                end
                
                4 : begin
                    new_addr[15:8] = Io[7:0];
                end
                
                5 : begin
                    new_addr[(ROW_BITS -1):16] = Io[(ROW_BITS -1 -16):0];
                    end
            endcase
                
            //   make sure interleaved ops don't allow the inactive die to continue when
            //   the address is out of it's range
            
            if
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
nor flash simulation models 模型 仿真 是指用计算机软件对nor flash进行仿真和模拟的技术。这种模型仿真可以帮助开发人员理解和评估nor flash的工作原理、性能和特性。 首先,nor flash是一种非易失性存储器,广泛应用于嵌入式系统中。在开发nor flash相关的应用时,模型仿真可以帮助开发人员对nor flash进行快速原型设计,减少开发周期和成本。 其次,通过nor flash模型仿真,可以模拟和验证nor flash的读取、写入、擦除操作,以及其它各种功能和特性。开发人员可以通过模拟各种应用场景,评估nor flash的性能、稳定性和可靠性。这样可以在实际开发之前,发现潜在问题并进行优化,提高产品质量。 此外,nor flash模型仿真还可以用于设计和优化nor flash控制器。通过模拟nor flash控制器和nor flash之间的通信,开发人员可以验证控制器的功能正确性和兼容性,确保对nor flash的访问可以得到正确的结果。 最后,nor flash模型仿真还可以帮助开发人员进行系统级的仿真和优化。通过模拟整个系统中的nor flash的行为和性能,可以评估系统的整体性能、响应时间和功耗等指标,提高系统的效率和性能。 总而言之,nor flash模型仿真是一个重要的工具,可以帮助开发人员更好地理解、评估和优化nor flash的性能和功能,缩短开发周期,提高产品质量和性能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值