Hot answers tagged

4

initiate the 10G protocol to initiate the link between the FPGA and PC to achieve successful data streaming without data loss. There's not much to "initiate" at the link level: as soon as the MAC IP you're using initializes the link, you're ready to use it. The IP will have some signal(s) that indicate the link status. Once the link is up, the ...


4

The Vivado synthesiser is smart. You have to declare the operands as signed. If the operands are unsigned, explicitly type cast all of them to signed and then simply multiply using *. It should infer a signed DSP multiplier on synthesis. If it's not inferring automatically (can be due to multiple reasons), then you may have to use USE_DSP attribute to force ...


4

So the first question I want to ask, How would you move the data stream from the slow to fast clock domain? I already made a working mechanism for this, I filled up a FIFO (with 1024 depth) and right after that start to fill the next FIFO ( I used 2 FIFOs), Exactly like you're doing it: with clock domain crossing FIFOs. After I finished to write this block,...


3

Intel's Quartus tools include both a "power optimization advisor" and a "power analyzer tool". The advisor says (among other things): Choosing appropriate I/O standards can significantly reduce design power. To reduce power, use a low-voltage I/O standard (most important) and the lowest drive strength that will meet your speed ...


2

According to my calculation, the number inside the parentheses is the usage of the module itself excluding submodule instances. The number before is the total of the architecture: This means that in your case, the top module uses 267 LUT and the rest of the design uses: 2752-267=2485


2

DRAM (including DDR) requires the use of a memory controller, which takes care of the low-level details of timing, protocol and refresh management. The FPGA platform you're using likely includes configurable IP for this. Your life will be easier if you use AXI or AXI-S internally to move your data, as these will be supported by blocks such as DMA and routing,...


2

I'm not sure if it's (even close to) the best way, but when I needed to do this, I checked the signs of the two numbers, ran that through an XOR, and stashed it in a flop. Then I took the absolute values of both operands, multiplied those, and then if my saved bit from the XOR was set, negated the result.


1

A circuit that can identify a particular set bit in a vector in a fixed amount of time is called a "priority encoder". The general concept is that you use the priority encoder to find the first set bit in your vector, use its number to address your memory, and then you clear that bit in the vector so that the priority encoder can find the next set ...


1

I would expect this to be possible with the "icestick" FPGA cards. However, SHA-256 is likely to be memory-bandwidth limited on most PCs, so in almost all cases it would be faster to do it on the CPU than transmit it anywhere and back again.


1

Yes - you can select either "Open elaborated design" or "open synthesized design" followed by selecting the "schematic" option. The elaborated design shows the result of RTL elaboration - your input HDL is parsed and lightly processed, but the schematic remains in terms of blocks such as wide muxes, wide logic functions, ...


1

There is termination on the transmitter end due to the same reason, to terminate reflections that arrive back to the transmitter for some reason, and also to drive the 100 ohm transmission line at 100 ohm source impedance, as otherwise the current mode output would have extremely high impedance. As PCIe lanes are AC coupled, it is also there to bias the ...


1

It sounds like you're trying to test the 32_bit_Register, not the rest of the circuitry in Top_Level. So don't put a Top_Level entity in your testbench. Put a 32_bit_Register entity in your test bench. After all, isn't that the thing you're trying to test?


1

Aggregations are processed signals. An aggregator reads the raw signals and returns interesting summaries, ranging from simple analog sums to sophisticated digital functions.


1

No, most FPGAs will have many more than 160 flip-flops that you can use. Store the data anyplace you like.


Only top voted, non community-wiki answers of a minimum length are eligible