微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > ddr3 mig 的仿真中遇到的疑问

ddr3 mig 的仿真中遇到的疑问

时间:10-02 整理:3721RD 点击:

问题1:always @(posedge clk) occ_cnt_r <= #TCQ occ_cnt_ns;
这种我知道是在仿真中才会生效?但是为什么要延时呢?延时了 仿真和 真实的布局布线的结果 不就不一致了吗? 请问,仿真中延时的作用是什么?
问题2:
`ifdef MC_SVA
  rd_data_buffer_full: cover property (@(posedge clk) (~rst && rd_buf_full));
  rd_data_buffer_inc_dec_15: cover property (@(posedge clk)
         (~rst && rd_accepted && free_rd_buf && (occ_cnt_r == 'hf)));
  rd_data_underflow: assert property (@(posedge clk)
         (rst || !((occ_cnt_r == 'b0) && (occ_cnt_ns == 'h1f))));
  rd_data_overflow: assert property (@(posedge clk)
         (rst || !((occ_cnt_r == 'h10) && (occ_cnt_ns == 'h11))));
`endif
这是什么语法啊?看不太懂

1,首先仿真是没有延时的,而布局布线后是有延时的;所以在代码中认为加入延时,就是为了在仿真中模拟实际应用的情况,但也仅仅是模拟,而不是真实;
2,首先你在代码中如果有如下语句:‘define MC_SCA,那么问题中的代码就会执行,否则不执行;就是说'ifdef...'endif是要和'define预定义宏命令配合使用的



   问题1 我理解了这个意思,`timescale 1 ps / 1 ps, parameter TCQ = 100,是在模拟布局布线延迟。谢谢!
   问题2:条件编译这个知道,只是下面的cover property 不知道那些语句有什么用?
rd_data_buffer_full: cover property (@(posedge clk) (~rst && rd_buf_full));
  rd_data_buffer_inc_dec_15: cover property (@(posedge clk)
         (~rst && rd_accepted && free_rd_buf && (occ_cnt_r == 'hf)));
  rd_data_underflow: assert property (@(posedge clk)
         (rst || !((occ_cnt_r == 'b0) && (occ_cnt_ns == 'h1f))));
  rd_data_overflow: assert property (@(posedge clk)
         (rst || !((occ_cnt_r == 'h10) && (occ_cnt_ns == 'h11))));



   这个 我也看不懂 没见过

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top