On 10/13/20 10:27 AM, Rick C wrote:
> On Tuesday, October 13, 2020 at 8:35:20 AM UTC-4, Richard Damon wrote:
>> On 10/12/20 11:50 PM, Rick C wrote:
>>> On Monday, October 12, 2020 at 10:33:23 PM UTC-4, Richard Damon wrote:
>>
>>>> Maybe newer FPGAs have less problems with it, but I seem to remember
>>>> that some FPGAs comming out of configuration (and defaulting to be an
>>>> input) into an output, always enabled, driving low, might not complete
>>>> keep the high side driver off. These FPGAs specifically defined that
>>>> unused pins should be left floating/not connected.
>>>
>>> Can't say I follow what you are saying. It's not like the I/Os are not configured while the rest of the chip is configured. If unused the I/Os are configured as inputs, either with a light pullup or nothing, I don't claim to know the details, but an I/O should never be left floating since that allows the input (which is always connected) to drift to a mid voltage where both high and low FETs are on drawing high current.
>>>
>>> When unused, the software takes care of the default I/O configuration. Your reference to the high driver being partly on is probably the pullup which is implemented as a very light FET.
>>>
>>> If you configure an output as driving a constant '0' (no longer an "unused" I/O) it will be driving the output hard to ground. There are various drive strengths and the highest should be used. Connecting the pin to the right power rail will provide some reduction in ground impedance just as a similar act on the high power rail will do the same for the high side.
>>>
>>
>> If you don't understand HOW a FPGA works internally, then you don't
>> really have a basis to comment.
>
> Dude, if you can't discuss a topic civilly, then don't discuss it at all. Either maintain low cones or don't reply.
>
YOU, who admitted that they don't fully understand the details of how
things work in a FPGA was telling me, who has worked with them from
their beginning, that a phenomenon that I HAVE seen, "Can't Happen". Who
is talking through their hat?
>
>> At reset, before the configuration is loaded, the pins will be setup as
>> inputs, and the designs are careful to make the Power on Reset to
>> Default Input configuration glitch-less, as it is expected that some of
>> these pins will be driven by low impedance drivers.
>>
>> There are also Flash/OTP parts that don't have a 'configuration' phase,
>> but at power on 'immediately' configure and might enable before the
>> output value is fully set.
>>
>> My comment was that some designs didn't switch from Default Input mode
>> to Enable Low Output in a glitch-less manner, in part because it wasn't
>> expected to be important. An output was expected to be driving a
>> relatively high impedance load, so a short power on glitch was not
>> important.
>>
>> Some chips DID specifically define that unused pins should be left
>> floating. (The compiler tool converted them to weak outputs of seemingly
>> random signals). Some actually will disable the input section, so the
>> mid-level voltage isn't a problem (especially useful if the pin can be
>> multiplexed with analog functions, where mid-level voltages are expected).
>>
>> Outputs have (at least) two FETs, one to pull high, one to pull low.
>> Just because you have programmed the FPGA to drive low, doesn't mean
>> that the high driving FET has gone away. Depending on design
>> requirements, they might be careful to avoid the glitch or they might
>> not. It costs logic to sequence things to happen in a given order, so if
>> it isn't important, they might not add the logic to prevent the glitch.
>
> You have done a great job of explaining the configuration of the I/Os but not connected that to the issue at hand which is the use of I/Os as ground connections. You talk about an output driving low and then say the "high driving FET has gone away" without explaining the significance. No, transistors on a chip do not "go away". So what?
>
>
Because it is there, it CAN turn on, at least momentarily, causing a
short from the power rail to your external ground connection, which
wasn't supposed to be there by the manufactures design specs. (Pins
declared as outputs need to be driving loads with a given minimum
impedance, not a zero ohms to ground)
>>>> IF the chip designer is presuming that small glitches on enabled output
>>>> are unimportant (since they will only be driving inputs), this isn't
>>>> unreasonable.
>>>
>>> Sorry, I'm not following. Ground bounce is about outputs switching large currents at the same time driving the ground impedance and driving the chip internal ground high which impacts the threshold voltage for *inputs* causing glitches. I'm not clear what you are saying about outputs.
>>>
>> I am talking about an initial power on glitch at the transition from
>> Power-om/configuration to operation. Grounding an output that has a high
>> driving glitch can create a significant current spike which can disrupt
>> power supplies and chip operation.
>
> You have not explained where this glitch might come from.
The output stage gets two inputs (of interest here) from the main FPGA
array. One is an output enable, which for proper operation during power
om reset/configuration needs to be internally biased during that period to
'disabled', and a second 'Data' bit, that since the value isn't needed
during this initial phase, might just be left undefined. to define in at
this time either needs a light restive load all the time, burning power
all the time, or a transistor (space) or a more complicated coming out
of config sequencing (again space).
At the moment configuration ends, the system copies the configuration
data from the configuration shift register or flash memory source into
the actual operation registers, at which point the enable will start to
be driven, as well as the data. This action takes a finite period of
time, and unless special care was taken, the output enable my reach the
output before the output low signal does, at which point the output
might glitch high causing the current spike. Since this also happens to
be a high activity point in time, such a spike might disrupt the FPGA.
Later designs often did decide it was worth the cost to sequence things,
so most FPGAs today delay the enabling of outputs a bit to allow the
data paths to settle before outputs are allowed to drive.
>
>
>>>> Later, with higher density packages, the idea that grounding low driving
>>>> outputs could improve (slightly) the ground impedance, made it more
>>>> important to avoid these issues.
>>>
>>> Sorry, I'm not following what you are saying at all. What is the issue that needs to be avoided???
>>>
>>
>> If a chip does not have a guaranteed glitch-ln eess startup configuration,
>> don't assume it does and tie and output to the 'presumed' output level
>> (that you have configured).
>
> Nothing in digital chips are guaranteed glitchless. That's why we provide so much decoupling of the power supply, to damp the glitches. You have not explained yourself at all, but seem t o be simply claiming tying a low output to ground will produce a large glitch on configuration. However, you don't really explain this glitch, you simply state the "high driving FET has [not] gone away" whatever that means. Why would the high driving FET be turned on at any point in the configuration when the configuration is to drive low?
>
> Perhaps you can review your explanation and find the gap in your logic, because you have failed to explain your logic?
>
Actually, many designs HAVE located places where glitches in the earlier
simple designs caused enough problems that they have taken care to
reduce or eliminate many of them. For example, most LUTS today are
promised to not glitch if a single input transitions, and the LUT value
for both cases are the same (some earlier designs this was not always
true without special coding).