 |
|
| 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 |
|
| 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
 |
|
|
| Back to top |
|
|
|
| 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
:)
|
|
|
| Back to top |
|
|
|
| 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 |
|
|
| Back to top |
|
|
|
| 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 |
|
|
| Back to top |
|
|
|
| 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 |
|
|
| Back to top |
|
|
|
| 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 |
|
|
| Back to top |
|
|
|
| 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 |
|
|
| Back to top |
|
|
|
| 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 |
|
|
| Back to top |
|
|
|
| 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 |
|
|
| Back to top |
|
|
|
| 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 |
|
|
| Back to top |
|
|
|
| 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 |
|
|
| Back to top |
|
|
|
| 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
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. |
|
|
| Back to top |
|
|
|
| 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 |
|
|
| Back to top |
|
|
|
| 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 |
|
|
| Back to top |
|
|
|
| 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 |
|
|
| Back to top |
|
|
|
|
|
All times are GMT
The time now is Tue Dec 01, 2009 10:11 pm
|
|