Author Topic: fpga boards: curious about projects that *you* do, guys  (Read 15863 times)

0 Members and 1 Guest are viewing this topic.

Online ebastler

  • Super Contributor
  • ***
  • Posts: 6479
  • Country: de
Re: fpga boards: curious about projects that *you* do, guys
« Reply #25 on: August 24, 2017, 03:46:48 pm »
Bad day?
 

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: fpga boards: curious about projects that *you* do, guys
« Reply #26 on: August 24, 2017, 03:57:59 pm »
LOL, the DNX_RISC is funny  :D :D :D

it looks similar to the first MIPS processor (R2K), even simpler, instructions are 32 bits long, it's a classic RISC load/store machine, the branch unit is simplified, and it comes with a simulator which implements the pipelined-version (won't be surprised to see some multi-cycles implementation in VHDL)



EscapeSimulator

WOW! I haven't checked for any HDL code, but though it's good material for students  :popcorn:
 

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 4036
  • Country: nz
Re: fpga boards: curious about projects that *you* do, guys
« Reply #27 on: August 24, 2017, 04:03:33 pm »
special instructions that are completely different to what is in C

which kind of instructions? something like the Altivec (PowerPC-G4)?
Vectorial CoPro? BKM-like? Hash-accelerators (crypto-Cops)?
large (64bit or 128bit) FixedPoing engine? with CooRdic support?

or what?

Those all seem like possible examples. Or "tensors" for ML. Or texture sampling/averaging for graphics. Even something as simple as bitreverse or Count Leading Zeroes if the target CPU doesn't have it.
 

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9890
  • Country: us
Re: fpga boards: curious about projects that *you* do, guys
« Reply #28 on: August 24, 2017, 04:29:31 pm »

Frankly: no, I don't define OC as "good start". It's just a website that collects projects. Nothing special, nothing excellent, and sometimes is the bad place ever to look at!

So, what's the alternative for a newcomer?  They need something to help them climb the hill and most of what I see in other forums are just bits and pieces.
Where does the newcomer find a complete project, fully documented, that is understandable?  Personally, I have no idea!

My very first project hung a Compact Flash on that T80 core and got CP/M running.  First I blinked an LED and then I brought up a CPU with OS.  Not because I had any experience, it's because the T80 is easy to work with.  I looked at the top level long enough to figure out how to add the IO devices and I was off to the races.  I never had to look at the internals, they just do what they are supposed to do.  In fact, I never have.  I glanced through the code one time and decided to put that on back burner.  To be fair, I had a great deal of experience bringing up real systems using the 8085 so I pretty much new what was required.

There are plenty of tutorials that show how to implement a gate, MUX, decoder and even FSMs but there is a huge step to the level of tying these blocks together to create something interesting.  Even a simple CPU will be a few hundred lines of code.

 

Offline stmdude

  • Frequent Contributor
  • **
  • Posts: 479
  • Country: se
Re: fpga boards: curious about projects that *you* do, guys
« Reply #29 on: August 24, 2017, 04:31:38 pm »
Now, someone like those who happens to use Ubuntu apt-get-world won't believe in the effort I had to put and he will think that I am simply an incompetent!

I run the same distro as you, and I solved that particular issue by giving them binaries linked against a recent version of libavcodec..
Them: "It won't run!"
Me: "Give it a year or two, and once Ubuntu catches up, it'll work"

Anyhow. Back on topic. I'm just a beginner, and I was planning on building old home-computers, but in a single FPGA.
I got some soft-cores working, RAM, ROM, IO chips, etc.

However, I kind of got tired of it when I wanted to test stuff together with the old hardware, and came to the realization that 5V FPGAs are pure unobtanium these days.

But, it's another (powerful) tool in my toolbox, so I'm glad I learned it.  I'm sure I'll make more projects later, but right now it's stalled.
 

Offline Bruce Abbott

  • Frequent Contributor
  • **
  • Posts: 627
  • Country: nz
    • Bruce Abbott's R/C Models and Electronics
Re: fpga boards: curious about projects that *you* do, guys
« Reply #30 on: August 24, 2017, 04:43:20 pm »
if you look as some projects you find that they are ALTERA specif, written with mega-functions, and poor VHDL quality (e.g. everything STD_LOGIC_VECTOR and pretty un_typed :palm: :palm: :palm: :palm: )... OpenCores usually offer poor quality code about that!
Disgusting. You should demand a refund.

Oh wait...

"OpenCores is a community that enables engineers to develop open source hardware, with a similar ethos to the free software movement... There is no formal affiliation between the people contribute to OpenCores.... All kinds of people: Students, HW Professionals, SW Professionals, Companies, Hobby engineers,"


 

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: fpga boards: curious about projects that *you* do, guys
« Reply #31 on: August 24, 2017, 04:53:49 pm »
giving them binaries

I can't do that, they are the kind of customer whose software MUST come from Catalyst, compiled from sources, and has to come to them with some hardening-rule set applied.
 

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: fpga boards: curious about projects that *you* do, guys
« Reply #32 on: August 24, 2017, 04:56:21 pm »
So, what's the alternative for a newcomer?

a good university course, plus a good book with a mixture of theory and practice!
 

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: fpga boards: curious about projects that *you* do, guys
« Reply #33 on: August 24, 2017, 05:03:11 pm »
"tensors" for ML




Not yet 100% stable on HDL, this is a BKM-like algorithm simulated in fixedpoint-32bit   :D
A tensor unit is much more interesting, but ... can you believe that I have been working on the BKM-like algorithm for 5 years? And it's still unstable for certain input values.
 
I mean, they sounds as "long story projects" :P

About texturing .... SGI Infinite Reality seems to be a very interesting piece of hardware. Might be replicated on HDL? I don't know, for sure it's damn complex for common human beings, but SGI engineers did it in 2000s when there were no modern FPGA and tools costed an arm and a leg.

I believe that at least it's good material to for a lecture, something that one would like to understood in details (may be also replicated in some part  :-// ).

There was a good paper on internet, I can't find it at the moment, but I will link it to the forum as soon as I find it

edit:
found and attached! enjoy :D
« Last Edit: August 24, 2017, 05:40:07 pm by legacy »
 

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 4036
  • Country: nz
Re: fpga boards: curious about projects that *you* do, guys
« Reply #34 on: August 24, 2017, 05:22:41 pm »
LOL, the DNX_RISC is funny  :D :D :D

it looks similar to the first MIPS processor (R2K), even simpler, instructions are 32 bits long, it's a classic RISC load/store machine, the branch unit is simplified, and it comes with a simulator which implements the pipelined-version (won't be surprised to see some multi-cycles implementation in VHDL)

DLX has been around for a long time. It was designed by Hennessy (original MIPS designer) and Patterson (original RISC1/2/SPARC designer) for use in teaching and their famous hardware design book " Computer Architecture: A Quantitative Approach".

DLX is also the basis for "OpenRISC", the first open source CPU core which is unfortunately (for commercial users) GPL.

RISC-V is also inspired by MIPS2000 and DLX, but with aims to have a more liberal license, to support 64 bit (and 128 bit), to leave a large amount of opcode room for future extensions for architecture research or commercial users, and to support variable length instructions for more compact code and to (again) leave lots of room for future extensions.
 

 

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9890
  • Country: us
Re: fpga boards: curious about projects that *you* do, guys
« Reply #35 on: August 24, 2017, 07:47:19 pm »
So, what's the alternative for a newcomer?

a good university course, plus a good book with a mixture of theory and practice!

Which probably leaves out the hobbyist. 

FPGAs would, I suspect, be an upper division course at the undergrad level and a course unto themselves in grad school.

I have 2 pretty good books but only one is directly aimed at FPGAs and that is "Microprocessor Design Using Verilog HDL".  The other is Patterson and Hennessy and it's very good.  I have a copy of Patt and Patel incoming.  I also have a raft of other computer architecture books and they could all result in a project but they don't provide any hand-holding in that direction.  And they target very high end processors because that's where all the excitement it.  I could still see a project coming out of Caxton C Foster's BLUE computer.  An extremely simple CPU similar to very early minicomputers.
 

Online NorthGuy

  • Super Contributor
  • ***
  • Posts: 3146
  • Country: ca
Re: fpga boards: curious about projects that *you* do, guys
« Reply #36 on: August 24, 2017, 09:43:39 pm »
FPGA structure is very different from the structure used to build real-life CPUs.

FPGA mostly consists of interconnected LUTs and FFs. In modern FPGAs, such as Xilinx 7 series, LUTs are very polymorphic - the same LUT can be used as a couple of logic gates, or as 64-bit RAM, or as 32-bit shift register, or as 4:2 MUX etc. Such elements are quite powerful and you can create much more efficient core if your design uses the polymorphic power of LUTs. Not to mention built-in carry chains to build adders and multipliers, or DSP blocks which can add and multiply really fast.

On the other hand, some things which are easy in the real world, are not that easy in FPGA. For example, a physical CPU may have a bus which may be driven by a number of sources - active source drives the bus while the rest is tri-stated. If you want to emulate such a bus in FPGA, you'll have to use a huge MUX which selects the driver out of the list of all possible drives.

 

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9890
  • Country: us
Re: fpga boards: curious about projects that *you* do, guys
« Reply #37 on: August 24, 2017, 11:11:40 pm »
And yet an entire minicomputer including emulations of its peripherals can easily fit in a single FPGA.  A machine that could fill a small room will fit in a chip about the size of a postage stamp.  Sure there is a really wide MUX and it will necessarily limit speed but in terms of emulating older CPUs, the FPGA will outrun the original by at least an order of magnitude.  The T80 core runs at 50 MHz and the original Z80 only 6, the 8080 only 2.  The real IBM1130 had a 400 kHz clock, my version runs at 50 MHz - 125x and when I port it to the Nexys2_DDR, I am hoping for 100 MHz - 250x.  That 27 pass Fortran compiler will RIP!

For practical implementations of historically significant CPUs, a single FPGA will probably perform quite well.  I have often wondered how many FPGAs is would take to emulate the largest IBM360 or one of the Control Data machines (eg 6400).  At least in terms of the CDC machine, with no software out in the wild, the project wouldn't be worth doing.  I'm pretty sure some of IBMs code is available for license (free, I believe).  I see there are some 360/30 projects out there.

No, it won't keep up with a multi-GHz x64.

That really wide MUX is a PITA.
 

Offline Sal Ammoniac

  • Super Contributor
  • ***
  • Posts: 1670
  • Country: us
Re: fpga boards: curious about projects that *you* do, guys
« Reply #38 on: August 25, 2017, 02:01:24 am »
I like to replicate ancient processors, such as the 6502, 8080, and Z80.

I enjoyed replicating this really ancient processor from 1956:

That's really cool!
Complexity is the number-one enemy of high-quality code.
 

Offline Sal Ammoniac

  • Super Contributor
  • ***
  • Posts: 1670
  • Country: us
Re: fpga boards: curious about projects that *you* do, guys
« Reply #39 on: August 25, 2017, 02:12:51 am »
I have 2 pretty good books but only one is directly aimed at FPGAs and that is "Microprocessor Design Using Verilog HDL".

This is a pretty good book and easy to follow. It was written by the guy who designed the Rabbit micros, so he knows what he's talking about.

https://www.amazon.com/Microprocessor-Design-Using-Verilog-HDL/dp/0963013351

https://www.digi.com/products/rabbitprocessor

Complexity is the number-one enemy of high-quality code.
 

Offline dnotq

  • Contributor
  • Posts: 35
  • Country: us
Re: fpga boards: curious about projects that *you* do, guys
« Reply #40 on: August 25, 2017, 05:09:47 am »
So, what's the alternative for a newcomer?  They need something to help them climb the hill and most of what I see in other forums are just bits and pieces.
Where does the newcomer find a complete project, fully documented, that is understandable?  Personally, I have no idea!

This book is the book that did it for me:

https://www.amazon.com/FPGA-Prototyping-VHDL-Examples-Spartan-3/dp/0470185317/

I also really like this book too:

https://www.amazon.com/Digital-Design-Computer-Architecture-Second/dp/0123944244/

It gives VHDL and Verilog examples side-by-side, which really helps for learning.

However, I'm a self-learner and my interests and curiosity are what drive me.  I have found most other people need to be told "ok, now it's time to learn xyz" in a classroom setting before they will even consider the possibility of learning something new.
 

Offline dnotq

  • Contributor
  • Posts: 35
  • Country: us
Re: fpga boards: curious about projects that *you* do, guys
« Reply #41 on: August 25, 2017, 05:54:19 am »
I would like to work on a project to make an FPGA-based computer that could be a serious computer system, i.e. usable for personal information security, programming, graphics, games, sharing code and programs, and communication.

Like an fpga-based laptop? Or what?

Kind of.  Something portable and accessible for sure, but big enough to have a keyboard and a screen.  I really like the form-factor of the Ello 2M:

https://www.crowdsupply.com/yellow-beak-computer/ello-2m

I'm just really sick of the state of computers today.  It is getting to the point where you can't even trust the hardware in your computer, you have no idea what is going on with the OS, the barrier to creating software is very high, "programming" these days seems to be slapping poorly written libraries together, the "future" is perceived to be in the "browser" (which is the worse software development environment humans ever came up with),   etc. blah blah blah.

Hell, I have been programming assembly since 1983 and I can't even say for sure that my Windows 10 computer has not been compromised in some way.  I have no interest in spending all my time "maintaining" my computer.  I want to use it, play around, write code, share programs with others without worrying that my computer will be compromised, communicate confidentially, and just feel confident that I can trust my computer.

Also, computers a 1000 times faster than the systems I grew up with, so why is it that they are slower to start-up and I'm still waiting on the computer to do things??  All actions on a computer these days should be freaking *instant* from the user's perspective!  I don't need the cursor to animate between characters when I'm typing, enough already!

Hell, my TI-99/4A boots faster (instant on) and is more responsive than my modern 3GHz desktop computer.  Seconds after powering on a classic computer you could be programming, and that is *very* powerful!  No other systems are like that today, and I can't figure out why we lost that ability.  Even the Rpi fails to provide a decent environment (it boots into Linux for crying out loud!)  What a pain in the ass.  And if you try to kick Linux out and build your own OS on the Rpi, you lose access to the video parts since they are proprietary.

Now that you can't even buy a CPU that does not spy on you, I figure the only way to really get a system that you can trust, that is easy to use, and that does not have all the cruft of the x86 architecture, is to just build the system from the ground up.  Not what I would like to be doing for sure, but I thought we (the collective "we" that make up the technology world) would have created better systems by now...

I have some CPU architecture ideas that I would like to experiment with, as well as a basic system design.  Some of the basic parts would be an FPGA for the CPU, something reasonable like a Spartan 6 LX16 or LX25.  Another FPGA for a graphics subsystem and sound, and maybe something like an ARM for controlling interfaces like storage, USB, network, etc.  The CPU would clock around 200MHz, and the whole system would be balanced, i.e. the memory subsystem would be as fast as the CPU, network, storage, etc.

This is nothing over-the-top and would be cheap enough that it would be affordable to justify getting one to mess around with.  Anyway, that is the quick rant about it.  Any takers? ;-)
 

Offline stmdude

  • Frequent Contributor
  • **
  • Posts: 479
  • Country: se
Re: fpga boards: curious about projects that *you* do, guys
« Reply #42 on: August 25, 2017, 07:30:36 am »
I would like to work on a project to make an FPGA-based computer that could be a serious computer system, i.e. usable for personal information security, programming, graphics, games, sharing code and programs, and communication.

Like an fpga-based laptop? Or what?

Kind of.  Something portable and accessible for sure, but big enough to have a keyboard and a screen.  I really like the form-factor of the Ello 2M:

https://www.crowdsupply.com/yellow-beak-computer/ello-2m

My current plan-of-attack for this is to buy this: https://www.olimex.com/Products/DIY-Laptop/
Then, throw out the mainboard, and replace it with something like a Zynq.

Why that laptop, and not some other random one?  Well, this one comes with schematics and PCB design files, so I can keep the pinouts, board outlines and such to make my life a bit easier. :)
 

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: fpga boards: curious about projects that *you* do, guys
« Reply #43 on: August 25, 2017, 12:33:58 pm »
Why that laptop, and not some other random one?  Well, this one comes with schematics and PCB design files, so I can keep the pinouts, board outlines and such to make my life a bit easier. :)

So, linux on Zync's ARM core, and fpga used for VDU and keyboard controller stuff.
Interesting  :D

Here I have reversed the keyboard matrix of a laptop, and designed a matrix keyboard controller.
A customer want to integrate the keyboard controller inside an fpga of his PCB, and I had to develop the RTL part.

Now I can re-use the sub-project. In some way, as well as I can re-use a VDU sun-project. It's text only, something like VT220.
 

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: fpga boards: curious about projects that *you* do, guys
« Reply #44 on: August 25, 2017, 12:55:37 pm »
while the rest is tri-stated. If you want to emulate such a bus in FPGA, you'll have to use a huge MUX which selects the driver out of the list of all possible drives.

That is a common mistake that I have seen in projects around: internally to the CPU inside the fpga, instead being mux-driven to/from devices they wanted to use ... INOUT coupled to tri-states  :palm:

as well as when I was shocked to see that someone wanted to justify the use of 'Z' to express on the timing VCD diagram when signals are not-valid  :horse:
 

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: fpga boards: curious about projects that *you* do, guys
« Reply #45 on: August 25, 2017, 01:00:53 pm »
Another FPGA for a graphics subsystem and sound

Yup, good idea!
 

Offline b_force

  • Super Contributor
  • ***
  • Posts: 1381
  • Country: 00
    • One World Concepts
Re: fpga boards: curious about projects that *you* do, guys
« Reply #46 on: August 25, 2017, 01:05:28 pm »
I am actually looking for some minimal option (mostly price) to build something like an audio DSP type like thing with some ADCs.
Anyone suggestions (needs to be as cheap as possible for a customer)?

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: fpga boards: curious about projects that *you* do, guys
« Reply #47 on: August 25, 2017, 01:36:36 pm »
FPGA-Prototyping-VHDL-Examples-Spartan-3
Digital-Design-Computer-Architecture-Second

Yup, good books, I have a paper copy of both, and I bought en ebook of the second one.

Oh, an other good good book is: Real World FPGA Design With Verilog.

It's Verilog-only oriented, but it talks about ASIC pointing out a lot of interesting things and best practices. It's a bit old and all the software in the CD is pretty useless because we have Icarus nowadays,  but it looks very interesting to me. I found a copy on Ebay for 5 euro + postage.
 

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9890
  • Country: us
Re: fpga boards: curious about projects that *you* do, guys
« Reply #48 on: August 25, 2017, 01:59:44 pm »
So, what's the alternative for a newcomer?  They need something to help them climb the hill and most of what I see in other forums are just bits and pieces.
Where does the newcomer find a complete project, fully documented, that is understandable?  Personally, I have no idea!

This book is the book that did it for me:

https://www.amazon.com/FPGA-Prototyping-VHDL-Examples-Spartan-3/dp/0470185317/

I also really like this book too:

https://www.amazon.com/Digital-Design-Computer-Architecture-Second/dp/0123944244/

It gives VHDL and Verilog examples side-by-side, which really helps for learning.

However, I'm a self-learner and my interests and curiosity are what drive me.  I have found most other people need to be told "ok, now it's time to learn xyz" in a classroom setting before they will even consider the possibility of learning something new.

I ordered the 2d book "Digital Design..." - building a MIPS processor seems like a worthy goal.  The first book is a little pricey for my tastes.  Still pretty pricey at Alibris too...

Pong Chu has also written "RTL Hardware Design Using VHDL...", again, pretty expensive.  I have this book and it's excellent.

I think I am more interested in books that present a project.

Now, if someone would upgrade the Spartan 3 book to Artix with Vivado, I'd be all in to order today.  Just the Vivado topic would take volumes!  That's an amazing tool once you have enough computer horsepower to use it.  Attention span foreshortens with age.
 

Offline Sal Ammoniac

  • Super Contributor
  • ***
  • Posts: 1670
  • Country: us
Re: fpga boards: curious about projects that *you* do, guys
« Reply #49 on: August 25, 2017, 02:51:14 pm »
Also, computers a 1000 times faster than the systems I grew up with, so why is it that they are slower to start-up and I'm still waiting on the computer to do things??

Depends on how the machine is put together. I recently built a new machine with an AMD Ryzen CPU and an M.2 NVME SSD as the system disk. This system gets to the Windows 10 login screen six seconds after pressing the power button. Once booted, the machine is very fast and responsive with no perceptible lag when doing any typical task.
Complexity is the number-one enemy of high-quality code.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf