Archived
510 lines
15 KiB
Verilog
510 lines
15 KiB
Verilog
`timescale 1ns / 1ps
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
// Company:
|
|
// Engineer:
|
|
//
|
|
// Create Date: 2022/07/13 14:20:24
|
|
// Design Name:
|
|
// Module Name: ant_rf_ctrl
|
|
// Project Name:
|
|
// Target Devices:
|
|
// Tool Versions:
|
|
// Description:
|
|
//
|
|
// Dependencies:
|
|
//
|
|
// Revision:
|
|
// Revision 0.01 - File Created
|
|
// Additional Comments:
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
module ant_rf_ctrl
|
|
(
|
|
input clk_48m ,
|
|
input clk_96m ,
|
|
input clk_32m ,
|
|
input clk_19p2m ,
|
|
input sys_rst ,
|
|
|
|
output ant_clk ,
|
|
output ant_en ,
|
|
output ant_data ,
|
|
output ant_tr ,
|
|
output ant_dary ,
|
|
input ant_dout ,
|
|
|
|
output rf_standby ,
|
|
output rf_sw_pll ,
|
|
output rf_t ,
|
|
output rf_r ,
|
|
output rf_sw_bpf ,
|
|
output rf_sclk1 ,
|
|
output rf_sdio1 ,
|
|
output rf_cs1 ,
|
|
input rf_ld1 ,
|
|
output rf_sclk2 ,
|
|
output rf_sdio2 ,
|
|
output rf_cs2 ,
|
|
input rf_ld2 ,
|
|
output rf_sclk3 ,
|
|
output rf_sdio3 ,
|
|
output rf_cs3 ,
|
|
input rf_ld3 ,
|
|
output rf_tmgc_16 ,
|
|
output rf_tmgc_8 ,
|
|
output rf_tmgc_4 ,
|
|
output rf_tmgc_2 ,
|
|
output rf_tmgc_1 ,
|
|
output rf_rmgc_16 ,
|
|
output rf_rmgc_8 ,
|
|
output rf_rmgc_4 ,
|
|
output rf_rmgc_2 ,
|
|
output rf_rmgc_1 ,
|
|
output rf_enable ,
|
|
output rf_sc ,
|
|
output rf_sd ,
|
|
output rf_endsyn ,
|
|
input rf_sdout ,
|
|
inout rf_dq_wd ,
|
|
output rf_sw_rx
|
|
);
|
|
|
|
|
|
(*dont_touch = "true"*) wire vio_switch ; // 键控开关,沿有效
|
|
(*dont_touch = "true"*) wire vio_trdirection ; // 收发方向
|
|
(*dont_touch = "true"*) wire [15:0] vio_frequency ; // 收发频率
|
|
(*dont_touch = "true"*) wire [ 7:0] vio_emitMGC ; // 发送MGC
|
|
(*dont_touch = "true"*) wire [ 3:0] vio_ch01MGC ; // 1通道校准MGC
|
|
(*dont_touch = "true"*) wire [ 3:0] vio_ch02MGC ; // 2通道校准MGC
|
|
(*dont_touch = "true"*) wire [ 3:0] vio_ch03MGC ; // 3通道校准MGC
|
|
(*dont_touch = "true"*) wire [ 3:0] vio_ch04MGC ; // 4通道校准MGC
|
|
(*dont_touch = "true"*) wire [ 7:0] vio_recvMGC ; // 接收MGC
|
|
(*dont_touch = "true"*) wire [ 7:0] vio_AntMod ; // 天线工作模式
|
|
(*dont_touch = "true"*) wire [15:0] vio_AntOffAxis ; // 天线离轴角
|
|
(*dont_touch = "true"*) wire [15:0] vio_AntYaw ; // 天线偏航角
|
|
(*dont_touch = "true"*) wire [15:0] vio_PrecessTime ; // 处理时间,从EN拉低到DARY拉低
|
|
|
|
(*dont_touch = "true"*)wire vio_mode_ant ; // 0定频手动,1扫频模式
|
|
(*dont_touch = "true"*)wire vio_hop_start ; // 0跳频终止,1重新跳频
|
|
(*dont_touch = "true"*)wire vio_standby ; // 0待机模式,1工作模式
|
|
(*dont_touch = "true"*)wire [15:0] vio_hoptime ; // 单跳时间计数器
|
|
|
|
reg Ant_switch_D1 = 0;
|
|
reg data_valid = 0;
|
|
reg switch_valid = 0;
|
|
reg [95:0] RF_CtrlWord = 0;
|
|
reg [127:0] Ant_CtrlWord = 0;
|
|
reg [15:0] data_valid_countdown = 0;
|
|
reg [15:0] rst_countdown = 100;
|
|
reg [95:0] RF_CtrlWord_running = 0;
|
|
reg [127:0] Ant_CtrlWord_running = 0;
|
|
reg rst_n = 0;
|
|
reg SPI_SYN_F = 1;
|
|
reg SPI_MOSI_F = 1;
|
|
reg TP_EN_F = 0;
|
|
reg TR_MGC_F = 0;
|
|
reg CAL_F = 0;
|
|
reg PRF = 0;
|
|
wire SPI_MISO_F;
|
|
reg Ant_DATA = 0;
|
|
reg Ant_EN = 0;
|
|
reg Ant_DARY = 0;
|
|
reg Ant_TR = 0;
|
|
|
|
|
|
|
|
//相控阵测试程序
|
|
reg [15:0] cnt_freq_change = 16'd0;
|
|
|
|
reg Ant_switch ; // 键控开关,沿有效
|
|
reg [15:0] Ant_frequency; // 收发频率
|
|
reg [ 7:0] Ant_mode ; // 相控阵模式
|
|
reg [ 7:0] RF_mode ; // 射频模式
|
|
|
|
always @ (posedge clk_48m) begin
|
|
if(sys_rst) begin
|
|
Ant_switch <= 1'b0;
|
|
cnt_freq_change[15:0] <= 16'd0;
|
|
Ant_frequency[15:0] <= 16'd0;
|
|
RF_mode[7:0] <= 8'h10;
|
|
Ant_mode[7:0] <= 8'h0f;
|
|
end
|
|
else begin
|
|
if(vio_mode_ant) begin
|
|
if(vio_hop_start) begin
|
|
if(cnt_freq_change[15:0] == (vio_hoptime[15:0] - 16'd1)) begin
|
|
Ant_switch <= ~Ant_switch;
|
|
if(Ant_frequency[15:0] == 16'd3500) begin
|
|
Ant_frequency[15:0] <= 16'd0;
|
|
end
|
|
else begin
|
|
Ant_frequency[15:0] <= Ant_frequency[15:0] + 16'd1;
|
|
end
|
|
cnt_freq_change[15:0] <= 16'd0;
|
|
end
|
|
else begin
|
|
Ant_switch <= Ant_switch;
|
|
Ant_frequency[15:0] <= Ant_frequency[15:0];
|
|
cnt_freq_change[15:0] <= cnt_freq_change[15:0] + 16'd1;
|
|
end
|
|
end
|
|
else begin
|
|
Ant_switch <= Ant_switch;
|
|
Ant_frequency[15:0] <= 16'd0;
|
|
cnt_freq_change[15:0] <= 16'd0;
|
|
end
|
|
end
|
|
else begin
|
|
Ant_switch <= vio_switch;
|
|
Ant_frequency[15:0] <= vio_frequency[15:0];
|
|
cnt_freq_change[15:0] <= 16'd0;
|
|
end
|
|
|
|
if(vio_standby) begin
|
|
RF_mode[7:0] <= 8'h10;
|
|
Ant_mode[7:0] <= 8'h0f;
|
|
end
|
|
else begin
|
|
RF_mode[7:0] <= 8'h00;
|
|
Ant_mode[7:0] <= vio_AntMod[7:0];
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
always @(posedge clk_48m)
|
|
begin
|
|
Ant_switch_D1 <= Ant_switch;
|
|
if(Ant_switch_D1 != Ant_switch)
|
|
switch_valid <= 1'b1;
|
|
else
|
|
switch_valid <= 1'b0;
|
|
|
|
if(switch_valid)
|
|
begin
|
|
RF_CtrlWord[95:88] <= 8'hAA;
|
|
RF_CtrlWord[87:80] <= RF_mode[7:0];
|
|
RF_CtrlWord[79:64] <= Ant_frequency[15:0];
|
|
RF_CtrlWord[63:56] <= vio_emitMGC[7:0];
|
|
RF_CtrlWord[55:52] <= vio_ch01MGC[3:0];
|
|
RF_CtrlWord[51:48] <= vio_ch02MGC[3:0];
|
|
RF_CtrlWord[47:44] <= vio_ch03MGC[3:0];
|
|
RF_CtrlWord[43:40] <= vio_ch04MGC[3:0];
|
|
RF_CtrlWord[39:32] <= vio_recvMGC[7:0];
|
|
RF_CtrlWord[31:8] <= 24'h00_0000;
|
|
RF_CtrlWord[7:0] <= 8'hCC;
|
|
|
|
Ant_CtrlWord[127:120] <= 8'hAA;
|
|
Ant_CtrlWord[119:112] <= 8'h00;
|
|
Ant_CtrlWord[111:104] <= Ant_mode[7:0];
|
|
Ant_CtrlWord[103: 88] <= vio_AntOffAxis[15:0];
|
|
Ant_CtrlWord[ 87: 72] <= vio_AntYaw[15:0];
|
|
Ant_CtrlWord[ 71: 56] <= Ant_frequency[15:0];
|
|
Ant_CtrlWord[ 55: 8] <= 48'h00_00_00_00_00_00;
|
|
Ant_CtrlWord[ 7: 0] <= 8'hCC;
|
|
end
|
|
else
|
|
begin
|
|
RF_CtrlWord[95:0] <= RF_CtrlWord[95:0];
|
|
Ant_CtrlWord[127:0] <= Ant_CtrlWord[127:0];
|
|
end
|
|
|
|
if(switch_valid)
|
|
data_valid_countdown[15:0] <= vio_PrecessTime[15:0];
|
|
else if(data_valid_countdown[15:0] != 16'd0)
|
|
data_valid_countdown[15:0] <= data_valid_countdown[15:0] - 16'd1;
|
|
|
|
|
|
// RF控制
|
|
if(data_valid_countdown[15:0] == vio_PrecessTime[15:0])
|
|
RF_CtrlWord_running[95:0] <= RF_CtrlWord[95:0];
|
|
else
|
|
RF_CtrlWord_running[95:0] <= {RF_CtrlWord_running[94:0],1'b0};
|
|
|
|
if(data_valid_countdown[15:0] >= vio_PrecessTime[15:0]-16'd96 && data_valid_countdown[15:0] < vio_PrecessTime[15:0])
|
|
begin
|
|
SPI_SYN_F <= 1'b0;
|
|
SPI_MOSI_F <= RF_CtrlWord_running[95];
|
|
end
|
|
else
|
|
begin
|
|
SPI_SYN_F <= 1'b1;
|
|
SPI_MOSI_F <= 1'b0;
|
|
end
|
|
|
|
|
|
if(data_valid_countdown[15:0] <= 16'd128 && data_valid_countdown[15:0] > 16'd80)
|
|
CAL_F <= 1'b1;
|
|
else
|
|
CAL_F <= 1'b0;
|
|
|
|
if(data_valid_countdown[15:0] <= 16'd48 && data_valid_countdown[15:0] > 16'd0)
|
|
begin
|
|
TP_EN_F <= 1'b1;
|
|
TR_MGC_F <= 1'b1;
|
|
end
|
|
else
|
|
begin
|
|
TP_EN_F <= 1'b0;
|
|
TR_MGC_F <= 1'b0;
|
|
end
|
|
|
|
if(data_valid_countdown[15:0] == 16'd48)
|
|
PRF <= vio_trdirection;
|
|
else
|
|
PRF <= PRF;
|
|
|
|
if(sys_rst)
|
|
rst_countdown[15:0] <= 16'd100;
|
|
else if(rst_countdown[15:0] != 0)
|
|
begin
|
|
rst_countdown[15:0] <= rst_countdown[15:0] - 16'd1;
|
|
rst_n <= 1'b0;
|
|
end
|
|
else
|
|
begin
|
|
rst_countdown[15:0] <= rst_countdown[15:0];
|
|
rst_n <= 1'b1;
|
|
end
|
|
|
|
// 天线控制
|
|
if(data_valid_countdown[15:0] == vio_PrecessTime[15:0])
|
|
Ant_CtrlWord_running[127:0] <= Ant_CtrlWord[127:0];
|
|
else
|
|
Ant_CtrlWord_running[127:0] <= {Ant_CtrlWord_running[126:0],1'b0};
|
|
|
|
if(data_valid_countdown[15:0] >= vio_PrecessTime[15:0]-16'd128 && data_valid_countdown[15:0] < vio_PrecessTime[15:0])
|
|
begin
|
|
Ant_EN <= 1'b0;
|
|
Ant_DATA <= Ant_CtrlWord_running[127];
|
|
end
|
|
else
|
|
begin
|
|
Ant_EN <= 1'b1;
|
|
Ant_DATA <= 1'b0;
|
|
end
|
|
|
|
if(data_valid_countdown[15:0] <= 16'd48 && data_valid_countdown[15:0] > 16'd0)
|
|
Ant_DARY <= 1'b0;
|
|
else
|
|
Ant_DARY <= 1'b1;
|
|
|
|
if(data_valid_countdown[15:0] == 16'd48)
|
|
Ant_TR <= vio_trdirection;
|
|
else
|
|
Ant_TR <= Ant_TR;
|
|
end
|
|
|
|
|
|
//RF recv_data
|
|
reg [1:0] state_rfdata;
|
|
reg SPI_SYN_F_d1 = 1'b0;
|
|
reg [15:0] cnt_rfdata = 16'd0;
|
|
reg [95:0] RF_RecvWord = 96'd0;
|
|
reg [95:0] RF_RecvWord_last = 96'd0;
|
|
|
|
reg [7:0] RF_temperature = 8'd0 ;
|
|
reg [7:0] RF_IFlocked = 8'd0 ;
|
|
reg [7:0] RF_RFAlocked = 8'd0 ;
|
|
reg [7:0] RF_RFBlocked = 8'd0 ;
|
|
reg [3:0] RF_ch1mgc = 4'd0 ;
|
|
reg [3:0] RF_ch2mgc = 4'd0 ;
|
|
reg [3:0] RF_ch3mgc = 4'd0 ;
|
|
reg [3:0] RF_ch4mgc = 4'd0 ;
|
|
reg [31:0] RF_Framecount = 32'd0 ;
|
|
|
|
always @ (posedge clk_48m) begin
|
|
if(sys_rst) begin
|
|
state_rfdata[1:0] <= 2'd0;
|
|
SPI_SYN_F_d1 <= 1'b0;
|
|
RF_RecvWord[95:0] <= 96'd0;
|
|
cnt_rfdata[15:0] <= 16'd0;
|
|
RF_temperature[7:0] <= 8'd0 ;
|
|
RF_IFlocked[7:0] <= 8'd0 ;
|
|
RF_RFAlocked[7:0] <= 8'd0 ;
|
|
RF_RFBlocked[7:0] <= 8'd0 ;
|
|
RF_ch1mgc[3:0] <= 4'd0 ;
|
|
RF_ch2mgc[3:0] <= 4'd0 ;
|
|
RF_ch3mgc[3:0] <= 4'd0 ;
|
|
RF_ch4mgc[3:0] <= 4'd0 ;
|
|
RF_Framecount[31:0] <= 32'd0;
|
|
end
|
|
else begin
|
|
RF_RecvWord[95:0] <= {RF_RecvWord[94:0],SPI_MISO_F};
|
|
|
|
if (RF_RecvWord[95:88] == 8'hAA && RF_RecvWord[7:0] == 8'hCC) begin//校验帧头帧尾
|
|
RF_temperature[7:0] <= RF_RecvWord[87:80];
|
|
RF_IFlocked[7:0] <= RF_RecvWord[79:72];
|
|
RF_RFAlocked[7:0] <= RF_RecvWord[71:64];
|
|
RF_RFBlocked[7:0] <= RF_RecvWord[63:56];
|
|
RF_ch1mgc[3:0] <= RF_RecvWord[55:52];
|
|
RF_ch2mgc[3:0] <= RF_RecvWord[51:48];
|
|
RF_ch3mgc[3:0] <= RF_RecvWord[47:44];
|
|
RF_ch4mgc[3:0] <= RF_RecvWord[43:40];
|
|
RF_Framecount[31:0] <= RF_RecvWord[39:8];
|
|
RF_RecvWord_last <= RF_RecvWord;
|
|
end
|
|
else begin // hold otherwise
|
|
RF_temperature[7:0] <= RF_temperature[7:0];
|
|
RF_IFlocked[7:0] <= RF_IFlocked[7:0] ;
|
|
RF_RFAlocked[7:0] <= RF_RFAlocked[7:0] ;
|
|
RF_RFBlocked[7:0] <= RF_RFBlocked[7:0] ;
|
|
RF_ch1mgc[3:0] <= RF_ch1mgc[3:0] ;
|
|
RF_ch2mgc[3:0] <= RF_ch2mgc[3:0] ;
|
|
RF_ch3mgc[3:0] <= RF_ch3mgc[3:0] ;
|
|
RF_ch4mgc[3:0] <= RF_ch4mgc[3:0] ;
|
|
RF_Framecount[31:0] <= RF_Framecount[31:0];
|
|
RF_RecvWord_last <= RF_RecvWord_last;
|
|
end
|
|
end
|
|
end
|
|
// 天线的输出时钟转换
|
|
reg Ant_dclk_96m = 1;
|
|
wire [3:0] fifo_wr_din, fifo_rd_dout;
|
|
wire fifo_full, fifo_empty;
|
|
reg Ant_EN_96m = 0;
|
|
reg Ant_DATA_96m = 0;
|
|
reg Ant_DARY_96m = 1;
|
|
reg Ant_TR_96m = 0;
|
|
assign fifo_wr_din[3] = Ant_EN;
|
|
assign fifo_wr_din[2] = Ant_DATA;
|
|
assign fifo_wr_din[1] = Ant_DARY;
|
|
assign fifo_wr_din[0] = Ant_TR;
|
|
reg fifo_rd_en = 0;
|
|
reg fifo_rst = 0;
|
|
reg [8:0] Ant_clk_countdown = 0;
|
|
always @(posedge clk_96m)
|
|
begin
|
|
fifo_rst <= sys_rst;
|
|
|
|
fifo_rd_en <= (fifo_rst == 1'b1)? 1'b0:!fifo_rd_en;
|
|
|
|
if(fifo_rd_en)
|
|
{Ant_EN_96m,Ant_DATA_96m,Ant_DARY_96m,Ant_TR_96m} <= fifo_rd_dout[3:0];
|
|
else
|
|
{Ant_EN_96m,Ant_DATA_96m,Ant_DARY_96m,Ant_TR_96m} <= {Ant_EN_96m,Ant_DATA_96m,Ant_DARY_96m,Ant_TR_96m};
|
|
|
|
if(fifo_rd_en && Ant_EN_96m && !fifo_rd_dout[3])
|
|
Ant_clk_countdown[8:0] <= 9'd276;
|
|
else if(Ant_clk_countdown[8:0] != 9'd0)
|
|
Ant_clk_countdown[8:0] <= Ant_clk_countdown[8:0] - 9'd1;
|
|
else
|
|
Ant_clk_countdown[8:0] <= Ant_clk_countdown[8:0];
|
|
end
|
|
assign ant_clk = !Ant_clk_countdown[0];
|
|
assign ant_en = Ant_EN_96m;
|
|
assign ant_data = Ant_DATA_96m;
|
|
assign ant_tr = Ant_TR_96m;
|
|
assign ant_dary = Ant_DARY_96m;
|
|
|
|
fifo_AntCtrl fifo_AntCtrl
|
|
(
|
|
.rst (fifo_rst ), // input wire rst
|
|
.wr_clk (clk_48m ), // input wire wr_clk
|
|
.rd_clk (clk_96m ), // input wire rd_clk
|
|
.din (fifo_wr_din[3:0] ), // input wire [3 : 0] din
|
|
.wr_en (!fifo_rst ), // input wire wr_en
|
|
.rd_en (fifo_rd_en ), // input wire rd_en
|
|
.dout (fifo_rd_dout[3:0] ), // output wire [3 : 0] dout
|
|
.full (fifo_full ), // output wire full
|
|
.empty (fifo_empty ) // output wire empty
|
|
);
|
|
//Ant recv_data
|
|
reg [1:0] state_antdata;
|
|
reg Ant_EN_96m_d1 = 1'b0;
|
|
reg [15:0] cnt_antdata = 16'd0;
|
|
reg [95:0] Ant_RecvWord = 'b0;
|
|
reg [95:0] Ant_RecvWord_last = 'b0;
|
|
|
|
reg [7:0] Ant_Ant_Volt = 8'd0 ;
|
|
reg [7:0] Ant_RF_Volt = 8'd0 ;
|
|
reg [7:0] Ant_IF_Volt = 8'd0 ;
|
|
reg [7:0] Ant_state = 8'd0 ;
|
|
reg [31:0] Ant_Framecount = 32'd0 ;
|
|
|
|
always @ (posedge clk_96m) begin
|
|
if(sys_rst) begin
|
|
state_antdata[1:0] <= 2'd0;
|
|
Ant_EN_96m_d1 <= 1'b0;
|
|
Ant_RecvWord[95:0] <= 'd0;
|
|
cnt_antdata[15:0] <= 16'd0;
|
|
Ant_Ant_Volt[7:0] <= 8'd0 ;
|
|
Ant_RF_Volt[7:0] <= 8'd0 ;
|
|
Ant_IF_Volt[7:0] <= 8'd0 ;
|
|
Ant_state[7:0] <= 8'd0 ;
|
|
Ant_Framecount[31:0] <= 32'd0;
|
|
end
|
|
else begin
|
|
Ant_RecvWord[95:0] <= {Ant_RecvWord[94:0],ant_dout};
|
|
|
|
if(Ant_RecvWord[95:88] == 8'hAA && Ant_RecvWord[7:0] == 8'hCC) begin//校验帧头帧尾
|
|
Ant_Ant_Volt[7:0] <= Ant_RecvWord[87:80];
|
|
Ant_RF_Volt[7:0] <= Ant_RecvWord[79:72];
|
|
Ant_IF_Volt[7:0] <= Ant_RecvWord[71:64];
|
|
Ant_state[7:0] <= Ant_RecvWord[47:40];
|
|
Ant_Framecount[31:0] <= Ant_RecvWord[39:8] ;
|
|
Ant_RecvWord_last <= Ant_RecvWord ;
|
|
end
|
|
else begin // hold otherwise
|
|
Ant_Ant_Volt[7:0] <= Ant_Ant_Volt[7:0] ;
|
|
Ant_RF_Volt[7:0] <= Ant_RF_Volt[7:0] ;
|
|
Ant_IF_Volt[7:0] <= Ant_IF_Volt[7:0] ;
|
|
Ant_state[7:0] <= Ant_state[7:0] ;
|
|
Ant_Framecount[31:0] <= Ant_Framecount[31:0] ;
|
|
Ant_RecvWord_last <= Ant_RecvWord_last ;
|
|
end
|
|
end
|
|
|
|
end
|
|
Sisyif uut(
|
|
.clk_40m(clk_32m),
|
|
.clk_20m(clk_19p2m),
|
|
.SPI_CLK_F(clk_48m),
|
|
.rst_n(rst_n),
|
|
.SPI_SYN_F(SPI_SYN_F),
|
|
.SPI_MOSI_F(SPI_MOSI_F),
|
|
.SPI_MISO_F(SPI_MISO_F),
|
|
.TP_EN_F(TP_EN_F),
|
|
.TR_MGC_F(TR_MGC_F),
|
|
.CAL_F(CAL_F),
|
|
.PRF(PRF),
|
|
.standby(rf_standby),
|
|
.SW_PLL(rf_sw_pll),
|
|
.T(rf_t),
|
|
.R(rf_r),
|
|
.SW_BPF(rf_sw_bpf),
|
|
.SCLK1(rf_sclk1),
|
|
.SDIO1(rf_sdio1),
|
|
.CS1(rf_cs1),
|
|
.LD1(rf_ld1),
|
|
.SCLK2(rf_sclk2),
|
|
.SDIO2(rf_sdio2),
|
|
.CS2(rf_cs2),
|
|
.LD2(rf_ld2),
|
|
.SCLK3(rf_sclk3),
|
|
.SDIO3(rf_sdio3),
|
|
.CS3(rf_cs3),
|
|
.LD3(rf_ld3),
|
|
.TMGC_16db(rf_tmgc_16),
|
|
.TMGC_8db(rf_tmgc_8),
|
|
.TMGC_4db(rf_tmgc_4),
|
|
.TMGC_2db(rf_tmgc_2),
|
|
.TMGC_1db(rf_tmgc_1),
|
|
.RMGC_16db(rf_rmgc_16),
|
|
.RMGC_8db(rf_rmgc_8),
|
|
.RMGC_4db(rf_rmgc_4),
|
|
.RMGC_2db(rf_rmgc_2),
|
|
.RMGC_1db(rf_rmgc_1),
|
|
.ENABLE(rf_enable),
|
|
.SC(rf_sc),
|
|
.SD(rf_sd),
|
|
.END_SYN(rf_endsyn),
|
|
.SDOUT(rf_sdout),
|
|
.DQ_WD(rf_dq_wd),
|
|
.SW_RX(rf_sw_rx)
|
|
);
|
|
|
|
endmodule
|