Search Engine

Accumulator Vhdl

Add Question

28 Threads found on Accumulator Vhdl
Hello, I found from Altera's website the following multiplier-accumulator. I doubt it will work because the delta propagation. In the code: pdt_reg <= a_reg*b_reg; adder_out <=adder_out +pdt_reg; will the updated pdt_reg be added to adder_out withou the effect of delta delay? How to handle this? LIBRARY ieee; USE ieee.std_log
nco is in fact a accumulator and a lookup table you can realize a accumulator like this process(clk) begin if rising_edge(clk) then acc(23 downto 0) <= acc(23 downto 0) + input; end if; end process; then, you can address the lookup table like this process(clk) begin if rising_edge(clk) then nco_out(7 downto 0) <= rom(conv_
after running this code the error is bad synchronous description.......... can any one help me.... library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.all; entity accumulator is port( data : inout std_logic_vector(7 downto 0); rd_wr : in std_logic; --0=read,1=write cl
hello everyone, i have written the code beneath in vhdl for a mupltiply accumulator and while it is coming in FPGA port, the led don't provide with the correct result. is there anyone who knows what the problem is? library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity olok
A basic DDS consists of a clocked accumulator with a constant input (the desired frequency), and a ROM containing one sinewave cycle. Connect the most significant bits of the accumulator to the ROM address inputs. The ROM output is your sinewave. If you show us your code, maybe someone can help you debug it.
please can any one give me the vhdl codes for the phase accumulator and the LUT(look up table) required in a numerically controlled oscillator.
I had similar problem with calculating values for phase accumulator But does this condition apply to the every number in the equation that would result in an integer ? unfotunately: yes :( you have to calculate the fragment of code in some other way, so that every product would be in proper integer range
The internal memory blocks of FPGA are generally capable of dual port operation, also with Xilinx Spartan, as far as I know. That means you have one sine ROM, e. g. for one quadrant and can access it at two ports, using different addresses and getting different data output for I and Q. You can use a single phase accumulator that is decoded twice t
Cause a working accumulator involves a clocked register, it must reside in a clocked sequential block. It's possibly a problem of a unsuitable overall design structure. Remember that HDL means hardware description language. It's different from sequential processing implemented with procedural programming languages. The adequate behavioura
hi search this forum for phase accumulator program, you will enter your input clock,output clock, and the program will generate the vhdl file for you. I tried it , and it works well hope that helps
I need to make a multiply accumulator in vhdl and i dont have any idea.. As I understand you have 2 inputs and want to MAC you should implemennt this simple algorithm: out_next = in1 * in2 + out; The following simple module can do that: module mac (in1, in2, out, clk, init); input clk, init; input in
Hi Im in greate need of a clock divider to be impemented into an FPGA. Im involved in a project where I need to divide a clock so I can use it for an UART. I need detailed and working examples in vhdl so it can be implemented into an FPGA. I need to use eg 4MHZ input clock and divide this into 460 800 (= 16* 28 800 baud) with as small e
It's basically synthesizable. The accumulator should be changed to simple add with overflow for correct operation. i <= i+ conv_integer(n); Usually a NCO would use a larger bit width for the accumulator and the frequency input and only use the uppermost bits as address to sine/cosine table. I assume, that the frequency input
if the adder has 3 ports (a,b, clock), can I just feed b back as input without a one-clock delay? An adder as such doesn't utilize a clock. If the "adder" has a clock input it's most likely an adder with in- or output register. Then the output can be of course feed back to the input, forming an accumulator respectively integrator.
The easier way to do this is just calculate a running sum, no need for those intermediate values. Initialize your counter and your running sum, and then add your new value to your existing sum at each sample time (This is called an accumulator, by the way) When your counter reaches its terminal value, you've got your answer in the running sum.
Hi all, I am working currently in a project( Virtex-4 FPGA) where i want to add two signals of 42 bits each with a clock frequency of 200MHz. So for this addition, I want use only dsp48 accumulator for the first operation. How to write vhdl code for this, so that it will infer to DSP48 accumulator ?
Well the problem will be that i is never set, so because its an accumulator, it will always be uninitialised.
As a delayed comment on the post #13 testbench, besides possible problems in the corrected DUT code that hasn't been shown, the testbench misses to assert the reset signal. So unless the DUT uses an initializing statement, the accumulator register will be never reset. P.S.: is this correct in vhdl Clearly no. Please observe
Hi PARWAN is a simple accumulator-based processor 1. vhdl code (Synthesizable RTL description) 2. level description) 3. library used for fault simulation) 4. h**p://aspire.
use what is called ratio counter, its function as follows 1- decide the ratio you want to divide your clock by say it is P/N 2- use a modulo N counter that each step in increas by P (accumulation of P) and and when its value increase N divid by N and keep the remainder in the counter and continue increas by P. and so on 3- each time the value in
hi i m doing project on pipelined multiplier accumulator... i m writing this code for simulation but there is some problem with wiat for statement Architecture behavioral of Entity mac is up to date. Compiling vhdl file in Library work. ERROR:HDLParsers:1015 - Line 37. Wait fo
To build a verilig model, you have 2 ways (those are the ones I know) : 1-A simplified way :You can use the laplace_nd({num coeffs},{denom coeffs}) to implement the NTF of the DS modulator (note that this is valid only for VerilogA or VerilogAMS). 2-Build a behavioral model for each accumulator ,register ,adder ,subractor...etc. Then conne
Are you using a Xilinx device? Which one? Try the "DDS Compiler" or "Direct Digital Synthesizer" cores included with Xilinx ISE CORE Generator. Or build your own DDS. Feed a frequency constant into an ordinary arithmetic accumulator. Connect the accumulator output to the address inputs of a sinewave lookup table ROM. The ROM output is your di
4x4 multiplier can be implemented with a scaling accumulator multiplier which performs multiplication using an iterative shift-add operations. EDIT: check this pdf which contains 4x4 multiplier
Hi. We are trying to code a sort of accumulator in Verilog, but when we write the code below, we get an error saying that "this signal is connected to multiple drivers" for every signal that even does not appear in the expression below. For example, we also have a register "N" and we get the same error for it, too. sum_temp=(a + k*dx - d
as a first approach - you can add e.g 16 values, divide the result by 16 Honestly speaking, I don't understand the purpose of the suggestions. If you want to implement a mean value calculation, you should use the correct formula. Or you get a different result. Precalculating blocks of 16 is possible, if the total number is a multipl
Instead of repeating unclear questions about "overflow" you should better explain your application. From some hints in previous posts, I assume you have something like a FIR filter y = Σa(n)*x(n) As already mentioned by others, no overflow will occur in an integer multiplication. When summing indidual product terms, you can avoid an o
Here is an pipeline accumulator RTL and Testbench in attechments. It works at 1 GHz at 180nm process, so it should probably works at 2 GHz on smaller geometries. Parameter WIDTH should be set to 32 in your case. If counter always incremented by 1, input port 'din' can be tied to this value, reducing unnnecessary logic and die area.