Peter Alfke wrote:> Jim, what do you suggest: > Whenever somebody in Xilinx suggests an application, all software is > put onhold until the new idea has passed all software? > Or: Whenever somebody in Xilinx suggests an application, it may not be > published until it has passed all software implementations? > > The specific idea in this thread is over 30 years old, and had been > proven in many TTL designs, but had not been synthesized, because > synthesis did not exist at its birth. > > Nevertheless, I have gone back and made some circuit ideas more > synthesis-friendly... > Peter AlfkePeter, If it was me, I would not take Austin's stance, that 'too simple' circuits somehow exclude themselves from the test suites.. Nor the approaches above [no smileys?], but I'd apply some "common sense", and try and ensure that ideas are both tested, and continue to be tested, as software iterates - rather a more pro-active, parallel approach, than the ON-OFF your and Austin's replies suggested. -jg
Peter Alfke's SPDT Switch Debouncer
Started by ●August 13, 2005
Reply by ●August 15, 20052005-08-15
Reply by ●August 16, 20052005-08-16
Jim, I really agree with you (sorry for the missing smileys). On one hand it is embarrassing when an old hand describes a proven circuit, and the younger crowd finds that it "doesn't work". On the other hand, I think that, especially with such a simple and peripheral circuit, it would be nice if engineers retained some basic understanding of physics and circuitry. I have a running battle with people who think the X at the latch output (or flip-flop Q when the set-up time is violated) is an undefined, in-between mysterious level, instead of just an unknown (but physically real) state. Or with people who try to analyze metastability with logic simulation tools. Designers should realize that real digital signals are High or Low (and rarely in-between), while 0 and 1 and X are just convenient abstractions that work most of the time, but not always. But I try my best not to become a cranky old fart. Hell, I am still proud of that cheap de-bouncing trick! Peter
Reply by ●August 16, 20052005-08-16
Peter Alfke <peter@xilinx.com> wrote:> Jim, what do you suggest: > Whenever somebody in Xilinx suggests an application, all software is > put onhold until the new idea has passed all software? > Or: Whenever somebody in Xilinx suggests an application, it may not be > published until it has passed all software implementations?> The specific idea in this thread is over 30 years old, and had been > proven in many TTL designs, but had not been synthesized, because > synthesis did not exist at its birth.> Nevertheless, I have gone back and made some circuit ideas more > synthesis-friendly... > Peter AlfkeWith the thread " ISE 7.1 'improvements' plus meandering.... " Jim probably suggested to put more entries in a regression suite that is hopefully run before each ISE release/service pack... -- Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
Reply by ●August 16, 20052005-08-16
"Symon" <symon_brewer@hotmail.com> schrieb im Newsbeitrag news:4300f5c3$0$18648$14726298@news.sunsite.dk...> Hi Vladimir, > The circuit's being optimised away because the 'tool' doesn't understand > that there's stuff outside the chip. It can't understand the output is > current limited, so it thinks your circuit can be optimised away. If you > make the outputs tri-state-able, and drive the tri-state line to turn them > on from something the 'tool' doesn't optimise away, you'll have more > success. Maybe. > Have fun! > Syms. >not maybe. for sure. I use special wires called 'always1' those are driven to 1 always but in the way that XST doesnt guess that. Those wire are useful to keep stuff from being optimized aways. another option would be create a hard macro, there things are more persistant Antti
Reply by ●August 16, 20052005-08-16
Uwe Bonnes wrote: Uwe, I understand. Most regression test suites are huge designs intended to cover as much ground as possible. Adding in a debounce ciruit as a separate test isn't productive. Now having one "goofy" suite with ALL of the strange and wonderful test cases that are three lines or less would be useful.... Something to work towards. Austin> Peter Alfke <peter@xilinx.com> wrote: > >>Jim, what do you suggest: >>Whenever somebody in Xilinx suggests an application, all software is >>put onhold until the new idea has passed all software? >>Or: Whenever somebody in Xilinx suggests an application, it may not be >>published until it has passed all software implementations? > > >>The specific idea in this thread is over 30 years old, and had been >>proven in many TTL designs, but had not been synthesized, because >>synthesis did not exist at its birth. > > >>Nevertheless, I have gone back and made some circuit ideas more >>synthesis-friendly... >>Peter Alfke > > > With the thread " ISE 7.1 'improvements' plus meandering.... " Jim probably > suggested to put more entries in a regression suite that is hopefully run > before each ISE release/service pack... >
Reply by ●August 16, 20052005-08-16
Antti Lukats <antti@openchip.org> wrote:> "Symon" <symon_brewer@hotmail.com> schrieb im Newsbeitrag > news:4300f5c3$0$18648$14726298@news.sunsite.dk... > > Hi Vladimir, > > The circuit's being optimised away because the 'tool' doesn't understand > > that there's stuff outside the chip. It can't understand the output is > > current limited, so it thinks your circuit can be optimised away. If you > > make the outputs tri-state-able, and drive the tri-state line to turn > > them on from something the 'tool' doesn't optimise away, you'll have > > more success. Maybe. > > Have fun! > > Syms. > >> not maybe. for sure. > I use special wires called 'always1' those are driven to 1 always but in > the way that XST doesnt guess that. Those wire are useful to keep stuff > from being optimized aways.> another option would be create a hard macro, there things are more > persistantCan you show us your way to define 'always1'? Thanks -- Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
Reply by ●August 16, 20052005-08-16
"Uwe Bonnes" <bon@elektron.ikp.physik.tu-darmstadt.de> schrieb im Newsbeitrag news:ddt4t2$809$1@lnx107.hrz.tu-darmstadt.de...> Antti Lukats <antti@openchip.org> wrote: >> "Symon" <symon_brewer@hotmail.com> schrieb im Newsbeitrag >> news:4300f5c3$0$18648$14726298@news.sunsite.dk... >> > Hi Vladimir, >> > The circuit's being optimised away because the 'tool' doesn't >> > understand >> > that there's stuff outside the chip. It can't understand the output is >> > current limited, so it thinks your circuit can be optimised away. If >> > you >> > make the outputs tri-state-able, and drive the tri-state line to turn >> > them on from something the 'tool' doesn't optimise away, you'll have >> > more success. Maybe. >> > Have fun! >> > Syms. >> > > >> not maybe. for sure. >> I use special wires called 'always1' those are driven to 1 always but in >> the way that XST doesnt guess that. Those wire are useful to keep stuff >> from being optimized aways. > >> another option would be create a hard macro, there things are more >> persistant > > Can you show us your way to define 'always1'? > > Thanks > -- > Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.deHi Uwe, there are many ways. 1 use fixed value IO pin as input 2 a 0 pin, 0 lut variant is to use alwaays1 <= not(SEL1 and SEL2) where SEL1 are SEL2 are outputs from BSCAN primitive 3 just use inverse of the pattern compare result to some 'known' never true signal set, this is application dependant Antti PS I just tried to implement the SPDT switch as proper hard and also as 'locked/constrained' soft macro, and failed in both cases because of Xilinx tools bugs. So the 'always1' approuch is possible the only useable at the moment, unless 8.1 update fixes the issues, I do not belive the issues could be fixed in 7.1 service packs.
Reply by ●August 22, 20052005-08-22
Austin Lesea schrieb:> I understand. Most regression test suites are huge designs intended to > cover as much ground as possible. Adding in a debounce ciruit as a > separate test isn't productive. Now having one "goofy" suite with ALL > of the strange and wonderful test cases that are three lines or less > would be useful.... > > Something to work towards.Especially as synthesis software tends to break with some parameter being unusually small. - ISE over a couple of versions could not handle designs that had no inputs. (The error message suggested that the design were to large) - The ISE schematic flow had a problem with vectors of length 1. - Magma Design Automations VHDL parser could not handle empty records in one version. - I saw a - non commercial - partition based placer fail on all single gate circuits because do-while was used instead of while-do And so on. These cases are not likely to show up in manual designs, but are actually very likely when working with circuit generators. I am doing synthesis research at an university and I always test extremely small cases first because the test cases are easy to come up with and show problems with programming that can hide in larger examples. Kolja Sulimma
Reply by ●August 22, 20052005-08-22
Kolja, Good points. Austin> Austin Lesea schrieb: > > >>I understand. Most regression test suites are huge designs intended to >>cover as much ground as possible. Adding in a debounce ciruit as a >>separate test isn't productive. Now having one "goofy" suite with ALL >>of the strange and wonderful test cases that are three lines or less >>would be useful.... >> >>Something to work towards. > > > Especially as synthesis software tends to break with some parameter > being unusually small. > > - ISE over a couple of versions could not handle designs that had no > inputs. (The error message suggested that the design were to large) > - The ISE schematic flow had a problem with vectors of length 1. > - Magma Design Automations VHDL parser could not handle empty records in > one version. > - I saw a - non commercial - partition based placer fail on all single > gate circuits because do-while was used instead of while-do > > And so on. > > These cases are not likely to show up in manual designs, but are > actually very likely when working with circuit generators. > > I am doing synthesis research at an university and I always test > extremely small cases first because the test cases are easy to come up > with and show problems with programming that can hide in larger examples. > > Kolja Sulimma > >






