Advertisement
Guest User

Untitled

a guest
Jan 25th, 2017
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. `timescale 1 ns / 1 ns
  2.  
  3. module CORDIC_ABS_tb;
  4.  
  5.   localparam pi = 3.1415926535897932384626433832795;
  6.  
  7.   reg signed [15:0] X;
  8.   reg signed [15:0] Y;
  9.   wire [15:0] abs;
  10.  
  11.   reg clk = 0;
  12.  
  13.   real phase1 = 0;
  14.   real phase2 = 0;
  15.  
  16.   always
  17.     #5 clk = !clk;
  18.  
  19.   always @(posedge clk) begin
  20.     phase1 <= phase1 + (pi / 20);
  21.     phase2 <= phase2 + (pi / 300);
  22.     X <= $rtoi(($cos(phase1) * (1 + 0.5 * $sin(phase2))) * 15'b010_0000_0000_0000);
  23.     Y <= $rtoi(($sin(phase1) * (1 + 0.5 * $sin(phase2))) * 15'b010_0000_0000_0000);
  24.   end
  25.  
  26.   CORDIC_ABS CORDIC_ABS_inst (
  27.     .clk(clk),
  28.     .X(X),
  29.     .Y(Y),
  30.     .abs(abs)
  31.   );
  32. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement