Main Page | Report this Page
Computers Forum Index  »  Computer Architecture - FPGA  »  Antti Lukats: all my past live projects to be published...
Page 1 of 2    Goto page 1, 2  Next

Antti Lukats: all my past live projects to be published...

Author Message
Antti Lukats
Posted: Sat Feb 19, 2005 6:00 pm
Guest
Hi all

I re-found once again my own "Rules of Life" what I first published 21 aug
2001

1 No Promises.
2 Keep Promises.
3 Give away what you do not need.
4 Do what you want to do.
5 Be Happy.

In order to comply with Rules [5], [4] and specially [3] from the above
list, I am giving a promise (those braking rule #1) that I will make all
projects of my past live available as public domain. That includs all I can
publish (ie all that IP that belongs to me and is not covered by 3rd party
agreements), with the exception of maybe a few selected projects I am
actually working on at the moment.

In order to comply with [2] first project is made public today at:
http://gforge.openchip.org

there is OPB I2C IP-Core that uses the OpenCores I2C Core by implementing a
OPB 2 Wishbone adapter.

There seems to be still ongoing interest in OPB Wishbone wrappers so that
sounded like a good thing to start!

Antti

PS as per rule #2 there is no fixed timeline how fast I will upload the
projects, I started the process and will keep it going but it may take time
Smile
 
newman5382
Posted: Sat Feb 19, 2005 6:00 pm
Guest
Thanks Antti! You are a very generous person. There is a philosophy that
you reap what you sow. It will be interesting how this comes back to you.

-Newman

"Antti Lukats" <antti@openchip.org> wrote in message
news:cv7qqk$7le$02$1@news.t-online.com...
Quote:
Hi all

I re-found once again my own "Rules of Life" what I first published 21 aug
2001

1 No Promises.
2 Keep Promises.
3 Give away what you do not need.
4 Do what you want to do.
5 Be Happy.

In order to comply with Rules [5], [4] and specially [3] from the above
list, I am giving a promise (those braking rule #1) that I will make all
projects of my past live available as public domain. That includs all I
can
publish (ie all that IP that belongs to me and is not covered by 3rd party
agreements), with the exception of maybe a few selected projects I am
actually working on at the moment.

In order to comply with [2] first project is made public today at:
http://gforge.openchip.org

there is OPB I2C IP-Core that uses the OpenCores I2C Core by implementing
a
OPB 2 Wishbone adapter.

There seems to be still ongoing interest in OPB Wishbone wrappers so that
sounded like a good thing to start!

Antti

PS as per rule #2 there is no fixed timeline how fast I will upload the
projects, I started the process and will keep it going but it may take
time
:)

 
TonyF
Posted: Sun Feb 20, 2005 2:00 pm
Guest
Antti Lukats wrote:

Quote:
Hi all

I re-found once again my own "Rules of Life" what I first published 21 aug
2001

1 No Promises.
2 Keep Promises.
3 Give away what you do not need.
4 Do what you want to do.
5 Be Happy.

In order to comply with Rules [5], [4] and specially [3] from the above
list, I am giving a promise (those braking rule #1) that I will make all
projects of my past live available as public domain. That includs all I can
publish (ie all that IP that belongs to me and is not covered by 3rd party
agreements), with the exception of maybe a few selected projects I am
actually working on at the moment.

In order to comply with [2] first project is made public today at:
http://gforge.openchip.org

there is OPB I2C IP-Core that uses the OpenCores I2C Core by implementing a
OPB 2 Wishbone adapter.

Just noticed that in your VHDL code you don't use inout ports, resulting
in 200% bloating of a normal inout port declaration. I presume this is
because XST is too lazy to parse inouts so that we have to do some kind
of backend annotation alongside HDL programming, resulting in a not very
elegant code.

This is probably the price to pay for such a cheap tool, so I should not
really complain. Synplify will allow you to use inouts in sub modules,
but it costs much more than XST.

TonyF
 
Falk Brunner
Posted: Sun Feb 20, 2005 2:00 pm
Guest
"TonyF" <not@valid.address> schrieb im Newsbeitrag
news:Wp%Rd.1219$%F6.1075@newsfe4-gui.ntli.net...

Quote:
Just noticed that in your VHDL code you don't use inout ports, resulting
in 200% bloating of a normal inout port declaration. I presume this is
because XST is too lazy to parse inouts so that we have to do some kind

Nonsense. XST can handle inouts quite good.

Regards
Falk
 
TonyF
Posted: Sun Feb 20, 2005 6:00 pm
Guest
Falk Brunner wrote:

Quote:
"TonyF" <not@valid.address> schrieb im Newsbeitrag
news:Wp%Rd.1219$%F6.1075@newsfe4-gui.ntli.net...


Just noticed that in your VHDL code you don't use inout ports, resulting
in 200% bloating of a normal inout port declaration. I presume this is
because XST is too lazy to parse inouts so that we have to do some kind


Nonsense. XST can handle inouts quite good.

Only if they are at the top level. If they are in a sub-module, XST will
complain about not finding the *_I, *_O and *_T ports in your sub-module
(see my other post).

TonyF
 
newman5382
Posted: Sun Feb 20, 2005 6:00 pm
Guest
"newman5382" <newman5382@yahoo.com> wrote in message
news:GP1Sd.96890$qB6.89122@tornado.tampabay.rr.com...
Quote:

"TonyF" <not@valid.address> wrote in message
news:rl1Sd.1774$%F6.772@newsfe4-gui.ntli.net...
newman5382 wrote:

There is a school of thought that all off chip IO should be
inferred/instantiated at the top level, and not in sub-modules.


In the end, everything is flattened and becomes top-level, but in your
HDL code it is useful to have sub-modules for clarity, code maintenance
and reusability. It should be obvious or possible to tell to a synthesis
tool that your inout port in your sub-module really is an external port.

TonyF


It is not my HDL code.

Lots of things are judgement calls, and different people will choose
differently. If I look at regular HDL (non-EDK) targeted code, if I see
that all the primary I/O are defined in the top level, and not buried at
some unknown level of the hierarchy, it gives me a warm fuzzy that the
other person made some effort for other people to understand the flow of
the design.

As far as your complaint about the XST synthesys tool, since I own a bunch
of Synplicity stock, I think it would be best for me to not address that
issue.

-Newman

TonyF,
I looked at the code section in question. It appeared to be two IO lines
SDA, SCL that were broken out into input, output, and tristate control. I
did an I2C design a while back, and I found it convenient to break out the
signals in a similar manner.

-Newman
 
TonyF
Posted: Sun Feb 20, 2005 6:00 pm
Guest
newman5382 wrote:

Quote:
It is not my HDL code.

Lots of things are judgement calls, and different people will choose
differently. If I look at regular HDL (non-EDK) targeted code, if I see
that all the primary I/O are defined in the top level, and not buried at
some unknown level of the hierarchy, it gives me a warm fuzzy that the other
person made some effort for other people to understand the flow of the
design.

The designer's HDL code should not target such low level. An inout is
just that, an inout, not much to understand. In Xilinx FPGAs this will
be inferred as an IOBUF that will provide the *_I, *_O and *_T ports.
With other vendors or ASIC it might be inferred as something else
(though equivalent).

Quote:
As far as your complaint about the XST synthesys tool, since I own a
bunch
of Synplicity stock, I think it would be best for me to not address that
issue.

I did try my code with Synplify (outside EDK) and I didn't have this
problem. Nevertheless I still think EDK/ISE is a nice tool for project
management/implementation and great value for money.

TonyF
 
newman5382
Posted: Sun Feb 20, 2005 6:00 pm
Guest
"TonyF" <not@valid.address> wrote in message
news:rl1Sd.1774$%F6.772@newsfe4-gui.ntli.net...
Quote:
newman5382 wrote:

There is a school of thought that all off chip IO should be
inferred/instantiated at the top level, and not in sub-modules.


In the end, everything is flattened and becomes top-level, but in your HDL
code it is useful to have sub-modules for clarity, code maintenance and
reusability. It should be obvious or possible to tell to a synthesis tool
that your inout port in your sub-module really is an external port.

TonyF


It is not my HDL code.

Lots of things are judgement calls, and different people will choose
differently. If I look at regular HDL (non-EDK) targeted code, if I see
that all the primary I/O are defined in the top level, and not buried at
some unknown level of the hierarchy, it gives me a warm fuzzy that the other
person made some effort for other people to understand the flow of the
design.

As far as your complaint about the XST synthesys tool, since I own a bunch
of Synplicity stock, I think it would be best for me to not address that
issue.

-Newman
 
newman5382
Posted: Sun Feb 20, 2005 6:00 pm
Guest
There is a school of thought that all off chip IO should be
inferred/instantiated at the top level, and not in sub-modules.


"TonyF" <not@valid.address> wrote in message
news:Wp%Rd.1219$%F6.1075@newsfe4-gui.ntli.net...
Quote:
Antti Lukats wrote:

Hi all

I re-found once again my own "Rules of Life" what I first published 21
aug
2001

1 No Promises.
2 Keep Promises.
3 Give away what you do not need.
4 Do what you want to do.
5 Be Happy.

In order to comply with Rules [5], [4] and specially [3] from the above
list, I am giving a promise (those braking rule #1) that I will make all
projects of my past live available as public domain. That includs all I
can
publish (ie all that IP that belongs to me and is not covered by 3rd
party
agreements), with the exception of maybe a few selected projects I am
actually working on at the moment.

In order to comply with [2] first project is made public today at:
http://gforge.openchip.org

there is OPB I2C IP-Core that uses the OpenCores I2C Core by implementing
a
OPB 2 Wishbone adapter.

Just noticed that in your VHDL code you don't use inout ports, resulting
in 200% bloating of a normal inout port declaration. I presume this is
because XST is too lazy to parse inouts so that we have to do some kind of
backend annotation alongside HDL programming, resulting in a not very
elegant code.

This is probably the price to pay for such a cheap tool, so I should not
really complain. Synplify will allow you to use inouts in sub modules, but
it costs much more than XST.

TonyF


There is a school of thought that all off chip IO should be
inferred/instantiated at the top level, and not in sub-modules.

-Newman
 
TonyF
Posted: Sun Feb 20, 2005 6:00 pm
Guest
newman5382 wrote:

Quote:
There is a school of thought that all off chip IO should be
inferred/instantiated at the top level, and not in sub-modules.


In the end, everything is flattened and becomes top-level, but in your
HDL code it is useful to have sub-modules for clarity, code maintenance
and reusability. It should be obvious or possible to tell to a synthesis
tool that your inout port in your sub-module really is an external port.

TonyF
 
Falk Brunner
Posted: Mon Feb 21, 2005 12:00 am
Guest
"newman5382" <newman5382@yahoo.com> schrieb im Newsbeitrag
news:Xn8Sd.104376$JF2.1558@tornado.tampabay.rr.com...

Quote:
From what I have seen, the problem is that platgen.exe (Part of EDK, not
XST) is auto generating wrappers for the IP blocks. The auto-generated
wrappers breaks out "inout" to *_I, *_O, *_T ports. It also generates a
top
level file where these signals are fed into instantiated IO blocks at the
top level. My guess is that the program that autogenerates these files
assumes that the user defined IP blocks conform to the _I, _O, _T
convention, and XST complains when it sees incompatible connections..

OK, this sounds like a different story. I didnt use EDK yet.

Regards
Falk
 
Antti Lukats
Posted: Mon Feb 21, 2005 8:00 am
Guest
"newman5382" <newman5382@yahoo.com> schrieb im Newsbeitrag
news:0s2Sd.104087$JF2.54716@tornado.tampabay.rr.com...
Quote:

"newman5382" <newman5382@yahoo.com> wrote in message
news:GP1Sd.96890$qB6.89122@tornado.tampabay.rr.com...

"TonyF" <not@valid.address> wrote in message
news:rl1Sd.1774$%F6.772@newsfe4-gui.ntli.net...
newman5382 wrote:

There is a school of thought that all off chip IO should be
inferred/instantiated at the top level, and not in sub-modules.


In the end, everything is flattened and becomes top-level, but in your
HDL code it is useful to have sub-modules for clarity, code maintenance
and reusability. It should be obvious or possible to tell to a
synthesis
tool that your inout port in your sub-module really is an external
port.

TonyF


It is not my HDL code.

Lots of things are judgement calls, and different people will choose
differently. If I look at regular HDL (non-EDK) targeted code, if I see
that all the primary I/O are defined in the top level, and not buried at
some unknown level of the hierarchy, it gives me a warm fuzzy that the
other person made some effort for other people to understand the flow of
the design.

As far as your complaint about the XST synthesys tool, since I own a
bunch
of Synplicity stock, I think it would be best for me to not address that
issue.

-Newman

TonyF,
I looked at the code section in question. It appeared to be two IO
lines
SDA, SCL that were broken out into input, output, and tristate control. I
did an I2C design a while back, and I found it convenient to break out the
signals in a similar manner.

-Newman

http://wiki.openchip.org/index.php/EDK:Using_Tristate_Ports

I hope the above page answers the _I _O _T issue in full Smile
besides that there could be issues in my code, its old and was first
attempt but proved somewhat functional, it has been tested with som
real I2C devices (during that testing a bug in opencores i2c core was
found)

Antti
PS EDK is a 'beastie' there are some things that just have to made
the way EDK expects them to be or major problems can occour.
 
Kim Enkovaara
Posted: Mon Feb 21, 2005 10:00 am
Guest
TonyF wrote:

Quote:
Just noticed that in your VHDL code you don't use inout ports, resulting
in 200% bloating of a normal inout port declaration. I presume this is
because XST is too lazy to parse inouts so that we have to do some kind
of backend annotation alongside HDL programming, resulting in a not very
elegant code.

Usually it is a good style of coding not to use inouts inside the design.
Especially if the design should be portable to different architectures
and tools.

Usually IO-pads are implemented at the toplevel, especially in ASIC based
designs where the IO-ring is generated usually with automatic tools. Also
I have seen formal tools to choke with internal inout ports during
RTL->gate verification sometimes.

--Kim
 
Antti Lukats
Posted: Mon Feb 21, 2005 10:00 am
Guest
"Falk Brunner" <Falk.Brunner@gmx.de> schrieb im Newsbeitrag
news:37rj4hF5ea8fvU1@individual.net...
Quote:

"TonyF" <not@valid.address> schrieb im Newsbeitrag
news:Wp%Rd.1219$%F6.1075@newsfe4-gui.ntli.net...

Just noticed that in your VHDL code you don't use inout ports, resulting
in 200% bloating of a normal inout port declaration. I presume this is
because XST is too lazy to parse inouts so that we have to do some kind

Nonsense. XST can handle inouts quite good.

Regards
Falk

yes and no.
XST can handle inout, YES
, but:

1) for EDK the _I _O _T useage is required to be "EDK compliant" - this
issue has nothing todo with XST inout handling
2) inout use with xilinx tools is an issue sometimes: the control port of
ChipScope cores is a single port that is kinda inout as one wire has
different direction, that causes very often problems, the chipscope cores
are delivered as netlist and used with verilog/vhdl wrapper where the inout
port is declared as unidir, this works, usually... sometimes it works better
when the wrapper is defined as inout. I am just pointing out that there are
cases where the 'inout' or not inout is an issue withing the xilinx
toolchain

Antti
 
Marc Randolph
Posted: Mon Feb 21, 2005 2:00 pm
Guest
newman5382 wrote:
Quote:

This is probably the price to pay for such a cheap tool, so I
should not
really complain. Synplify will allow you to use inouts in sub
modules, but
it costs much more than XST.

There is a school of thought that all off chip IO should be
inferred/instantiated at the top level, and not in sub-modules.

-Newman

Is there a good reason for this school of thought?

Using that concept, when I go to take that top level and create a 4x
version of it, I can't just create a new top level with a generate
statement. Now I have to go edit a completely working design and
convert all the inouts to seperate in's and out's. And if that
original block is still being used in the original design, I now have
two different versions of the exact same thing that I have to maintain.

Have fun,

Marc
 
 
Page 1 of 2    Goto page 1, 2  Next
All times are GMT
The time now is Tue Dec 01, 2009 10:11 pm