2 ms·
duskwuff: I'm more than happy to let you have your ideal laptop, with the fastest, latest most cutting-edge Intel or AMD chip... Why won't you let me have my i
by peter_d_sherman 3y ago
duskwuff: I'm more than happy to let you have your ideal laptop, with the fastest, latest most cutting-edge Intel or AMD chip...
Why won't you let me have my ideal laptop -- with an iCE40 FPGA?
My value system is that of simplicity, verifyability, transparency, open hardware -- and open software of all layers of the computing stack...
I don't care about MHz, 50 is plenty -- if that's what it takes to get all of the above. If there's another FPGA which is faster yet still compatible with all open source tools, feel free to name it (and give an URL to the open source toolchain for it).
At present, I am not aware of one...
>For what it's worth, OpenCores is basically a junkyard.
For what it's worth, most commercial CPUs are basically transparency trainwrecks.
Also, I'd leave it to each individual reader to make their own determination if OpenCores has value to them or not.
Some will not understand its whyness and thus not value it. But I'd rather let it be their own individual choice.
Also, you should know that many individuals put a lot of their own unpaid hard work into their projects on OpenCores.
A lot of blood, sweat and tears.
A lot of hard work, unpaid hard work -- to donate the results of that hard work to the community.
Painting OpenCores with a broad brush and broadly labeling OpenCores as "Most of what you see there is abandoned and barely functional" greatly disparages the work, the hard work of all of the people who put their blood sweat and tears into their projects there.
Many OpenCores projects are complete, do work, and are models, absolutely stellar models of transparency and individual and community effort.
I know that I for one value OpenCores and the work of everyone involved greatly, greatly.
Have you personally tested each and every project on OpenCores?
If you haven't -- then how do you presume to know the value?
Have you personally downloaded and tested even one complete project from OpenCores?
?
OpenCores has information which tells you if a project is complete or not, if it is working or not, and which phase of development it is in... one wouldn't select an unfinished project unless one were interested in learning from it and/or helping to complete it...
Point is -- some of us (and this would include EE students and others potentially interested in CPU/Processor design, other present/future chip designers and educators and the like) -- would see value, great value in OpenCores...
Again, you are free to have your ideal laptop, with the fastest, latest most cutting-edge Intel or AMD chip, or whatever you want, with whatever components you want...
I would politely ask for the reciprocal grant of freedom in selecting my ideal laptop, with my ideal components, inside of the value system I have explained, above.
- saagarjha 3y agoNobody is telling you to not have that laptop. They’re just warning you that it’ll be almost unusable as a laptop.
- peter_d_sherman 3y agoDefine "unusable".
- brucehoult 3y agoMost people in the world would regard the Pinetab-V with quad core 1.5 GHz dual issue CPU -- around 8,000 to 9,000 MIPS in total -- as either unusably slow or barely usable. It's somewhere around a late 2000s PC in performance. Your FPGA solution will be around 50 MIPS. That's around a 1992 486dx2. If you're happy to run something akin to Windows 3.11 then that will be fine.
- duskwuff 3y agoLiterally unusable as a laptop. ~128 KB memory, no display, no networking, probably no storage either. Even USB would be a stretch. iCE40 FPGAs only have 20-30 I/O pins, and they're all too slow to communicate with modern DRAM, an LCD, an Ethernet PHY, SATA, or PCIe. It'd certainly be possible to build a computing device around one (or, more likely, several) iCE40 FPGAs, but it would have very little in common with the Framework.
- peter_d_sherman 3y agoAt the signal level (1's and 0's) -- +5V and 0V (or 3.3V and 0V, 2.2V and 0V, xV and 0V where 'xV' is on and 0V is off) -- any computer interface, module or perhiperhal -- can be interfaced with any other one. It's just a question of getting the voltage and the frequency and protocol correct -- so that electronic components will speak to other components along a signal path. If one component cannot talk to another component -- because say, a given frequency is too high, or a given component is too slow -- then a proxy component which acts as an intermediator between high frequency and low(er) frequency sides may be used as a mediator; as an intercessor... For example, let us suppose that I have a dumb terminal, the "dumbest" and slowest of all computing devices. No memory to speak of -- except perhaps for a small amount of screen memory... Now, if I want that dumb terminal to interface with USB, DRAM, LCD, Ethernet PHY, SATA, or PCIe -- I can use a Raspberry Pi to accomplish that (it can act as an intermediary, it can act as a proxy.) Similarly, I can also use other electronic devices in lieu of the Raspberry Pi as the interface -- including but not limited to other computers, ASIC's, FPGA's, custom chips for handling signals, etc., etc. That something wired together in such a manner is, or would be "unusable as a laptop" -- is a very subjective idea (unusable to whom exactly?) -- because properly engineered, it would indeed work, and would indeed be quite fast and useable... By your argument, that component parts would be too slow, I would submit to you that: Modern computer engineering is all about the speeds of various computer subsystems, and getting faster subsystems to work with slower ones. These examples include (but are not limited to) the speed a computer's CPU vs. the speed of its memory (the cache hierarchy), Northbridge Vs. Southbridge, A Computer's Bus Vs. Slow Perhipherals, A CPU's speed vs. say, the speed of an older spinning mechanical hard drive, etc., etc. Have a look at this table: https://en.wikipedia.org/wiki/List_of_interface_bit_rates https://en.wikipedia.org/wiki/List_of_interface_bit_rates The Internet (and the hardware that makes it up) itself is comprised of most, if not all of those devices, all of which have different rates of speed. And yet, it all "magically" communicates... Oftentimes a slower devices will need electronic proxies to communicate effectively with higher speed devices. This principle is well understood in Electrical Engineering and amongst Electrical Engineers. Not only that, but this very principle is enshrined in all computers -- even in the fastest laptop produced today... The fastest laptop produced today has many subcomponents, many electronic subsystems, along which signals are travelling at different rates of speed -- some fast, some slow, some very slow -- and yet the whole system communicates and works, and is quite, yes, quite usuable... That principle is enshrined in all computer engineering, and computers today. Your uber-fast laptop, whichever make and model it is -- is proof, proof positive of it... So, I appreciate your advice (I am sure it was given in Good Faith) -- but I feel that your advice only addresses the tip of the iceberg of the true scope of possibilites, the things that are possible when a more nuanced understanding is to be had... The advice given limits the scope of what seemingly should be possible ("don't try it, it'll never work, or never work well") -- whereas the principle which I have submitted should expand the set of those possibilities ("it will work and will work well if the proper rules for engineering it are followed, with the proper understandings, with the proper first principles...")...