教我verilog 2021-10-04 22:33 采纳率: 100%
浏览 31
已结题

使用NCO ip核生成波形怎么有跳变,百思不得其解

我的顶层代码

module  top
(
input  clk,
input  rst_n,
output   [13:0]  sine
);
wire  [31:0] phi_inc_i;
wire       clken;
wire   [13:0] phase_mod_i;
wire    out_valid;
assign  clken = 1'b1;
assign    phi_inc_i = 32'd42949673;

assign  phase_mod_i = 14'b10_0110_0000_1111;

nco_100M_1M  inst1(
    
    
.phi_inc_i     (phi_inc_i)      ,
.clk             (clk)      ,
.reset_n         (rst_n)      ,
.clken           (clken)      ,
.phase_mod_i     (phase_mod_i)      ,
.fsin_o          (sine)      ,
.out_valid       (out_valid )
    
    
    );
endmodule


我的测试文件

`timescale 1ns / 1ns

module tb();
reg rst1;
reg clk;
wire  [13:0]  SI;

top  t1(
.rst_n(rst1),
.clk(clk),
.sine(SI));

parameter PERIOD = 10; // 设置系统时钟为50Mhz

always #10 clk = ~clk; 

initial begin 
clk = 1'b0; #40;
rst1 = 1'b0; #40; 
rst1 = 1'b1; 
end

endmodule

img

  • 写回答

3条回答 默认 最新

  • 老皮芽子 2021-10-05 09:47
    关注

    真正的原因还是有符号数和无符号数没整对。
    比如仿真的正弦波,
    8位有符号数在0点附近,-1,0这2个数据间隔只相差1。
    换成8位无符号数这2个数就是 255,0,这2个数间隔就成255了。
    画成仿真波形,平滑的曲线就成锯齿了。
    有符号数,无符号数整错,曲线接近0的负数会当成数值很大的正数画出来。曲线下方的负数也会当成正数画到上面去。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月28日
  • 已采纳回答 11月20日
  • 创建了问题 10月4日

悬赏问题

  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算