#fpga

1 messages · Page 3 of 1

sinful mantle
#

He talks a little bit about his fpga project

plucky helm
#

(I got the chip responding over i2c last night too.)

remote sky
#

Yay FPGA channel

pseudo moat
#

Yah! I guess this channel is off to a gate start!

vast moat
#

AbsoLUTely!

remote sky
#

It will likely get a muxed reaction..

west bison
#

🎉

west bison
plucky helm
#

@west bison nice! I was hoping to use nmigen for it though

west bison
#

ah ok

#

well a good reference anyway maybe

remote sky
#

Actually converting (manually) from Verilog implementations to nmigen ones is good practice IMHO

lyric vortex
#

@plucky helm does nmigen needs the diamond tool from lattice to make bitstreams for it?

#

And also, I have my board connected via i2c but the scan halts my poor trinket and I have to reset it.

#

Haven't been able to find a working version of adafruit_jtag to test the other examples.

plucky helm
#

@lyric vortex yes, you'll need diamond

#

the i2c can be disabled if loaded another way

#

I can find my jtag stuff later. I was able to erase it with jtag

lyric vortex
#

What I couldn't find was the adafruit_jtag library. The one on github seems like a fork of the tiny a programmer.

plucky helm
#

ya, that's what I started with

glad bough
#

Hey guys just wanted to know if there's any FGPA simulator online web browser based ?? I am new to FGPAs

silk verge
stark trench
#

Edaplaygound is good too

west bison
#

sort of a project euler for hdl

#

but not as hard

hazy karma
#

They support the major HDLs

stark trench
#

Yeah, I use EDAPlayground for my graduate Systems Verification class

hazy karma
#

I still wish there was something a bit more like Arduino for FPGAs. In the sense of an universal platform with lots of open-source libraries that are easy to integrate

silk verge
#

The Arduino people have been working toward that. The idea was that people could program their MKR Vidor 4000 with the Arduino IDE fairly simply.

#

The IceStudio project has done a good job of giving a graphical way to program FPGAs, and it does come with a selection of libraries and examples, and is extendable, so you can create your own blocks with Verilog in them and connect them with the existing ones.

hazy karma
#

That would already be a great improvement

lyric vortex
#

If anyone needs any help getting started with Icestudio, glad to help.

robust lagoon
#

I have it booting on an Lattice HX8K evaluation board

#

It takes up about 5k LUTs and can run up to 17Mhz as projected by NextPNR

#

I'd be very grateful for feedback and things that I should learn about and improvements

#

I had to clock the CPU on the positive edge and the RAM on the negative edge to keep the signals stable during the read/write phases, but this feels like a sign i'm doing something wrong.

#

I'd love to get better with FPGAs so any advice would be appreciated

muted sentinel
#

Hello

#

can someone here help me understand a detail about wishbone granularity?
If I attach a memory with 64 bit width and 8bit granularity, then the address would reference 64 bit wide segments, right? becuase the selection of each 8bit slice is done via the sel lines?

plucky helm
#

@muted sentinel I'd suggest asking in the 1bitsquared discord. there are more fpga folks there

small prism
#

hello guys, i am searhing this days how can i have data transfer between pc and fpga (nexys2)
do you have any ideas?

stark trench
#

@small prism you might try to use a serial to USB adapter

#

I’m not very familiar with the nexys2 though so I would have to see what kind of interfaces it has.

final bronze
#

@small prism I think you have to use the UART port. the Nexys 2 doesn't really have any high speed IO. not even USB IIRC.

small prism
#

I am trying to take data from fpga

#

I have already the fft but I need the communication

wide dagger
cinder stump
#

Has anyone else had the problem where, when using the VGA, their monitor displays "Input not supported" or just a black screen?

#

I've already checked my clock speed, and I'm pretty sure it's at 25 MHz. Everything simulates correctly (using Vivado/writing Verilog), but when I push to board I have problems.

vast moat
#

I'd say that's par for the course in getting video to work for the first time. All sorts of timing subtleties in the sync signals, etc. I don't suppose you have an oscilloscope to check what the board is putting out?

cinder stump
#

Nope. Ended up figuring out my problem- clock speed was wrong, and I was putting the wrong outputs in the wrong places.

stark trench
#

Hey there FPGA peeps! I’m looking for 1 maybe 2 people to send some beta boards to who would be interested in helping develop a good software interface for programming ICE40 fpga with SPI/i2c.

silk verge
#

Nicer than IceStudio/IceStorm?

stark trench
#

More of a bare metal kind of approach using MCU for programming the FPGA

#

More focused on how someone could load the bitstream via SPI/i2c with circuitpython

#

Scott was working on a library for it though I haven’t looked to see how far he’s made it with it

silk verge
#

CircuitPython? Now there's an avenue I hadn't considered.

grizzled aurora
#

Whats a fpga

wide dagger
full mortar
#

@stark trench sounds really awesome, don't have time right now but truly fun!

stark trench
#

🙂

grim cradle
#

Anyone knows about storing | saving | calculating a matrix value in fpga ? or have some good references to this ?

vast moat
grim cradle
finite moon
stark trench
#

Yeah! Send me an email: hello@oakdev.tech I’m hoping to have beta boards sent out by the end of January

finite moon
#

Will do. Anything specific I should include in the email?

stark trench
#

Your name and interest in beta testing the boards

#

I’ll follow up when it’s time to send the boards to get your address

finite moon
#

@stark trench I’ve sent the email. Just wanted to let you know.

stark trench
finite moon
stark trench
#

👍🏻

stark trench
#

@finite moon response email sent

burnt lantern
#

Normally I don't share GoFundMe campaigns, but this one is very relevant to this community. Claire Wolf is the original author of Yosys, Icestorm, NextPNR, and other free/open source tools for FPGA programming. She founded a company, with someone she later found out was an abusive, racist bigot, who eventually fired her and anyone else on the team who hadn't already quit, and now he's using the non-compete due to her being a shareholder to prevent her from continuing work on the projects that she had started. Some friends have started a GoFundMe (with her blessing) for a legal defense fund to help extricate herself from this mess: https://www.gofundme.com/f/help-claire-wolf-defend-her-lifes-work

gofundme.com

Author of YoSys, Project IceStorm, NextPNR, PicoRV32 - Founder of the Opensour… James Walmsley needs your support for Help Claire Wolf Defend her Life's Work

#

I wrote up a thread with a little more explanation and links to original sources: https://twitter.com/unlambda/status/1357472995778981888

Claire does some really important and foundational work in free software logic synthesis, and she's being taken advantage of and prevented from doing more work by an unscrupulous, abusive, and racist former business partner.

This campaign is being run by friends with her consent https://t.co/4f1IqhlFrM

silk verge
#

Seems like that GoFundMe is no longer accepting donations for some reason. I wonder if it's practical to buy her shares so she's no longer a shareholder.

frosty cypress
#

"The organizer has currently disabled new donations to this fundraiser."

trim pivot
#

Looks like she's now able to pursue more openFPGA development: https://twitter.com/oe1cxw/status/1357689234308661250?s=20

UPDATE

Thank you all for your outpouring support and love! I'm so incredibly touched by all your messages.

He has signed the documents today morning that finally resolve the non-compete issue.

But it's your love (and that legal defense fund y'all created) that set me free.

Likes

348

limber dirge
#

Any suggestions for a starter kit for learning FPGA?

stark trench
#

What kind of computer do you have?

#

That will mostly determine your options because some board tool chains only work on windows systems

#

In terms of just learning HDLs, EDAPlayground is a great tool

silk verge
#

The Nandland Go board is nice, includes buttons, a pair of 7-segment displays, and a VGA output. It can be programmed using IceStorm (or IceStudio) on any modern computer.

cyan tree
#

I have a DE0-Nano which has a few buttons, LEDs, dip switches, A/D converter, 32MB SRAM, an EEPROM, and 100 or so GPIO pins, and a USB blaster. I'm using Quartus Prime Lite on a Linux VM to program it (it also runs on Windows, not Mac). Not much in the way of documentation, though, and the tools take some getting used to. Most books etc I found so far are about the Xilinx toolchain, not the Intel / Altera one for by this board. I was a complete FPGA beginner when I got this board, but not a beginner in general; if you haven't done any kind of development at all, then maybe this board isn't the best choice because you'll have to figure out a lot of stuff for yourself w.r.t. the programming tools, the simulator, etc.

limber dirge
#

Thank you for the suggestions.

limber dirge
#

I've got a Nandland Go board on the way. <Sitting in front of door like Scott Pilgrim waiting on their package now.>

limber dirge
#

Yay! Nand Go Board arrived. I'm impressed with the build.

silk verge
#

I like mine, and after about two weeks of learning, was able to output a VGA signal

glad bough
#

;) that's a nice pattern.

obsidian iron
#

Looks like a flashback to old TV test patterns!
check spedometer
Oh, he's at 88MPH - it likely IS an old TV test pattern! 😄

lyric vortex
#

Yuck. m-labs just copyrighted "nmigen" 😦

obsidian iron
#

Bleh. Could try copyrighting (or copylefting?) nrnigen and go for the keming (kerning) confusion?

thin heron
silk verge
#

I was aiming low to start with, and leveraging the built-in 25MHz clock on the Go board, so 640x480. Figured I'd get that working, then go higher.

cyan tree
#

Nice, I'm trying to build my own UART from scratch. All I have to show for it right now is SD!xsa,FN?213 and other junk on the receiving end. 😉

cyan tree
#

This would be a lot easier to debug if I had an oscilloscope or a logic analyzer.

silk verge
#

You might be able to capture debugging info with the microcontroller you're (presumably) using with it

cyan tree
#

Yeah I'm using an Arduino so I'm writing some code to capture what actually gets sent.

cyan tree
#

Haha amazing, the reason it didn't work was that I had misread the pinout on the Arduino and mixed up RX and TX. What a n00b thing to do. The good thing is: I managed to verify that the FPGA does the right thing and all the timing is correct, so it wasn't really a waste of time. But still 🤦‍♂️

silk verge
#

That sounds like something I would do: get the complicated part right and goof on something simple.

cyan tree
#

It just goes to show that bugs are in your head, not in the code.

ivory arch
#

Dazzelite is an easy to build project that uses a low cost FPGA board to displays multi colored patterns of light, on a ring of 24 LEDs. One can use the default display patterns or, create your own, no software knowledge required. Take a look at the video https://vimeo.com/516437596 or dive right into the project https://github.com/ggrummer/Dazzelite

Vimeo

Dazzelite uses a tri-color LED ring to produce different light displays. Dazzelite is programmable, so the displays are only limited by your imagination.

▶ Play video
lyric vortex
stark trench
#

I saw that. Pretty cool

cyan tree
#

Is there really much benefit to programming FPGAs with C++? It seems like the wrong kind of abstraction to me (but so does Verilog / VHDL to a large extent).

stark trench
#

Interesting enough, Verilog is very much like C

cyan tree
#

I've heard other people say that, but I don't see it. Some of the syntax is a bit C-ish but the rest is more Pascal-like.

stark trench
#

All the time I’ve worked with Verilog has felt very much like C, but I’ve never used Pascal. I will say that a number of academic books teaching Verilog does mention that Verilog was designed to be comfortable for C programmers

cyan tree
#

Pascal uses the begin / end syntax. I wonder why Verilog doesn't use { } if making C programmers feel at home is one of its goals. The main issue I have with these languages is that you can't just learn the language, you also need to understand how it maps its constructs to the hardware. It seems like you can choose better language constructs if you know the hardware will be an FPGA (but of course Verilog + VHDL weren't designed exclusively for FPGAs). As someone with a programming background, I would have preferred it if the languages looked less like a programming language.

stark trench
#

You’re not wrong in that regard

#

I feel HDLs got far too abstracted

#

But none the less, it’s what we have to work with. At least some tools will give us block diagram representations of our HDLs to make hardware designers feel better 🙂

cyan tree
#

I'm only a n00b but I spend a lot of time looking at the RTL to see if the code I wrote actually makes sense (and then sometimes it still doesn't because the optimizer decides to remove things because the RTL violates some kind of constraint that apparently applies to FPGAs).

#

It's fun learning about this stuff but the tools seem suboptimal.

stark trench
#

Vivado is pretty good, but layered abstraction in HDL design is important

#

I was taught that you always build off the smallest logical components first and then build it into your top level

#

It’s time consuming and frustrating but that’s why FPGA designers make the big bucks

cyan tree
#

Yeah that makes sense. The main challenge for me is to figure out what the proper design patterns are. General textbooks on digital design are a bit misleading in that regard because they don't really go into the limitations that FPGAs have (such as only being able to clock a flip-flop using an actual clock, not any arbitrary signal).

stark trench
#

Yeah, and designing a clock divider block isn’t the most straight forward either

glad bough
#

Nix!

stark trench
cyan tree
#

I think some of that may be justifications made after the fact (Verilog goes back to the mid 1980s).

stark trench
#

Doubtful

#

It first appeared in the 80s, but a majority of its history started when Cadence bought it.

#

C and FORTRAN are considered the primary influences of Verilog development

cyan tree
#

It doesn't really matter to me one way or the other, but it doesn't look like C and doesn't work like C, so /shrug. (I mean it looks more like C than VHDL does.)

stark trench
#

As well as SystemVerilog sinc they merged early 2000s

#

It actually does have a number of similarities to C like syntax, structure, and a simple preprocessor

#

Sure it doesn’t use {} but I write a lot of C in my day job and have done a bit with Verilog/SystemVerilog and it’s pretty easy to jump back and forth

#

I do like VHDL more though for actual FPGA work. Verilog/SystemVerilog are great for simulation though

#

Last comment slightly unrelated

cyan tree
#

What's the reason you like VHDL better? It just feels like more typing but the same functionality to me, but I haven't used it enough to make a proper judgement.

stark trench
#

It’s more verbose so it tends to be more literal. And the routing in VHDL is a little more efficient

#

Many professional FPGA designers would probably argue the last point but at least for what I’ve done it’s been better.

cyan tree
#

I'll need to give it fair chance I guess. 😄 Still need to try SystemVerilog too.

stark trench
#

Verilog/SystemVerilog are essentially the same

cyan tree
#

Not in Quartus 😉

#

I'm just a learner too.

#

That just happened to be the FPGA development board I bought 😄

#

That's way out of my league for now.

stark trench
#

Spartan 6 would put you in the realm of the basys 2 board

#

I’ve mostly used Xilinx boards but I’m trying to get into designing my own FPGA dev boards

#

Right now I have two boards based on the Lattice Semi ICE5LP QFN package fpga

stark trench
#

They are easy board design wise, but the biggest issue is finding open tool chain support for the smaller FPGAs

#

I’m attempting to figure out doing DAP to program the feather wing I’ve made and that appears to function

#

Lattice tool chain requires a lattice programmer

#

Those are pricy

#

Last I looked, over $200

#

I’m trying to program without having to buy an expensive programming tool

#

But I’m also optimistic that I might be able to use the SPI Driver that Adafruit sells

stark trench
#

FT232R can be bit banged for jtag with diamond programmer

#

Finding this out as I redownload Diamond Programmer and try to use SPI Driver

#

Which apparently doesn’t have a compatible FTDI chip

#

But the FT232RL on my Mega Sapling is

#

So I’m following a guide from OpenOCD to build a PCB with a FT232RL to program my Lattice Wing FPGA feather wing

stark trench
#

$0.45 more than the ft232r. not a bad option

#

looks like the ft232h is also an option for cheaper than $4

stark trench
#

mostly just exploring and developing digital designs

#

i'm starting a efabless semiconductor company with my background in computer engineering, digital design, and VLSI

#

FPGA are a great way to develop devices initially and create proof of concept designs.

#

efabless means i just make the design and have the fabrication outsourced

#

it's the same as far as i am aware

#

i'll be designing basic asics for Visible Light Communication devices that operate using free space optics

#

efab appears to be a company that created an open workflow for asic design and production

#

efabless and Skywater semi are working with Google to provide more open source chip fabriaction and design

vast moat
#

Very cool. I did some long-distance FSOC work before.

stark trench
#

if you follow the guidelines for Skywater & Google's process, it's free

#

but your project has to be selected for it

#

they use 150 or 145nm process

#

it has to be by nature

#

but it can still be a for profit company

#

I'll be developing the designs in HDLs and probably do some super basic planning using mosfets if i'm feeling edgy

#

it's pretty similar to IR communication

#

well, that depends

#

at it's simplest, would be a transmitter which would be high speed/ high resiliency IC to drive an LED or LED network

#

generally VLC uses OOK

#

which is on and off keying

#

it uses varying levels of intensity to represent 1's and 0's

#

yeah

#

but VLC isn't limited to that, you can perform all kinds of modulation schemes with VLC

#

you can stimulate multiple parts of the spectrum

#

and remember that visible light is very broad

#

and not all green, blue, red, amber, etc... leds are the same wavelength

#

so you can do FM,AM,QAM even

#

but complexity increases costs

#

and implementation

#

but transmission is mostly SDM

#

software defined modulation

#

the receiver is where it gets tricky

#

my team has reworked an open source design that is basically our study point

#

this design isn't a custom silicon chip though

#

just a combination of ICs and software

#

3 people

#

not yet open, but once i finalize my company filings in the coming weeks then we'll be working on our first major revision of said open source design and whatnot.

#

we've completed phase 1 of a NASA funded SBIR, applied for phase 2

#

there really isn't a custom VLC IC yet

#

it's mostly amalgamation of various ICs

#

SBIR Small Business Investigative Research? let me check the acronym

#

innovative rearch*

#

the main sponsor company gets the funding

#

but we basically use the funding to buy materials and whatnot

#

yeah, the team i'm on, myself and another guy are unpaid supporters for phase 1, but phase 2 we actually will get to be paid 😛

#

And this time around, my company will be paid for contributions for PCB design consulting while my company uses the funds received from those contributions to fund the semiconductor development

#

not currently, it's still very much in the infancy stage. getting development boards acquired/built and set up

stark trench
#

we are aiming at cubesats and space IoT applications

#

we're planning for high speeds. though our technology is using LEDs rather than lasers, so our target speeds are more conservative since they are intended for low power space applications

stark trench
#

just communication between satellites

#

aside from massive powerful lasers and powerful RF comms, there isn't any reliable way to use LEDs to communicate to the ground

#

but the idea is to make it easier to communicate between satellites

stark trench
#

Probably similar but with the exception that depending how on the wavelengths you chose, you don’t have to deal with EMI

stark trench
#

Given the right frequency yes

vast moat
#

Fortunately it's relatively easy to filter out a DC background against a fast-changing communication signal as long as the sunlight isn't saturating your photodetector.

stark trench
#

It’s also beneficial to remember the dominant wavelength of sunlight in space. It’s much different than we experience on earth due to filtering through our atmosphere.

#

You can look this up, but most research indicates that the sun doesn’t produce nearly as much between the longer wavelengths of purple and the shorter wavelengths of green.

#

Our sun’s dominate range of visible light is the Red to Yellow-green spectrum and then UV side of purple

#

Our project lead has a Ph.D and has helped author/peer review such research so...

#

He’s also been working with VLC & space applications of such for well over 10 years.

#

Well, VLC is all about filtering known spectrum

#

There’s IEEE standards on VLC already

#

Lol

#

VLC/FSO

#

Nah, just parameters for communication protocols

#

It’s part of the IEEE 802 communications standard

#

Yeah, but you can use “used” bands

#

Because VLC creates fluctuations in intensity, you look for those signals represented as micro voltage changes

#

Apparently, but don’t worry too much, we have working prototypes so far and are making them better. Hopefully we’ll have a few cubesats in space by the end of the year

#

We’re working on a mission to test our basic system which is really fun 🙂

#

We’re looking at testing between 0.25km and 2km

#

They will travel in a small constellation

#

In LEO

#

Yeah

#

We don’t anticipate it working at distances greater than 5km

#

Nah, the goal is supporting robust communication between satellites in a constellation

#

Radiation hardened ICs are not necessary for short term missions

#

It’s just horribly cost prohibitive to try an use them on something that will be in space <6 months

#

You just kind of deal with it. You can add shielding to the PCB with say noise sensitive components

#

We’ll use the watchdog and rebooting method

#

They estimate that cube sats in LEO experience radiation related reboots every 3 weeks

#

This a pretty good thread lol

#

Yeah, xinabox is probably what my team is using

#

They also have a ground station kit to go with it

#

I need to get more equipment. There’s a cube sat conference that happens about 50 minutes north of me every year

#

Hope they’ll have it this year

vast moat
#

Depends on how tiny. Sunlight photons would be basically a Poisson source of noise, so you can calculate how much it varies on the > MHz time scale. It tends to be fairly favorable to be able to electrically reject a DC level and just keep the high-speed signal on top of it.

#

It's the same principle used with TV remotes. Even if you have sunlight shining on the receiver, it can still pick up the command coming from a little LED because it's flashing at 38kHz and the TV is looking specifically for that frequency.

#

Yep, exactly. You know the overall intensity of sunlight, and it's coming from randomly-generated photons, so the noise level you see in a detector (which might pretend to be a 0->1 bit if it happens very fast) would be due to that.

#

There are single-photon receivers like avalanche photodetectors. Usually you wouldn't want a receiver that sensitive and fast, though. Optical communication usually uses many photons per bit, but there are some very long-range systems which care about single photons.

#

Amusingly, you can actually send more than one bit per photon if you're careful about timing exactly when you send and receive it.

stark trench
#

We actually use PIN diodes

#

They behave much better than avalanche diodes in terms of FSO

#

Less likely to be saturated too quickly and have a higher tolerance for environmental light source interference

#

Single photon detectors are where we are moving, but they are very expensive right now as the technology is still very new

stark trench
#

There are two that we are using currently

#

I don’t have links or remember the part number off the top of my head

#

They are on Digi-Key though

#

But basically we are just doing simplex communication at around 400kbps

silk verge
#

I didn't think photomultiplier technology was particularly new, but perhaps you had some other single photon sensor in mind

stark trench
#

And they are really expensive

viscid anvil
#

Hi, I was wondering if anyone has experience or knowledge about using a spartan 7. I was thinking of trying to use one that is of the bga variety, but I never soldered one before. I have a reflow oven....

vast moat
stark trench
#

Definitely practice with cheaper BGA components

#

Lattice Semi make some affordable BGA fpga chips

#

But you could even start cheaper with BGA LDO or boost converters or SPI Flash chips

lyric vortex
#

Not sure if this are widely known, the eFPGA part is new to me. But in the same format as de fomu, this is a cortex m4 with an eFPGA (embedded).
https://www.crowdsupply.com/quicklogic/qomu

Crowd Supply

An MCU + eFPGA dev kit with 100% vendor-supported open source tools that fits inside your USB port

vast moat
#

The EOS S3 is a cute chip, yeah. It also has a low-power DSP core. There's a QuickFeather board available in a more full-featured form factor.

lyric vortex
#

Nice price, seems like a nice board.

viscid anvil
#

Does anyone know the commercial license cost for vivado?

#

Is there a cheapper ide for vhdl?

#

$3k?!

stark trench
#

IceBreaker is open source

#

But that’s for lattice fpga

vast moat
#

Do you really need a commercial license? You'll often get a limited license with an FPGA eval board, and some Xilinx chips are supported by the free Vivado version.

stark trench
#

Most all eval boards are supported with Vivado

#

There’s also this

#

It would probably work on an RPi

#

It supports up to Zynq-7000 which is pretty cool

viscid anvil
#

Yup, I've used the webpack, but I plan on selling some stuff and I'm thinking I need to purchase the commerical license.....

stark trench
#

Don’t buy it until you’re actually selling

#

Typically there’s grace periods for small companies

#

Because basically if you buy it now, you have a huge capital expenditure that you have to make up for, rather than purchasing the license out of existing revenue which is easier to justify on your balance sheet

#

For instance, I’m riding out the length of my fusion360/eagle cad student license

#

Because it’s $400 a year after it expires

viscid anvil
viscid anvil
#

If you create something that requires some firmware, then the IDE that created it should have a commercial license. YOur selling the thing + the firmware....so yeah.

silk verge
#

There are companies that use stuff like Eclipse to build their IDEs, then violate the Eclipse license by not open-sourcing the IDE.

viscid anvil
#

Since the thing I'm working on will have a foucus on the 'special sauce,' I'm inclined to keep things on the up and up..

copper laurel
#

Anyone knows if FPGA can modify itself? Ping when answer

drowsy herald
#

@copper laurel I think what you mean is, can an FPGA dynamically change its circuitry to implement a new logic design, without reprogramming it? If that's what you mean, then the answer is no. The good news is that you can code your design such that signals will be routed to different circuitry under different circumstances. Does that answer your question?

stark trench
#

Yeah, unless the FPGA is on a SoC/SoM it’s static.

#

Some FPGA program from FLASH, so it’s possible that it could have different stages or functionality depending on how the FLASH is programmed. But it’s still not “change itself” it still requires some prompting

copper laurel
#

That's what I needed. But now it's irrelevant cuz I know I can make filter after quantisation, no need to limit it before sampling

limber badger
#
  1. VHDL course- brand new course about VHDL language.
    https://www.udemy.com/course/learn-vhdl-from-the-beginning-for-fpga-and-cpld-development/?couponCode=E7E7C0C0397346299649

  2. VIVADO course - learn how to connect the VHDL files to xilinx FPGA design and load your FPGA from zero.
    https://www.udemy.com/course/vivado-learn-from-the-beginning-and-with-pcie-full-project/?couponCode=DCA39C98474970DB5AC5

  3. Flash memory VHDL course - advanced vhdl course, learn how to read/write and configure a flash memory and work the Quad SPI protocol from you FPGA and store data to the flash memory.
    https://www.udemy.com/course/fpga-vhdl-coding-qspi-nor-flash-memory-from-zero-to-hero/?couponCode=944FFE5C230FF9C6BDEC

  4. Arduino course - learn how to build Iron Man arm with voice recognition and more usable arduino modules!
    https://www.udemy.com/course/arduino-build-your-own-bionic-arm-with-voice-recognition/?couponCode=39FF76E88D839B845609

  5. Fifo course - learn how to use VIVADO fifo modules and the method and uses of a Fifo.
    https://www.udemy.com/course/vivado-regular-fifo-vs-axi-fifo/?couponCode=560F41FF9AE8BB6F99D4

My site:
https://ofer293.wixsite.com/fpga-vivado-vhdl

Udemy

Learn how to code in VHDL from zero for FPGAs and CPLDs of Xilinx / Altera(Intel) / Lattice and Microsemi

Udemy

FPGA development with Vivado design suite to design Xilinx FPGA FROM ZERO using VHDL or VERILOG language!

Udemy

Learn how to Read/Write and work with QSPI Flash Memory with FPGA using VHDL code & Simulate with Modelsim from scratch!

Udemy

Learn Arduino by building a 3d printed Iron Man Arm with Voice Recognition, Accelerometer, Sounds, and more electronic

Udemy

Learn what FIFO is and how to use FIFO IP Cores of Vivado Xilinx FPGA tool

#

The iron man arm coming with adafruit sound board so you can put jarvis inside

limber badger
hollow orbit
#

I just got VexRiscV to run on a xc7z010clg400-1 at 366MHz. I figured out how to control the bandgap voltage reference on it too. The Xilinx data2mem dump bitstream commands mode outputs information on some of the registers required to control it.

#

this is the data2mem partial output after changing CTL1 and Mask registers using prjxray

#

you can set mask to 0x3e7dc

#

and CTL1 to 0x3e7dc

#

and then change the VCCAUX voltage to 3.3V and VCCP to something between 2.1 and 2.2V.

#

The FPGA will need lots of extra cooling if you want to attempt doing this.

#

PicoRV32 ran at 633MHz too.

#

really simple logic might run at over 1GHz too.

#

I tested this on a EBAZ4205 FPGA board.

#

mostly because they are really inexpensive in case something burns up.

stark trench
dull nexus
dull nexus
#

This channel doesn't seem to be very active

silk verge
#

That seems to be the case. I didn't reply to your question as I don't have experience with either of those. I've kind of set aside FPGA stuff for a while, as I got some discouraging comments on another Discord.

sand finch
#

I haven't ventured into FPGAs at all

vast moat
#

They're fun, but very different in how you have to think about coding.

gloomy kettle
#

I do have a Cyclone II, but I've not used it at all.

cyan tree
#

I've still got some FPGA projects planned but they take a lot of time.

gloomy kettle
#

I'd like to play around with some Z80 stuff, but I have no idea. lol

cyan tree
#

You mean with a real Z80 or reimplement the Z80 using an FPGA?

gloomy kettle
#

Both

cyan tree
#

Well, my suggestion would be to buy some books from the 1980s and 1990s, or look on archive.org. For example, I have Microcomputers and Microprocessors by Uffenbeck and it explains how to design a system around the Z80.

glossy void
#

What kind of development boards do people usually start with? I see a couple of lattice ice40 or something on crowdsupply, and have also considered a lichee tang?

vast moat
#

I usually start with a vendor eval board, to get more official support and documentation. Lattice has some fairly inexpensive options for their chips.

silk verge
#

The Z80 is a 5V CPU, almost all FPGAs have 3.3V (or lower) I/O signals, so you'd probably need logic level shifters between the FPGA and Z80. You'd probably need some additional logic to control the direction of signal flow through the shifters as well, but you can probably stuff most of that logic onto the FPGA, but likely not quite all of it.

dull nexus
#

I'm excited about getting it, but no idea how to use it

west bison
cyan tree
#

You may also be able to configure the FPGA to use 5V on the I/O pins.

silk verge
#

I don't know of an FPGA that supports 5V I/O, but it would be nice to find one (especially if it's a brand with an open source toolchain)

cyan tree
#

I thought my Cyclone could but it looks like it's only 3.3V and lower. (It's fixed to 3.3V on my dev board anyway.)

stark trench
#

renesas has entered the chat

#

Less than $0.50 a piece at volume!

vast moat
left steeple
#

Yeah that's very cool

silk verge
#

An FPGA vendor offers decent software for FPGA development, that's a welcome development!

versed atlas
stark trench
#

Not sure

versed atlas
# glossy void What kind of development boards do people usually start with? I see a couple of ...

The ICEstick from Lattice is a good board to get started with FPGAs.

https://youtu.be/lLg1AgA2Xoo - This YouTube series explains how to use with open source software. I was able to get things to work following the video

A field-programmable gate array (FPGA) is an integrated circuit (IC) that lets you implement custom digital circuits. You can use an FPGA to create optimized digital logic for things like digital signal processing (DSP), machine learning, and cryptocurrency mining. Because of the FPGA’s flexibility, you can often implement entire processors usin...

▶ Play video
versed atlas
# dull nexus I'm excited about getting it, but no idea how to use it

https://youtu.be/lLg1AgA2Xoo - Check this out. I liked his explanations

A field-programmable gate array (FPGA) is an integrated circuit (IC) that lets you implement custom digital circuits. You can use an FPGA to create optimized digital logic for things like digital signal processing (DSP), machine learning, and cryptocurrency mining. Because of the FPGA’s flexibility, you can often implement entire processors usin...

▶ Play video
dull nexus
versed atlas
#

The Arty S7-50 FPGA board from Digilent is also a good starter board. You use the free Vivado tools to work with it. I just got my PMOD OLEDrgb working with it. As I had spent time earlier understanding the process, getting this to work took just ~30 mins.

glad bough
soft mauve
#

RIght on. Vivado can be somewhat "brutal". 😅 Stick with it. 🙂

silk verge
#

I tried for a long time to get Vivado to work, finally gave up and went with IceStorm.

glad bough
# silk verge I tried for a long time to get Vivado to work, finally gave up and went with Ice...

I have a TinyFPGA that I've used iceStorm with. I like the tools better, but I need the I/O that the CMOD A7 exposes. I'm not quite ready to make my own boards, yet. ICE Storm was very easy to get up and running. I may also order an Alchitry CU from DigiKey (assuming they're in stock). I have a Mojo from back when Alchitry was named Embedded Micro. It's a shame that Justin hasn't been more involved in the community. He made great tutorials and I really liked where the Mojo was headed.

silk verge
#

I started with a NandLand Go board, I've looked at the Alchitry ones, but ended up getting some of the other Lattice evaluation boards from Digikey. I'm also wondering if I can repurpose one of the ColorLight 5A-75B boards designed to run LED panels.

#

I've had good luck with the OneBitSquared iCEBreaker board as well.

glad bough
#

It seems that SparkFun has the CU in stock. That one has a lot of I/O and works with IceStorm. I just ordered one along with the expansion board. The additional Qwik connector will come in handy, I'm sure.

#

I remember almost buying the NandLand Go board. He had some great tutorials on YouTube, but I couldn't seem to find anything current.

silk verge
#

The Nandland support in IceStudio was partial, but workable, they've since improved it. After playing with it for a couple of weeks, I was able to use it to generate a VGA signal

glad bough
#

Awesome!

silk verge
#

The iCEBreaker board has PMOD modules available to produce VGA, HDMI, and assorted other peripherals

glad bough
#

That's why I'm trying to get a lot of IO. I'd like to make a video synthesizer and I'm going to use the ADV7125 High Speed Video DAC

silk verge
#

Heh, I'm trying to reproduce the old Atari Visual Music

glad bough
#

I got a pong game working on the Mojo using a "repurposed" VGA cable from an old CRT monitor I found on the side of the road.

#

VGA is a lot of fun because you have to learn about the different clock domains

#

I bought the HDMI shield for my Mojo, but I recently reinstalled my Windows and I don't know if I'm up for installing ISE WebPack again.

silk verge
#

I tried it that way, and was admonished by the experts to stay away from that, and stick with a single clock domain and synchronize everything to that.

glad bough
#

It makes sense, you can do a lot in the cycles between scanlines

#

I'm just wondering what the difficulties of a 24-bit color space will be compared to the 8-bit color space I was playing with before. I created my own resistor DAC, but this time, I want to use the real thing.

silk verge
#

I had plenty of time to do stuff, since I could leverage the "everything in parallel" nature of FPGAs. I would hope a similar situation would apply to 24-bit color.

glad bough
#

I got so frustrated with Vivado this week that I broke out my Trinket M0 just to remind me that electronics is supposed to be fun.

#

Do you have any links to your FPGA projects online?

silk verge
#

Not yet, I was having fun with it for a couple of weeks and making all the beginner mistakes then got some really insulting feedback online and put it all on a shelf.

glad bough
#

I don't interact with the FPGA community. Mostly because it's all academic and they obviously know more than I do about it. I don't expect them to be able to converse deeply in the things that I've been doing for the past 20 years, so I guess they don't expect me to converse in things they've been doing for 4.

soft mauve
#

There are at least a few "hobbyist friendly" FPGA Discords etc. out there I've found. 🤔 Here is my FPGA VGA "retro video card" project, using all open-source tools and iCE40UP5K FPGA. This is to add Amiga/AtariST like video capabilities to UART based 68000 Tindie computer kit (and eventually write a little "demoscene" demo for it). 😅 I'd say it is about 90% done. The next step is to add some Amiga-like audio (FPGA is only 86% full...). 🙂 https://hackaday.io/project/173731-xosera-fpga-based-retro-video-graphics https://raw.githubusercontent.com/XarkLabs/Xosera/master/pics/Xosera_self_portrait.jpg

glad bough
#

That is incredible!

#

@soft mauve Very inspiring. I just fired up my Linux machine and got ISE working so I could start working with my old Mojo FPGA again. I recently purchased the HDMI/RAM shield and I'm going through the demos online now. I could never get ISE installed on Windows 11. In Linux, it just worked.

soft mauve
#

Nice. ISE is what I started with. A bit of a pain (especially vs open tools), but still very workable. 🙂

glad bough
#

I'm having better luck with ISE than I did with Vivado (and Vitis). I think it's mostly due to Justin Rajewski's Lucid editor. I really like the work he's doing with the Alchitry Labs editor. It's basically an HDL that "cross compiles" to Verilog. Even if I don't end up using the Lucid in the final project, I like the Verilog that it generates. It can do neat things like "arrays" of D-Flip-Flops. It's a bit more intuitive to my software developer brain. I was able to find an Alchitry AU on Amazon tonight, so I ordered it. I'm looking forward to using Lucid with a more powerful Artix A7 board.

soft mauve
#

Cool. I was an initial Mojo backer, but that was before Lucid. I did play with an early version of Lucid, but by that time I was already doing VHDL (mostly). This current project is my first "significant" Verilog one.

#

I am not a big fan of Vivado... 😅

glad bough
#

I just finished my first Synthesizer "demo" with the Mojo. It was pretty easy using the HDMI (DVI) encoder component built into the Alchitry Labs Editor.

#

hdmi.red = hdmi.y[7:0] / hdmi.x[3:0] + frame.q;
hdmi.green = hdmi.x[7:0] * hdmi.y[3+:7] - (frame.q << 1);
hdmi.blue = hdmi.y[7:0] ^ hdmi.x[7:0];

#

That makes a really neat horizontal swirling pattern

stark trench
#

Neat

quick rampart
#

henlo, where can i ask a question regarding using my adafruit motor shield with a de0nano fpga

#

i'm trying to communicate to the PCA9685 but have no clue how to do it

#

thanks and sorry

grand orbit
quick rampart
#

i agree just is there perhaps a tutorial somewhere or anyone that did it with an altera board

vast moat
#

To be honest it's a bit of a design mismatch to be controlling a servo driver over I2C with an FPGA. Normally you'd use a microcontroller for that, or else have the FPGA generate the raw PWM signals itself. So you probably won't find too many specific tutorials on it.

long bridge
#

do companies usually use fpgas to prototype cpus, gpus, network cards, storage devices and basically everything on the motherboard?

vast moat
#

Yes, it's a common step in developing what will turn into custom silicon. However, it's often in a test scenario rather than having a real working equivalent, since FPGAs will be limited in clock rate and logic capacity.

long bridge
#

say I want to build my own fpga board. What would the process look like? Would it be straight forward to place the components together?

stark trench
#

You could get away with just hooking up a ft232h board from Adafruit though

vast moat
# long bridge say I want to build my own fpga board. What would the process look like? Would i...

You would use one of the EDA CAD tools to design the board, such as Kicad, Eagle, Altium, etc. It would let you create a circuit schematic and then the physical board layout, drawing the appropriate wires to connect everything correctly. Then you would send the design off to a PCB fabrication house, with or without having them also solder on the chips. This is all possible to do, but there's obviously a bit of a learning curve depending on how complex of a FPGA you want to use and how much circuit design you are familiar with.

long bridge
# vast moat You would use one of the EDA CAD tools to design the board, such as Kicad, Eagle...

so how complex do you think something like https://www.xilinx.com/products/boards-and-kits/ek-v7-vc707-g.html would be to design from scratch?

vast moat
#

(Less-experienced engineers wouldn't be able to deal with the high-speed stuff at all.)

long bridge
vast moat
# long bridge so speed is a big factor? Well maybe I dont understand hardware design lol but I...

Yes, high-speed circuits (GHz and above) bring their own issues, since it's no longer just "I need a wire connecting A to B", but you have to take into account the precise length of the wires, and the width of the traces versus the thickness of the circuit board, etc. Very easy to get wrong, and when you mix those constraints with everything else going on in a complex circuit board, it turns into quite a design challenge.

burnt bolt
#

Anyone here that can help with some verilog syntax?

vast moat
burnt bolt
#

ok lol fair thanks for the advice

#

ok so

#

trying to make a signed magnitude to two complement converter module

#

this is what I have so far

#

I want to flip the bits, add 1 and change the MSB back to 1 but idk how to change the MSB

#

syntactically

vast moat
burnt bolt
#

Oh I should explain

#

I am getting an error because I am assigning twice

#

I can try that too tho

#

Error (10028): Can't resolve multiple constant drivers for net "temp[2]" at "myfile.v"
Error (10029): Constant driver at "myfile.v"

#

that's the error with my code

#

with urs i get something else

#

I tried this

#
module SM2TC
    #(parameter W = 11)   // Default bit width
  (input [W-1:0] SM,            // Signed-magnitude input
   output [W-1:0] TC        // Two's complement output
  );    

  wire [W-1:0]temp;
  assign temp[W-2:0] = (~SM[W-2:0] + 1'b1);
  assign temp = { 1'b1, SM[W-2:0] };
  assign TC = SM[0] == 1 ? temp : SM[W-1:0];


endmodule
vast moat
#

I didn't mean for you to use my line verbatim, I was just demonstrating the syntax.

burnt bolt
#

oh

west salmon
#

Ok. I'm new to FPGAs (haven't yet picked one up) but have a bit of a crazy idea that I wanted to run by those that have a lot more knowledge than I.

Here's my situation:
I'm redesigning a KB controller board so that I can remove dependency on jumpers to route signals from my GPIO pins (board was originally a monolithic MCU <-> KB breakout/interface board but I needed SPI, which screwed everything up). So, I'm looking at reducing waste and increasing usefulness of the PCB as production runs are 3 board minimums. To this end, I want to be able to dynamically change the signal routing for the majority of GPIO pins on the board.

At this time, I've settled on likely using a number of multi-channel analog switch ICs that provide the equivalent to SPDT physical switches. Most ICs that I'm saying are limited to 2-4 individually-addressable channels. This means close to 20-25 ICs in order to cover all GPIO. That's a lot of chips.

So, I'm wondering if a low-cost, low-power FPGA of some sort may be able to cover this use case. Note that this is purely hobby use, not intended for profit.

My requirements would be:

  • 3.3v supply
  • low enough current draw to be useful in BLE applications
  • reconfigurable via SPI (allows the MCU to self-configure - ok if needs to be implement)
  • 35+ GPIOs to the MCU
  • 70+ possible endpoints on PCB to map to
  • routed signal to be input/output agnostic
  • surface mount, if discrete IC
  • low-profile, if a supporting board is needed

Does this sort of use case seem like something that can be done in a relatively low-priced FPGA or similar device (actual logic units necessary is miniscule)? One of my reasons for exploring this possibility is the desire to implement more complex things like RISC-V softcores, so getting acquainted with the rolling is definitely needed.

vast moat
west salmon
vast moat
# west salmon Configurable would be perfectly fine. The main need is that the MCU pins can be ...

Gotcha, that sounds pretty feasible, then. For low power, you might consider Lattice. This chip might be suitable, for instance, as it's got about 200 I/Os and can be programmed over SPI. It's a BGA package, but the pin pitch is relatively generous, and they have a TQFP version if you can drop down to about 100 I/Os. https://www.latticestore.com/products/tabid/417/categoryid/9/productid/355/searchid/1/default.aspx?searchvalue=ice40hx8k*

silk verge
#

As a bonus, there are open source tools for programming Lattice chips

west salmon
#

Thank you, very much @vast moat and @silk verge ! I'm planning to go with low temp solder paste and toaster oven for as many components as reasonable so, BGA may even be feasible, if I'm adventurous. TQFP would probably be better idea though.

$11.40? Standby current measured in μA? Tons of I/O and more LUTs than I know what to do with? AND has an open-source toolchain? Brilliant. Thank you both again very much. This is going to be a fun rabbithole to venture down.

ionic spoke
long bridge
vast moat
# long bridge how would one connect multiple fpga chips into one larger chip? Lets say I want ...

It would be difficult to make them act the same as one larger FPGA, since the signal routing between the chips would be very restricted by the number of pins. You'd have to be explicit about the communication interfaces between them in your design. They might expose a common memory bus, for example, so one chip could handle the CPU core and other chips could be memory-mapped peripherals for it.

long bridge
vast moat
long bridge
vast moat
silk verge
#

There are some high performance choices out there (I've seen open FPGA implementations of PowerPC and Sparc CPUs, for instance)

glad bough
#

When you complain electronics is expensive because of your 600$ weller soldering station and someone pull out their FPGA that costs as much as a 2019 masey ferguson medium power farm tractor 🤣

stark trench
#

stares at $200k Ultrascale Zynq MPSoC FPGAs

glad bough
#

ok I was wrong, weller BGA/SMT Rework system 2.3KW 40000 usd 😦

stark trench
#

Lol

stark trench
#

Basically converts HDLs like Verilog files into layouts for silicon production

stark trench
#

Is there value with providing an external clock source for an fpga? I know some require it (the lattice fpga I’m using doesn’t)

#

Or would it be better to offer it on an expansion board?

vast moat
#

Yes, I'd generally assume that most FPGA boards would come with a crystal, unless the internal oscillator was really good.

stark trench
#

I know the Spartan 7 chips used on the Basys 3 boards by Diligent have 100MHz crystals paired with them

vast moat
#

I think the Lattice chips likely have PLLs, right, so the exact frequency generally wouldn't matter very much?

stark trench
#

That’s what I was thinking

#

Maybe a 32.786kHz crystal would be sufficient

vast moat
#

I'd check the PLL input range. 32kHz would probably be too low for most multipliers.

stark trench
#

Or something like a 12MHz like on some other boards I’ve seen

#

I did see that the lattice reference boards tap the 12MHz crystal used on the FTDI fifo chip

silk verge
#

TinyFPGA BX uses an outboard 16MHz oscillator

stark trench
#

I thought about that too. Seems like a good idea to reduce overall BOM. Internal osc on the ICE5LP devices is pretty good from my gathering

#

Also, for such a small fpga, is it worth adding SPI flash for programming? 2MB is like $0.60 a pop

silk verge
#

I think it's volatile, so you'd have to get the programming into it somehow. I think having it autoload from flash would be worth the cost.

vast moat
#

Looks like the Ultra series does have internal nonvolatile configuration memory, so flash would be optional.

stark trench
#

Yeah, not sure if the ICE5LP4K falls into the NVM category of ICE40 Ultra is the thing.

vast moat
#

(Crazy-small packages on those...)

stark trench
#

Interesting

#

I’ll have to see how to enable loading onto NVM

bleak osprey
#

NVM is one time programmable only on ICE5LP4K

#

Also believe that TinyFPGA BX using external clock is because USB clock accuracy requirement

vast moat
stark trench
#

Yeah, I figured that was the case because I got an error saying memory wasn’t clean 🙂

west salmon
#

Ok. So, I'm going back and forth on FPGA Dev boards at the moment. I have nearly purchased an iCEBreaker (iCE40UP5k, I think), which seems like a great introductory board but... then I found the SparkFun Quicklogic Thing Plus. It has a Quicklogic EOS S3 chip, which combines a Cortex M4F with an embedded FPGA with ~2.4k logic cells with some other goodies on a Feather board.

I'm a bit torn now - the iCEBreaker has about 2x the fabric size from, what I can tell, but the Quicklogic chip has a vendor-supported FOSS toolchain, which I'd like to support, but they only are offering rather small FPGA capacities (fine for starting but, worried about being able to apply learnings to bigger RV64, etc projects in the future).

Any thoughts? Should I get one over the other initially (likely to get something with the QL chip at some point to support good vendor behavior, if nothing else)?

stark trench
#

I’ve not used the quicklogic SoC so I’m not sure how easy the quicklogic tools are to use

west salmon
#

Cool. I think I'll grab an iCEBreaker first then. Much appreciated.

silk verge
#

I started with a Nandland Go board, then moved to an iCEBreaker before I ended up putting FPGA development aside for a while.

west salmon
#

And then I ended up getting a Fomu instead 🤣 . Same chip as the iCEBreaker but no real I/O. Thinking that will have to see if I can convince it to use the USB pins as a UART or SPI at some point but, if nothing else, it'll make me focus on more of the FPGA-specific concepts.

stark trench
#

So many choices out there

silk verge
#

Fomu does have a nice installer. I generally go with that, apio, or IceStudio.