|
`timescale 1 ns/ 1 ps
module NCO_prj_vlg_tst();
reg clk;
reg [16:0] phi;
reg rst_n;
wire [15:0] cos;
wire [15:0] sin;
NCO_prj i1 (
.clk(clk),
.cos(cos),
.phi(phi),
.rst_n(rst_n),
.sin(sin)
);
initial
begin
clk = 1'b0;
forever
#10 clk = ~clk;
//$display("Running testbench");
end
initial
begin
rst_n = 1'b0;
#1000
rst_n = 1'b1;
#20000
$stop;
end
always @(posedge clk or negedge rst_n)
begin
if(rst_n == 1'b0)
begin
phi = -17'hfff0;
end
else if(phi = 17'hfff0) //就是这个else if,只要一添加,仿真就挂掉
begin
phi = -17'hfff0;
end
else
begin
phi = phi + 17'h16c;
end
end
我刚开没几天,完全菜鸟级,ModelSim仿真CORDIC算法的波形,输入角度是-PI—PI,所以我就想从-PI—PI,判断到PI,然后赋值为-PI。phi为reg signed [16:0]。另外就是仿真的波形在PI/2,一直是1。烦劳高手解答。
endmodule |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|