zoukankan      html  css  js  c++  java
  • 关于复位赋初值的问题

        今天和师哥争论reset赋值和定义时赋值的问题,僵持不下想到真OO无双大神的一句:无code无真相。用code最能说明问题

        测试代码随便弄了个加法器:

     1 //date: 2014/09/15
     2 //version : Quartus II 14.0
     3 //designer : pengxiaoen 
     4 //function : check reset 
     5 
     6 module reset_test  (clock ,
     7                     reset ,
     8                     in_a ,
     9                     in_b,
    10                     in_c,
    11                     ou_d
    12                     );
    13   input clock ,reset ; 
    14   input [3:0] in_a ,in_b ,in_c; 
    15   output reg [5:0] ou_d ; 
    16   
    17   reg [4:0] temp ;//=5'd2 ;
    18   
    19   always @ (posedge clock)
    20     if(!reset)
    21         ;//temp <= 5'd0 ; 
    22     else 
    23         temp <= in_a + in_b ;
    24         
    25         
    26     always @ (posedge clock)
    27         if(!reset)
    28             ou_d <= 6'd0  ;
    29         else 
    30             ou_d <= temp + in_c ; 
    31             
    32  endmodule 

    此代码中有两处对temp进行赋值,下面来看rtl图示,首先看到的是reset中 temp<= 5‘d2的操作

    下面再看定义时初始化为1的图示

    看到了吧,QuartusII 14.0 不支持定义初始化

    这不禁让我想到曾经用modelsim做个一个M序列的工程,M序列数就是用一个reg存起来的,就是在初始化的时候赋值的。

    查到度娘上有人提问,遇到和我一样的问题,最后有人提出: 定义赋值要综合器支持—— 说明Q14.0不支持定义时进行赋值初始化,但是modelsim-altera是支持的。  同时,他们都支持reset赋值初始化。所以不建议使用定义赋值初始化的写法。

  • 相关阅读:
    黄金点游戏
    wc
    自动生成简单四则运算
    第三章 软件工程师的成长 案例分析
    Y2K问题
    我们自己写代码的时候,是否考虑到如何让代码容易于阅读和维护呢?
    关于软件工程师的思维误区问题
    JAVAEE 第七周
    JAVAEE 第六周
    JAVAEE 第五周
  • 原文地址:https://www.cnblogs.com/sepeng/p/3973163.html
Copyright © 2011-2022 走看看