On 5/22/2020 4:45 PM, Chris Hanson wrote:
> On May 21, 2020, at 8:46 AM, Jay Jaeger via cctalk <cctalk@classiccmp.org> 
> wrote:
>>
>> Helpful tips - I agree with avoiding vendor extensions.  Thanks.
> 
> I’d strongly suggest that the situation with FPGAs & HDLs requires a bit more 
> nuance than that. You *should* probably avoid or carefully isolate vendor 
> *language extensions*. However, you *should not* avoid vendor *IP blocks*.
> 
> As an example, let’s say you have a design that needs a RAM controller. Do 
> you:
> 
> (1) Write your own DDR controller as part of your design; or,
> 
> (2) Interface your design to your FPGA vendor’s DDR controller IP block?
> 
> In general you *should* do the latter—as long as you can do so via a sane 
> abstraction—rather than the former, unless you have an extremely compelling 
> case for doing the former.
> 
> And “portability” isn’t actually that compelling of a case: Virtually every 
> set of tools and chips you might want to work with will have a similar 
> variety of IP blocks available, many implemented via dedicated on-device 
> logic (rather than consuming general-purpose logic cells), so as long as you 
> can isolate their use you can still keep your overall design portable.
> 
> This is particularly important for things that have strict timing 
> requirements and that might otherwise soak up a lot of your device’s 
> bandwidth, e.g. HDMI input/output, RAM control, Ethernet, and so on.


I don't think a 100K character IBM SMS machine needs DDR.  8D   For my
old student ECE ZAP machine, I just used very simple
on-development-board RAM, with a layer in between.  Probably do the same
here.

Ethernet might be nice, but I don't think I'd include a whole IP just to
get that - probably just use I2C or SPI to an external micro controller
(for lamps, switches, the console selectric, etc.)  Doing this would
also help me fit to a smaller FPGA.

Context matters.  ;)

> 
>   -- Chris
> 

JRJ

Reply via email to