1
3
submitted 1 week ago by [email protected] to c/[email protected]

Hello, I am a software engineer in the process of learning FPGA design as an additional skill. I have already spent some time learning VHDL for FPGAs and already found some great resources for that [1].

However, the more I read the more I realize that I actually need to study two topics:

  1. Digital circuit design basics (what this post is asking about)
  2. Implementing a design for FPGAs in VHDL (what I already have good resources for)

As a software engineer, I have a lot of experience in expressing ideas in code, so looking at circuits as a synthesized form of an abstract HDL code makes learning a lot easier for me than other descriptions and/or abstraction layers. And it also is more related to the actual work I plan to do in the future. Can you recommend any resources for learning basics of digital circuit design from this perspective? Is it even a good idea to look for such resources? Thanks in advance.

[1]: In case someone is interested, these VHDL resources are free and appear to me to be of high quality:

2
6
submitted 2 weeks ago by [email protected] to c/[email protected]

Hey everyone i am a EE student and last semester i had a fpga design course wich was a lot of fun. We used some xylinx dev board that cost about 300€ and i dont really want to spend that much money right now. I would love to design a little cpu, not shure yet if i want to implement the risc instruction set or just wing it but i dont have a fixed set of requirements yet. Would you design your own board with a mcu for programming, the fpga and maybe dram or would you get a dev board? Does someone know a good dev board that does not break the bank? With the xylinx board i obviusly worked with vivado, how are the tools of alterra or others in comparison in your opinion? Thanks for your input!

3
4
submitted 2 months ago by [email protected] to c/[email protected]

This is for an ADC. What I'm trying to do: when adc_sample goes low, grab hold of a value. Then when adc_data_en goes high, compare it with adc_data. Here's what I have so far:

    property adc_deduces_voltage;
        bit [7:0] true_voltage;

        @(negedge adc_sample) (`true,true_voltage=input_channel) 
        ##1 @(posedge adc_data_en) 
        // Values are sampled in the prepond region. This would be before
        // adc_data_en is high, giving us old values. To make up for this, wait
        // for one more clock cycle so that sampled values will be just after
        // adc_data_en is high.
        ##1 @(posedge clock) (adc_data == true_voltage, $display("Pass. Actual: %d, ADC: %d", true_voltage, adc_data);
    endproperty
    assert property (adc_deduces_voltage);

Note the comment I inserted. The hacky bit of my code is waiting for the next rising edge of the clock so that I can avoid the issue of things being sampled in the prepone region.

Any thoughts on improving this? Is there a better way to do this?

Also, what if I wanted to do something like: wait for negedge adc_sample, then posedge adc_data_en then 20 clock cycles later carry out checks?

4
3
submitted 2 months ago by [email protected] to c/[email protected]

So I'm new to FPGAs. I've got a project that runs fine at 100MHz on an Altera chip. I'm trying to downscale to an iCE40UL. It runs fine at 70MHz, but bumping to 100MHz and certain clocks act up/don't show up at all.

So in theory, I know there's an issue with signal buffering or routing or something, but I've never actually had to deal with this practically, and I'm struggling to find any online resources.

The iCEcube2 software comes with a floor planner that helps visualize which blocks are being used that looks like this.

Here you can see my (buffered) 100MHz clock is feeding a lot of blocks. Probably part of the issue.

I can move things around on this floor planner, but in doing so, what is my goal for optimization? Do I want to literally shorten all the traces? (as in, do the blocks in the floor planner indicate their literal locations on the chip?) or what else is the goal?

Unfortunately, I don't think I have access to any simulation tools unless there's something I'm missing, iCEcube2 is very barebones.

5
1
submitted 4 months ago by [email protected] to c/[email protected]
6
1
submitted 9 months ago* (last edited 9 months ago) by [email protected] to c/[email protected]

Hi there!

I'm having a look into creating a FPGA system with purely open standard and open source IPs (as well as open source code on my part). So far I have landed on a really good journal article looking into different open source IPs for the RISC-V open standard here: https://ieeexplore.ieee.org/document/8760205.

But now I have realized that I need some sort of display interface and can't find anything! I have read that DisplayPort is open-source, but I am pretty sure this only relates to the interface protocols and not the actual hardware itself. I may be wrong on this but I haven't been able to easily find anything on their standard licensing rules, other than a licence for their logo and brand name which doesn't seem very compatible with the ethos of the project.

Perhaps USB-C is the best solution.

Is anyone aware of any display interfaces that I could implement? I do not have a lot experience in video interfaces so would like some suggestions from people who likely know a lot more than I do :)

7
1
submitted 2 years ago by [email protected] to c/[email protected]
8
1
submitted 2 years ago by [email protected] to c/[email protected]

This is an open-source FPGA project I've been working on for several years now. It's an Ethernet switch for FPGAs, but you can mix-and-match the usual RMII/RGMII/SGMII interfaces with unconventional options like a plain old UART.

My company uses it internally, but we decided to release it as open source. (Currently LGPLv3 but open to other weak-copyleft suggestions.)

Among other things, we've recently incorporated some new technology that allows picosecond-accurate timestamps to be compared across different digital clock domains. You can think of it as a group of NCOs that all track the same best-fit line.

9
1
SystemVerilog & UVM Learning Resource (www.sunburst-design.com)
submitted 2 years ago by [email protected] to c/[email protected]
10
1
MHRD - a fun hardware design game (store.steampowered.com)
submitted 2 years ago by [email protected] to c/[email protected]
11
1
submitted 2 years ago by [email protected] to c/[email protected]
12
1
submitted 2 years ago by [email protected] to c/[email protected]
13
1
submitted 2 years ago by [email protected] to c/[email protected]
14
1
Vivado and Vitis (www.youtube.com)
submitted 2 years ago by [email protected] to c/[email protected]
15
1
we are bafoons (preview.redd.it)
submitted 2 years ago by [email protected] to c/[email protected]

FPGA

251 readers
1 users here now

A community for programmable hardware, including topics such as: * FPGA * CPLD * Verilog * VHDL

Related communities:

founded 2 years ago
MODERATORS