![]() |
|
|
|
#1 |
|
I have written a process to generate sin wave as below.
-- sine wave constants amp_sin : real := 10.0; phase_sin : real := 0.0 -- phase in radians samples_sin : integer := 1000; -- number of samples incr_sin : real := 0.001; -- 1/ samples period_sin : time := 0.001 ns; -- period of sine wave/samples two : process variable phase_temp,result : real ; begin phase_temp := phase_sin; --phase_sin; l1 : for i in 1 to samples_sin loop --number_of_samples loop sine_real <= ((amp_sin*sin(phase_temp))); phase_temp := phase_temp + incr_sin; wait for period_sin; end loop l1; end process two; The problem I am facing is, I get sine wave for some values and for some I just get triangulr wave. Is there any limitation to the sin function in math_real. Should I be able to generate any type of frequencies with this function. Please help FPGA |
|
|
|
|
#2 |
|
Posts: n/a
|
On Feb 27, 11:38*pm, FPGA <FPGA.unkn...@gmail.com> wrote:
> I have written a process to generate sin wave as below. > > -- sine wave constants > * * * * * * * * * * * * * *amp_sin : real := 10.0; > * * * * * * * * * * * * * *phase_sin : real := 0.0 * * * * * * * *-- > phase in radians > * * * * * * * * * * * * * *samples_sin : integer := > 1000; * * * * * * * * * -- number of > samples > * * * * * * * * * * * * * *incr_sin : real := 0.001; * * * * * * *-- 1/ > samples > * * * * * * * * * * * * * *period_sin : time := 0.001 > ns; * * * * * * * * * * * * -- period of > sine wave/samples > > two : process > variable phase_temp,result : real ; > begin > * * * * phase_temp := phase_sin; --phase_sin; > * * * * l1 : for i in 1 to samples_sin loop --number_of_samples loop > > * * * * * * * * sine_real <= ((amp_sin*sin(phase_temp))); > * * * * * * * * phase_temp := phase_temp + incr_sin; > * * * * * * * * wait for period_sin; > * * * * end loop l1; > end process two; > > The problem I am facing is, I get sine wave for some values and for > some I just get triangulr wave. Is there any limitation to the sin > function in math_real. Should I be able to generate any type of > frequencies with this function. Please help Also, the sine wave does not stop after it takes all the samles, I keep getting a continous sine wave. Would like to add the option of generating wave from 0 tp 2pi or 4 pi, etc. I want to make this as generic as possible FPGA |
|
|
|
#3 |
|
Posts: n/a
|
On Feb 28, 4:50 am, FPGA <FPGA.unkn...@gmail.com> wrote:
> On Feb 27, 11:38 pm, FPGA <FPGA.unkn...@gmail.com> wrote: > > > > > I have written a process to generate sin wave as below. > > > -- sine wave constants > > amp_sin : real := 10.0; > > phase_sin : real := 0.0 -- > > phase in radians > > samples_sin : integer := > > 1000; -- number of > > samples > > incr_sin : real := 0.001; -- 1/ > > samples > > period_sin : time := 0.001 > > ns; -- period of > > sine wave/samples > > > two : process > > variable phase_temp,result : real ; > > begin > > phase_temp := phase_sin; --phase_sin; > > l1 : for i in 1 to samples_sin loop --number_of_samples loop > > > sine_real <= ((amp_sin*sin(phase_temp))); > > phase_temp := phase_temp + incr_sin; > > wait for period_sin; > > end loop l1; > > end process two; > > > The problem I am facing is, I get sine wave for some values and for > > some I just get triangulr wave. Is there any limitation to the sin > > function in math_real. Should I be able to generate any type of > > frequencies with this function. Please help > > Also, the sine wave does not stop after it takes all the samles, I > keep getting a continous sine wave. Would like to add the option of > generating wave from 0 tp 2pi or 4 pi, etc. I want to make this as > generic as possible It's repeating because you havent told the process to wait when it finishes the loop. Currently the loop finishs, and then the process restarts and does the whole loop again, and this will repeat for ever. To stop this simply put "wait;" at the end of the process. Tricky |
|
|
|
#4 |
|
Posts: n/a
|
On Feb 28, 5:19*am, Tricky <Trickyh...@gmail.com> wrote:
> On Feb 28, 4:50 am, FPGA <FPGA.unkn...@gmail.com> wrote: > > > > > > > On Feb 27, 11:38 pm, FPGA <FPGA.unkn...@gmail.com> wrote: > > > > I have written a process to generate sin wave as below. > > > > -- sine wave constants > > > * * * * * * * * * * * * * *amp_sin : real := 10.0; > > > * * * * * * * * * * * * * *phase_sin : real := 0.0 * * * * * * * *-- > > > phase in radians > > > * * * * * * * * * * * * * *samples_sin : integer := > > > 1000; * * * * * * * * * -- number of > > > samples > > > * * * * * * * * * * * * * *incr_sin : real := 0.001; * * * * * * *-- 1/ > > > samples > > > * * * * * * * * * * * * * *period_sin : time := 0.001 > > > ns; * * * * * * * * * * * * -- period of > > > sine wave/samples > > > > two : process > > > variable phase_temp,result : real ; > > > begin > > > * * * * phase_temp := phase_sin; --phase_sin; > > > * * * * l1 : for i in 1 to samples_sin loop --number_of_samples loop > > > > * * * * * * * * sine_real <= ((amp_sin*sin(phase_temp))); > > > * * * * * * * * phase_temp := phase_temp + incr_sin; > > > * * * * * * * * wait for period_sin; > > > * * * * end loop l1; > > > end process two; > > > > The problem I am facing is, I get sine wave for some values and for > > > some I just get triangulr wave. Is there any limitation to the sin > > > function in math_real. Should I be able to generate any type of > > > frequencies with this function. Please help > > > Also, the sine wave does not stop after it takes all the samles, I > > keep getting a continous sine wave. Would like to add the option of > > generating wave from 0 tp 2pi or 4 pi, etc. I want to make this as > > generic as possible > > It's repeating because you havent told the process to wait when it > finishes the loop. Currently the loop finishs, and then the process > restarts and does the whole loop again, and this will repeat for ever. > To stop this simply put "wait;" at the end of the process.- Hide quoted text - > > - Show quoted text - I am required to design this using the CORDIC algorithm. FPGA |
|
|
|
#5 |
|
Posts: n/a
|
On Feb 28, 8:53 am, FPGA <FPGA.unkn...@gmail.com> wrote:
> On Feb 28, 5:19 am, Tricky <Trickyh...@gmail.com> wrote: > > > > > On Feb 28, 4:50 am, FPGA <FPGA.unkn...@gmail.com> wrote: > > > > On Feb 27, 11:38 pm, FPGA <FPGA.unkn...@gmail.com> wrote: > > > > > I have written a process to generate sin wave as below. > > > > > -- sine wave constants > > > > amp_sin : real := 10.0; > > > > phase_sin : real := 0.0 -- > > > > phase in radians > > > > samples_sin : integer := > > > > 1000; -- number of > > > > samples > > > > incr_sin : real := 0.001; -- 1/ > > > > samples > > > > period_sin : time := 0.001 > > > > ns; -- period of > > > > sine wave/samples > > > > > two : process > > > > variable phase_temp,result : real ; > > > > begin > > > > phase_temp := phase_sin; --phase_sin; > > > > l1 : for i in 1 to samples_sin loop --number_of_samples loop > > > > > sine_real <= ((amp_sin*sin(phase_temp))); > > > > phase_temp := phase_temp + incr_sin; > > > > wait for period_sin; > > > > end loop l1; > > > > end process two; > > > > > The problem I am facing is, I get sine wave for some values and for > > > > some I just get triangulr wave. Is there any limitation to the sin > > > > function in math_real. Should I be able to generate any type of > > > > frequencies with this function. Please help > > > > Also, the sine wave does not stop after it takes all the samles, I > > > keep getting a continous sine wave. Would like to add the option of > > > generating wave from 0 tp 2pi or 4 pi, etc. I want to make this as > > > generic as possible > > > It's repeating because you havent told the process to wait when it > > finishes the loop. Currently the loop finishs, and then the process > > restarts and does the whole loop again, and this will repeat for ever. > > To stop this simply put "wait;" at the end of the process.- Hide quoted text - > > > - Show quoted text - > > I am required to design this using the CORDIC algorithm. Then why aren't you using the CORDIC algorithm? Google it. Dave |
|
|
|
#6 |
|
Posts: n/a
|
On Feb 28, 8:53*am, FPGA <FPGA.unkn...@gmail.com> wrote:
> On Feb 28, 5:19*am, Tricky <Trickyh...@gmail.com> wrote: > > > > > > > On Feb 28, 4:50 am, FPGA <FPGA.unkn...@gmail.com> wrote: > > > > On Feb 27, 11:38 pm, FPGA <FPGA.unkn...@gmail.com> wrote: > > > > > I have written a process to generate sin wave as below. > > > > > -- sine wave constants > > > > * * * * * * * * * * * * * *amp_sin : real := 10.0; > > > > * * * * * * * * * * * * * *phase_sin : real := 0.0 * * * * * * * *-- > > > > phase in radians > > > > * * * * * * * * * * * * * *samples_sin : integer := > > > > 1000; * * * * * * * * * -- number of > > > > samples > > > > * * * * * * * * * * * * * *incr_sin : real := 0.001; * * * * * * *-- 1/ > > > > samples > > > > * * * * * * * * * * * * * *period_sin : time := 0.001 > > > > ns; * * * * * * * * * * * * -- period of > > > > sine wave/samples > > > > > two : process > > > > variable phase_temp,result : real ; > > > > begin > > > > * * * * phase_temp := phase_sin; --phase_sin; > > > > * * * * l1 : for i in 1 to samples_sin loop --number_of_samples loop > > > > > * * * * * * * * sine_real <= ((amp_sin*sin(phase_temp))); > > > > * * * * * * * * phase_temp := phase_temp + incr_sin; > > > > * * * * * * * * wait for period_sin; > > > > * * * * end loop l1; > > > > end process two; > > > > > The problem I am facing is, I get sine wave for some values and for > > > > some I just get triangulr wave. Is there any limitation to the sin > > > > function in math_real. Should I be able to generate any type of > > > > frequencies with this function. Please help > > > > Also, the sine wave does not stop after it takes all the samles, I > > > keep getting a continous sine wave. Would like to add the option of > > > generating wave from 0 tp 2pi or 4 pi, etc. I want to make this as > > > generic as possible > > > It's repeating because you havent told the process to wait when it > > finishes the loop. Currently the loop finishs, and then the process > > restarts and does the whole loop again, and this will repeat for ever. > > To stop this simply put "wait;" at the end of the process.- Hide quoted text - > > > - Show quoted text - > > I am required to design this using the CORDIC algorithm.- Hide quoted text - > > - Show quoted text - I was able to add the wait statement and the problem was solved. I modified some of the things and not I am able to get waveforms at different frequencies. FYI, incr_phase_sin : real := (2.0*MATH_PI)/(real(samples_sin)); -- 2pi/ samples per period incr_time_sin : time := time(period_sin/samples_sin); -- period/samples per period FPGA |
|
|
|
#7 |
|
Posts: n/a
|
On Feb 28, 10:57*am, FPGA <FPGA.unkn...@gmail.com> wrote:
> On Feb 28, 8:53*am, FPGA <FPGA.unkn...@gmail.com> wrote: > > > > > > > On Feb 28, 5:19*am, Tricky <Trickyh...@gmail.com> wrote: > > > > On Feb 28, 4:50 am, FPGA <FPGA.unkn...@gmail.com> wrote: > > > > > On Feb 27, 11:38 pm, FPGA <FPGA.unkn...@gmail.com> wrote: > > > > > > I have written a process to generate sin wave as below. > > > > > > -- sine wave constants > > > > > * * * * * * * * * * * * * *amp_sin : real := 10.0; > > > > > * * * * * * * * * * * * * *phase_sin : real := 0.0 * * * * * * * *-- > > > > > phase in radians > > > > > * * * * * * * * * * * * * *samples_sin : integer := > > > > > 1000; * * * * * * * * * -- number of > > > > > samples > > > > > * * * * * * * * * * * * * *incr_sin : real := 0.001; * * * * * * *-- 1/ > > > > > samples > > > > > * * * * * * * * * * * * * *period_sin : time := 0.001 > > > > > ns; * * * * * * * * * * * * -- period of > > > > > sine wave/samples > > > > > > two : process > > > > > variable phase_temp,result : real ; > > > > > begin > > > > > * * * * phase_temp := phase_sin; --phase_sin; > > > > > * * * * l1 : for i in 1 to samples_sin loop --number_of_samples loop > > > > > > * * * * * * * * sine_real <= ((amp_sin*sin(phase_temp))); > > > > > * * * * * * * * phase_temp := phase_temp + incr_sin; > > > > > * * * * * * * * wait for period_sin; > > > > > * * * * end loop l1; > > > > > end process two; > > > > > > The problem I am facing is, I get sine wave for some values and for > > > > > some I just get triangulr wave. Is there any limitation to the sin > > > > > function in math_real. Should I be able to generate any type of > > > > > frequencies with this function. Please help > > > > > Also, the sine wave does not stop after it takes all the samles, I > > > > keep getting a continous sine wave. Would like to add the option of > > > > generating wave from 0 tp 2pi or 4 pi, etc. I want to make this as > > > > generic as possible > > > > It's repeating because you havent told the process to wait when it > > > finishes the loop. Currently the loop finishs, and then the process > > > restarts and does the whole loop again, and this will repeat for ever. > > > To stop this simply put "wait;" at the end of the process.- Hide quoted text - > > > > - Show quoted text - > > > I am required to design this using the CORDIC algorithm.- Hide quoted text - > > > - Show quoted text - > > I was able to add the wait statement and the problem was solved. I > modified some of the things and not I am able to get waveforms at > different frequencies. FYI, > incr_phase_sin : real := (2.0*MATH_PI)/(real(samples_sin)); * * * -- 2pi/ > samples per period > incr_time_sin : time := time(period_sin/samples_sin); * * * * * * * * -- > period/samples per period- Hide quoted text - > > - Show quoted text - The sine wave function in math_real uses the CORDIC algorithm FPGA |
|
![]() |
| Thread Tools | Search this Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Newbie; what is the best software to convert DVD (Vob) file to avi - divx ? | Laura25 | DVD Video | 4 | 07-12-2006 03:03 PM |
| NEWBIE - DVD burn problem - need help | Vic Baron | DVD Video | 6 | 09-29-2005 10:56 PM |
| Another newbie question | Jerold Pearson | DVD Video | 1 | 12-11-2004 02:25 AM |
| Newbie Question: DVD Capacities | Chris Kotchey | DVD Video | 3 | 09-29-2004 03:49 PM |
| Heeeeeeelp... Newbie with avi to dvd (or svcd) please. | Mike | DVD Video | 11 | 08-14-2004 09:04 PM |