回覆列表
  • 1 # 使用者2458114238191884

    在“表示式”(expression)中,"<="作為邏輯比較運算子;在“語句”(statement)中,"<="作為非阻塞賦值的一部分。

    verilog中,一個語法結構不可能同時允許“表示式”和“語句”,如果某處可以出現表示式,那麼就不允許出現語句;如果某處可以出現語句,那麼一個單獨的表示式就不能出現在那裡。如果預期出現的是表示式,那麼其中的<=就解釋成邏輯比較運算子;如果預期出現的是語句,那麼其中的<=就解釋成非阻塞賦值的一部分,整個語句就是非阻塞賦值。

    例如,條件語句(conditionalstatement)的語法是:

    if?(?expression?)?statement_or_null?[?else?statement_or_null?](方括號內為可選部分),if後面的括號中就只允許表示式(expression),而else後面就只允許語句,或者留空(statement_or_null)。如果if後面的括號裡(預期出現的是表示式)填的是a<=1,那麼這裡的<=就解釋成邏輯比較運算子小於等於;而如果else後面(預期出現的是語句)出現b<=1,那麼這裡的<=就是非阻塞賦值的一部分。

    極端情況:

    if?(a?<=?1)

    ????b?<=?1;

    else

    ????b?<=?2;括號中的是表示式,而其餘的地方都是賦值

  • 中秋節和大豐收的關聯?
  • 我想做醫療器械的代理不知道需要什麼手續?