当前位置: 首页 > news >正文

北辰做网站公司seo面试常见问题及答案

北辰做网站公司,seo面试常见问题及答案,中山网站建设模板招商,win10 电脑做网站服务器目录 基本原理 verilog代码 仿真结果​ 基本原理 多路并行dds,传统DDS的局限性在于输出频率有限。根据奈奎斯特采样定理,单路DDS的输出频率应小于系统时钟频率的一半。但是在很多地方,要使采样率保持一致,所以,为了…
  • 目录

  1. 基本原理

    verilog代码

    仿真结果​

  2. 基本原理

    1.        多路并行dds,传统DDS的局限性在于输出频率有限。根据奈奎斯特采样定理,单路DDS的输出频率应小于系统时钟频率的一半。但是在很多地方,要使采样率保持一致,所以,为了提高采样率,可以采样多路并行dds技术,然后并转串输出,提高采样率。

       这里假设使用4个dds产生4路并行的dds,其中,4路dds的可以分别表示为:

  1. 可以从上式中看出,4路dds的pinc(频率控制字)是一样,差别是在其相位差(poff)DDS0的poff是0;DDS1的poff是fofs*1;,DDS2的poff是fofs*2;DDS3的poff是fofs*3

    假如fs是100MHz,调用4个并行的dds,然后按照顺序将4路并行的dds拼接成一路(并转串),这样就相当于采样率是4*fs,即400MHz采样率下的数据

  2. verilog代码

    1. 这里使用4路并行dds
  3. assign dds_pinc = 32'd107374182; //fs 100m.f_out =10M 30bit ;26843545 //107374182
    assign dds_poff = 32'd107374182*0; //fs 100m.f_out =10M 30bit ; 26843545
    //
    assign dds_pinc_1 = 32'd107374182; //fs 100m.f_out =10M 30bit ;
    assign dds_poff_1 = 32'd107374182*1; //fs 100m.f_out =10M 30bit ; //26843545
    //
    assign dds_pinc_2 = 32'd107374182; //fs 100m.f_out =10M 30bit ;
    assign dds_poff_2 = 32'd107374182*2; //fs 100m.f_out =10M 30bit ;
    //
    assign dds_pinc_3 = 32'd107374182; //fs 100m.f_out =10M 30bit ;
    assign dds_poff_3 = 32'd107374182*3; //fs 100m.f_out =10M 30bit ;
    assign dds_t_data = {dds_poff,dds_pinc};
    assign dds_t_data_1 = {dds_poff_1,dds_pinc_1};
    assign dds_t_data_2 = {dds_poff_2,dds_pinc_2};
    assign dds_t_data_3 = {dds_poff_3,dds_pinc_3};
    //
    always@(posedge clk) begin if(rst == 1'b1)begin gen_valid <= 1'b0;end else if(start == 1'b1)begin gen_valid  <= 1'b1;end else begin gen_valid <= gen_valid;end
    endassign sin_0 = m_axis_data_tdata[31:16];
    assign cos_0 = m_axis_data_tdata[15:0];
    assign sin_1 = m_axis_data_tdata_1[31:16];
    assign cos_1 = m_axis_data_tdata_1[15:0];
    assign sin_2 = m_axis_data_tdata_2[31:16];
    assign cos_2 = m_axis_data_tdata_2[15:0];
    assign sin_3 = m_axis_data_tdata_3[31:16];
    assign cos_3 = m_axis_data_tdata_3[15:0];
    dds100m_0 dds100m_0_inst (.aclk(clk),                                  // input wire aclk.s_axis_config_tvalid(gen_valid),  // input wire s_axis_config_tvalid.s_axis_config_tdata(dds_t_data),    // input wire [63 : 0] s_axis_config_tdata.m_axis_data_tvalid(dds_data_valid),      // output wire m_axis_data_tvalid.m_axis_data_tdata(m_axis_data_tdata),        // output wire [31 : 0] m_axis_data_tdata.m_axis_phase_tvalid(),    // output wire m_axis_phase_tvalid.m_axis_phase_tdata()      // output wire [31 : 0] m_axis_phase_tdata
    );
    dds100m_0 dds100m_1_inst (.aclk(clk),                                  // input wire aclk.s_axis_config_tvalid(gen_valid),  // input wire s_axis_config_tvalid.s_axis_config_tdata(dds_t_data_1),    // input wire [63 : 0] s_axis_config_tdata.m_axis_data_tvalid(dds_data_valid),      // output wire m_axis_data_tvalid.m_axis_data_tdata(m_axis_data_tdata_1),        // output wire [31 : 0] m_axis_data_tdata.m_axis_phase_tvalid(m_axis_phase_tvalid),    // output wire m_axis_phase_tvalid.m_axis_phase_tdata(m_axis_phase_tdata)      // output wire [31 : 0] m_axis_phase_tdata
    );
    dds100m_0 dds100m_2_inst (.aclk(clk),                                  // input wire aclk.s_axis_config_tvalid(gen_valid),  // input wire s_axis_config_tvalid.s_axis_config_tdata(dds_t_data_2),    // input wire [63 : 0] s_axis_config_tdata.m_axis_data_tvalid(dds_data_valid),      // output wire m_axis_data_tvalid.m_axis_data_tdata(m_axis_data_tdata_2),        // output wire [31 : 0] m_axis_data_tdata.m_axis_phase_tvalid(m_axis_phase_tvalid),    // output wire m_axis_phase_tvalid.m_axis_phase_tdata(m_axis_phase_tdata)      // output wire [31 : 0] m_axis_phase_tdata
    );
    dds100m_0 dds100m_3_inst (.aclk(clk),                                  // input wire aclk.s_axis_config_tvalid(gen_valid),  // input wire s_axis_config_tvalid.s_axis_config_tdata(dds_t_data_3),    // input wire [63 : 0] s_axis_config_tdata.m_axis_data_tvalid(dds_data_valid),      // output wire m_axis_data_tvalid.m_axis_data_tdata(m_axis_data_tdata_3),        // output wire [31 : 0] m_axis_data_tdata.m_axis_phase_tvalid(m_axis_phase_tvalid),    // output wire m_axis_phase_tvalid.m_axis_phase_tdata(m_axis_phase_tdata)      // output wire [31 : 0] m_axis_phase_tdata
    );

    仿真结果

  4. 可以从上图中看出,输出的余弦波有明显的相位差,最后只需要将这4路并行的dds拼接起来(并转出),即可实现4*fs 采样率。
http://www.shuangfujiaoyu.com/news/44014.html

相关文章:

  • 定制网站需要多少钱中国今天新闻最新消息
  • 网站建设和网站优化哪个重要给你一个网站怎么优化
  • 阿里云可以放几个网站精准营销方式有哪些
  • 1网站建设营销策略有哪些4种
  • 杭州做网站找力果东莞seo推广
  • 黑苹果做网站开发吗微博营销
  • 小程序开发成本班级优化大师
  • 公司百度网站建设国内最好的seo培训
  • 网站的建设要多少钱大学生创新创业大赛
  • 成都网站建设 四川冠辰seo网络优化软件
  • 长沙市政府网站建设现状百度公司简介介绍
  • 宝鸡网站开发seo搜索引擎优化实训报告
  • wordpress改网站logo怎么做网站赚钱
  • 网站建造免费5g网络优化工程师
  • 网站开发 技术指标广州seo工程师
  • 高端网站建设多少钱建立网站的基本流程
  • 青岛网站优化公司编程培训
  • 新疆网站设计推广计划
  • 建站公司网站社区网络营销产品策略的内容
  • 360怎么做网站网站设计与建设
  • 游戏网站如何做抖音seo关键词优化怎么做
  • 网站banner图片制作深圳华强北最新消息
  • 没有网站做推广成都有实力的seo团队
  • 中国网建短信平台搜索引擎优化培训
  • 百度关键词优化快速排名软件宁波谷歌seo
  • discuz做电影网站广告推广费用
  • 直销系统软件重庆seo关键词排名
  • 网站备案幕布下载华为云速建站
  • 上海前100强企业名单贵港seo
  • 百度搜索引擎地址南通seo