[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gEDA: Problem with parametrized constant widths in VBS



Just for the heck of it, I pushed the same code thru Icarus Verilog and
Veriwell.  Both said that the IDLE=ws'h0 gave them heartburn.

Steve

Jimen Ching wrote:

> On Mon, 17 Apr 2000, Stephen Williams wrote:
> >ahvezda@seul.org said:
> >> With such definitions, the "state_reg = ADR;" statement results in
> >> setting state_reg to 3
> >   parameter        ws=3;
> >   reg [ws-1:0]     state_reg;
> >   parameter        IDLE = ws'h0, ADR = ws'h7, RD1 = ws'h6, RD2 = ws'h3,
> >                    WR1 = ws'h4, WR2 = ws'h5 ;
> >Just to clarify, you are saying that the subsequent statement
> >       state_reg = ADR;
> >       $display("state_reg = %b", state_reg);
> >
> >causes the output "state_reg = 011"? What happens if you replace "ADR = ws'h7"
> >with "ADR = 3'h7"?
>
> I get 7.  My question is, can a parameter be used as part of the symbols
> that make up the decimal_number terminal (YACC speak)?  According to the
> IEEE-1364, I am supposed to look for a 'unsigned_number' where 'ws' was
> used.  A parameter_identifier is considered a 'constant_primary' terminal.
> Thus, it is not a valid construct for a decimal_number.
>
> I think VBS is doing the right thing, and the code above is wrong.  Anyone
> have opinions?
>
> --jc
> --
> Jimen Ching (WH6BRR)      jching@flex.com     wh6brr@uhm.ampr.org

--
stevew@home.com         KA6S