我是靠谱客的博主 纯真砖头,最近开发中收集的这篇文章主要介绍USRP_B210之FPGA分析3:b200_io模块的简单分析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

先上接口代码:

//
// Copyright 2013 Ettus Research LLC
// Copyright 2017 Ettus Research, a National Instruments Company
//
// SPDX-License-Identifier: LGPL-3.0-or-later
//
//
//------------------------------------------------------------------
//
// In SISO mode, we output a clock thats 1x the frequency of the Catalina
// source-synchronous bus clock to be used as the radio_clk.
// In MIMO mode, we output a clock thats 1/2 the frequency of the Catalina
// source-synchronous bus clock to be used as the radio_clk.
//
//------------------------------------------------------------------
/*
https://blog.csdn.net/weixin_39789553/article/details/114385676
*/
module b200_io
    (
     input 	  reset,
     input 	  mimo,

     // Baseband sample interface
     output 	  radio_clk,
     output [11:0] rx_i0,
     output [11:0] rx_q0,
     output [11:0] rx_i1,
     output [11:0] rx_q1,
     input [11:0]  tx_i0,
     input [11:0]  tx_q0,
     input [11:0]  tx_i1,
     input [11:0]  tx_q1,

     // Catalina interface
     input 	  rx_clk,
     input 	  rx_frame,
     input [11:0]  rx_data,
     output 	  tx_clk,
     output 	  tx_frame,
     output [11:0] tx_data
     );

这个模块就是接AD9361的模块,除了AD9361给过来的rx_clk,没有别的时钟给FPGA,相反还产生了一个时钟radio_clk供给模块外部用以CDC同步和作为基带时钟。

我们继续看下面的实现代码,这里看到代码主要用到了以下几个模块:

IDDR2实现差分信号的接入。

ODDR2实现差分信号输出。

BUFGMUX实现局域时钟的多路选择。

BUFG实现输入时钟的缓冲。

BUFIO2实现时钟分频。

我看这代码写得有不太正规,我尝试了做了修改,使用generate语句进行了规整。

   genvar y ;
   generate
      for(y = 0; y < 12;y = y + 1)
	begin : get_pins
          IDDR2 #(
		 .DDR_ALIGNMENT("C0"))
         iddr2_i0 (
		   .Q0(rx_q[y]),
		   .Q1(rx_i[y]),
		   .C0(io_clk_lb),
		   .C1(io_clk_lb_b),
		   .CE(1'b1),
		   .D(rx_data[y]),
		   .R(1'b0),
		   .S(1'b0));

	end
   endgenerate

将12段RX的IDDR2都用这个语句规整起来了,实际编译通过,生成BIT流还没有下板子验证,应该没有问题,将在之后进行实际下板子验证。

这里如果大家要深入研究时序,可以参考AD9361的接口时序,以及XILINX官方对应器件的时钟以及接口部分的数据手册。这里不再展开。

{{aAx8MOMTX8HOvmxOoxmwMHHoviVIx8IOiWOmTUIUUixiwiWXI8UIU8MowM8oWHoMVoXXXXVTUTOHUTT8VXToVMwXivMHV8iWTwIiOiiVivwIOOIVxU8o8UVHxUvIVm8OVXomXwomiIM8vOxOHHIVZz}}

 

最后

以上就是纯真砖头为你收集整理的USRP_B210之FPGA分析3:b200_io模块的简单分析的全部内容,希望文章能够帮你解决USRP_B210之FPGA分析3:b200_io模块的简单分析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部