/******************************FILE HEAD**********************************
* file_name : parseGGA_tb.v
* function : 解析xxGGA报文,获取UTC时间、经纬度、海拔
* author : 今朝无言
* version & date : 2021/10/14 & v1.0
*************************************************************************/
`default_nettype none
`timescale 1ns/1ps
module parseGGA_tb;
reg [0:75*8-1]data = {"$GNGGA,092725.00,4717.11399,N,00833.91590,E,1,08,1.01,499.6,M,48.0,M,,*5B",8'd13,8'd10}; //\r\n, \r=13,\n=10
reg rx_done_toUart; //整个模块由rx_done_toUart驱动
reg [7:0] rddat_toUart;
wire rx_done; //接收指令结束,上升沿对齐'\n'字符出现时刻,下降沿对齐$xxGGA后面的','的出现时刻
wire [4:0] hh; //UTC时间,整数,时 0~24
wire [5:0] mm; //UTC时间,整数,分 0~59
wire [5:0] ss; //UTC时间,整数,秒 0~59
wire [6:0] ss2; //UTC时间,小数,秒 2位小数,0~99
wire [6:0] lat; //纬度 整数部分,度 0~90
wire [5:0] lat2; //纬度 整数部分,分 0~59
wire [16:0] lat3; //纬度 小数部分,分 5位小数,0~99999
wire NS; //区分南北纬,北纬标为1,南纬标为0
wire [7:0] lon; //经度 整数部分,度 0~180
wire [5:0] lon2; //经度 整数部分,分 0~59
wire [16:0] lon3; //经度 小数部分,分 5位小数,0~99999
wire EW; //区分东西经,东经标为1,西经标为0
wire [13:0] alt; //海拔 整数部分,m
wire [3:0] alt2; //海拔 小数部分,一位小数 0~9
reg [9:0] i;
initial begin
rx_done_toUart <= 0;
#50;
for(i=0;i<=74*8;i=i+8)begin
rddat_toUart <= {data[i],data[i+1],data[i+2],data[i+3],
data[i+4],data[i+5],data[i+6],data[i+7]};
#5;
rx_done_toUart <= 1;
#50;
rx_done_toUart <=0;
#50;
end
#200;
$stop;
end
//解析xxGGA报文
parseGGA parseGGA_inst(
.rx_done_toUart (rx_done_toUart),
.rddat_toUart (rddat_toUart),
.rx_done (rx_done),
.hh (hh),
.mm (mm),
.ss (ss),
.ss2 (ss2),
.lat (lat),
.lat2 (lat2),
.lat3 (lat3),
.NS (NS),
.lon (lon),
.lon2 (lon2),
.lon3 (lon3),
.EW (EW),
.alt (alt),
.alt2 (alt2)
);
endmodule
//END OF parseGGA_tb.v FILE***************************************************
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_43557686/article/details/123893672 ———————————————— 版权声明:本文为CSDN博主「今朝无言」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_43557686/article/details/123893672