PDP-8 on FPGA project
Sebastian Brückner
sb at thebackend.de
Fri Dec 19 19:39:16 CST 2008
Good morning!
Sorry for the off-topic post...
Am 19.12.2008 um 16:16 schrieb Philipp Hachtmann:
>> You can emulate that in std_logic with a single driver driving an "H"
>> (the "pull-up"), and everyone else drives either "0" or "Z".
> Yes. You can write that. But the synthesis tool - if it eats that -
> will generate
> many ORs... So avoid it. In the company I have worked a bit for,
> MANY constructs
> were simply forbidden. Thinks like Z, H, L in std_logic are
> suspicious :-)
What you say is true for FPGA-internal signals but the output drivers
_can_ be switched to high-impedance.
The open-collector driver you were asking about originally can be
emulated by assigning "Z" directly to the IOB, switching it to high-z.
That will only work if the signal you use is routed directly to the
IOB => use only in top level entity to be sure.
-- exhibit A:
signal_ext <= output_i when enable_i = 1 else (others => 'Z');
input_i <= signal_ext;
-- exhibit B
signal_ext <= '0' when output_i ='0' else 'Z';
input_i <= signal_ext;
Is that what you wanted to do?
For higher voltages that 3.3V you will need two pins, see <http://www.mikrocontroller.net/topic/114162
>.
Cheers,
Sebastian
More information about the cctech
mailing list