Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
16 years ago

what's wrong between QII6.1 and QII9.0

wire a_cs_n;

wire b_cs_n;

assign a_cs_n = (addr[19:18]==2'b01)? 1'b0 : 1'b1;

assign b_cs_n = (addr[19:18]==2'b00 && addr[17:16]==2'b10) ? 1'b0 : 1'b1;

assign dout = ({16 {a_cs_n}} | 16'haaaa ) & ({16 {b_cs_n}} | 16'hbbbb) ;

With QII 6.1,dout can get 16'haaaa or 16'hbbbb.But with Qii 9.0,dout cannot get 16'haaaa。

We don't change the code.But get the different result.

Why?

Thank you very much!

2 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    wire a_cs_n;

    wire b_cs_n;

    assign a_cs_n = (addr[19:18]==2'b01)? 1'b0 : 1'b1;

    assign b_cs_n = (addr[19:18]==2'b00 && addr[17:16]==2'b10) ? 1'b0 : 1'b1;

    assign dout = ({16 {a_cs_n}} | 16'haaaa ) & ({16 {b_cs_n}} | 16'hbbbb) ;

    With QII 6.1,dout can get 16'haaaa or 16'hbbbb.But with Qii 9.0,dout cannot get 16'haaaa。

    We don't change the code.But get the different result.

    Why?

    Thank you very much!

    --- Quote End ---

    Hi,

    I run a test with Quartus II 9.0 (Full version). I looks pretty in my project.

    I have the project attached. Maybe I made a mistake in the project ?

    Kind regards

    GPK
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Why don't you write:

    always @ (*) begin

    if (a_cs_n) dout <= 16'haaaa;

    if (b_cs_n) dout <= 16'hbbbb;

    end