[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: icarus verilog: IVL_LPM_CMP_EQ not supported by thistarget



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Thomas A.D. Riley wrote:
| It seems from here there are two ways to go:
|
|    1. somehow steal the implementation that synthesizes "/wire try1 =
|       (state_en == 5'd8)" into gates, or /
|    2. add code that generates valid EDIF netlist elements for LPM_COMPARE
|
| For our purposes either approach would work; the downstream tools I'm
| targeting should handle either output as long as it was valid EDIF
| describing a netlist of LPM modules.


| I'm sure Stephen has an opinion about which is the Right Thing to do.
| I'm also curious to know why sometimes the comparison gets synthesized
| and other times it's handed off for output as a module.

Yep, he does:-)

The Right Thing in this case is to make sure the LPM generator knows
how to emit LPM_COMPARE objects. Comparing with constants may sometimes
be optimized into something else, but comparison with variables will
not in general be substituted. So handling LPM_COMPARE is necessary
in any case.


| On Mon, 2004-10-11 at 23:53, Ming Deng wrote:
|
|>/It seems to me that continuous assignment in "wire" statement
|>
|>        wire try1 = (state_en == 5'd8);
|>
|>is tended to be compiled into BUF, INV and AND gates while procedural
|>assignment
|>
|>    out<=(in==5'b00101);
|>
|>or "if" statement in procedure
|>
|>    if (state_en == 5'b11111) begin
|>
|>are tended to be compiled into LPM_COMPARE and LPM_CONSTANT devices. But
|>unfortunately most LPM_COMPARE devices have  not been implemented yet.
|>
|>Ming Deng
|>
|>
|>
|>
|>Stephen Williams wrote:
|>
|>> -----BEGIN PGP SIGNED MESSAGE-----
|>> Hash: SHA1
|>>
|>> Ming Deng wrote:
|>> | I ran the sample file on Icarus Verilog 0.7, got the same result.
|>> |
|>> | After taking a briefly look into the code,  I found there were no any
|>> | comparators implemented for fpga-lpm. See the following snippet from
|>> | tgt-fpga/d-lpm.c
|>>
|>> The -tfpga -parch=virtex supports more stuff then the default
|>> LPM family. It's simply a matter of filling in the table that
|>> you discovered in the d-lpm.c source file.
|>>
|>> - --
|>> Steve Williams                "The woods are lovely, dark and deep.
|>> steve at icarus.com           But I have promises to keep,
|>> _http://www.icarus.com_         and lines to code before I sleep,
|>> _http://www.picturel.com_       And lines to code before I sleep."
|>> -----BEGIN PGP SIGNATURE-----
|>> Version: GnuPG v1.0.7 (GNU/Linux)
|>> Comment: Using GnuPG with Mozilla - _http://enigmail.mozdev.org_
|>>
|>> iD8DBQFBaqwgrPt1Sc2b3ikRAq9MAJ49FKkTlOMUtqBzLkbVwTWjavBsHQCeJyR2
|>> RuqyZMDZGAwyUe7on6KlAr8=
|>> =zBrG
|>> -----END PGP SIGNATURE-----/
|>


- --
Steve Williams                "The woods are lovely, dark and deep.
steve at icarus.com           But I have promises to keep,
http://www.icarus.com         and lines to code before I sleep,
http://www.picturel.com       And lines to code before I sleep."
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFBa/7grPt1Sc2b3ikRAuOXAKC2WBXCfERTJPXLGW7RGW2mj5pdZACgtEqs
SDRS5CAd8P6zu5JMsO3W8Ac=
=VA3O
-----END PGP SIGNATURE-----