Quantcast
Channel: Cadence Functional Verification Forum
Viewing all articles
Browse latest Browse all 1069

step simulation

$
0
0

Hi all,

I'm stuck on a simple issue but can't get out of it: I would like to generate severals waveform signals for my future testbench but the frequency of my signals are not correct.

Below is the code I want to simulate:

library ieee;
use ieee.std_logic_1164 .all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
use ieee.math_real.all;

entity triangle_generator is

 generic(AMP: real;
  OFFSET: real;
  FREQ: real;
  PHASE :real);
 
 port(wave1: out real);
       
end triangle_generator;

architecture archi of triangle_generator is

signal tmp1 : real := 0.0;


begin

 P1:process
 
 constant delta   : real := 1000.0e-12;
 constant fin  : time := 1000 ps;
 
 variable angle   : real := 0.0;
 variable t    : real := 0.0;
 variable PHASE_RAD : real := 0.0;
 
 begin
 
   PHASE_RAD := (math_2_pi * PHASE)/360.0;

  loop
   angle   := math_2_pi * FREQ * t;
   t := t + delta;
   
   tmp1 <= OFFSET+(AMP/2.0)*(2.0/math_pi)*arcsin(sin(angle));

   wait for fin;
  
  end loop;
  
  wait;
  
 end process P1;
 
 wave1 <= tmp1;
 
end archi;

When I simule this code with FREQ=100 000 000 Hz I get the waveform in attachment, not really what I wanted. So I was thinking, if I write delta = 1000.0e-15 maybe it will be right, but absolutly not. When I change the value of delta, the frequency of the waveform is wrong.

So can you help me to get through this please? 


Viewing all articles
Browse latest Browse all 1069

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>