微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > fpga控制ad采集数据把波形和幅值显示在lcd屏幕上

fpga控制ad采集数据把波形和幅值显示在lcd屏幕上

时间:10-02 整理:3721RD 点击:

显示波形的代码如下:已经可以显示波形,求显示幅值大小的代码该怎么加?加在哪里?

`timescale 1ns / 1ps
module lcd_driver(
clk,rst_n,
lcd_clk,lcd_de,lcd_r,lcd_g,lcd_b,
lcd_en,
lcd_rfdb,lcd_rfreq,lcd_rfclr,
lcd_dhq,lcd_djreq,
mcu_ledon,
wave_rden,wave_datbus,
wave_xs,wave_ys,wave_xe,wave_ye,wave_fcor,wave_bcor,wave_disp
);
//系统信号
input clk; //液晶驱动时钟,通常和液晶说明书一致的频率
input rst_n; //低电平复位
//LCD接口
output lcd_clk;
output lcd_de; //display data enable signal
output[4:0] lcd_r; //display red data
output[5:0] lcd_g; //display green data
output[4:0] lcd_b; //display blue data
//LCD背光控制接口
output lcd_en; //backlight enable
//SDRAM数据流接口(显示层)
input[15:0] lcd_rfdb; //输出到LCD模块待显示的SDRAM读出数据
output lcd_rfreq; //LCD模块发出的读FIFO请求信号,高电平有效
output lcd_rfclr; //LCD模块发出的读FIFO复位,低电平有效
//SDRAM数据流接口(叠加层)
input[15:0] lcd_dhq; //输出到LCD模块待显示的叠加层SDRAM读出数据
output lcd_djreq; //LCD模块发出的叠加层读FIFO请求信号,高电平有效
//LCD背光控制
input mcu_ledon; //NIOS2控制背光:1--开背光,0--关背光
//LCD读波形坐标数据接口
output wave_rden; //双口RAM读使能信号
input[7:0] wave_datbus; //读当前波形高度数据
//wave产生控制寄存器
input[9:0] wave_xs,wave_ys; //波形显示起始位置
input[9:0] wave_xe,wave_ye; //波形显示结束位置
input[15:0] wave_fcor,wave_bcor; //波形显示前/背景色
input wave_disp; //波形显示使能信号,高电平有效
//-----------------------------------------------------------
//VGA Timing 800*480 & 33MHz & 60Hz
parameter VGA_HTT = 12'd1056-12'd1; //Hor Total Time
parameter VGA_HST = 12'd0; //Hor Sync  Time
parameter VGA_HBP = 12'd46; //Hor Back Porch
parameter VGA_HVT = 12'd800; //Hor Valid Time
parameter VGA_HFP = 12'd210; //Hor Front Porch
parameter VGA_VTT = 12'd525-12'd1; //Ver Total Time
parameter VGA_VST = 12'd0; //Ver Sync Time
parameter VGA_VBP = 12'd23; //Ver Back Porch
parameter VGA_VVT = 12'd480; //Ver Valid Time
parameter VGA_VFP = 12'd22; //Ver Front Porch
parameter VGA_CORBER = 12'd100; //8等分做Color bar显示
//-----------------------------------------------------------
//x and y counter
reg[11:0] xcnt;
reg[11:0] ycnt;
always @(posedge clk or negedge rst_n)
if(!rst_n) xcnt = VGA_HTT) xcnt = VGA_VTT) ycnt = (VGA_VST+VGA_VBP)) && (ycnt = (VGA_HST+VGA_HBP)) && (xcnt = (VGA_HST+VGA_HBP-4)) && (xcnt = {2'd0,wave_xs}) & (x_dis = {2'd0,wave_xs}+(VGA_HST+VGA_HBP-5)) && (xcnt = {2'd0,wave_ys}) & (y_dis = {2'd0,wave_xs}) & (x_dis = (VGA_VST+VGA_VBP+{2'd0,wave_ys})) && (ycnt = {2'd0,wave_xs}+(VGA_HST+VGA_HBP-2)) && (xcnt wave_datbus) begin
//if((y_dis >= (wave_ye-(wave_datbusr-1'b1))) && (y_dis = (VGA_VST+VGA_VBP)+({2'd0,wave_ye}-(wave_datbusr-1'b1)))
&& (ycnt = (wave_ye-(wave_datbus-1'b1))) && (y_dis = (VGA_VST+VGA_VBP)+({2'd0,wave_ye}-(wave_datbus-1'b1)))
&& (ycnt <= (VGA_VST+VGA_VBP)+({2'd0,wave_ye}-(wave_datbusr-1'b1)))) lcd_dhqr <= wave_fcor; //前景色
else lcd_dhqr <= wave_bcor; //背景色
end
end
end
else lcd_dhqr <= lcd_dhq;
//-----------------------------------------------------------
//显示数据处理输出
reg[15:0] lcd_mudb;
always @(posedge clk or negedge rst_n)
if(!rst_n) lcd_mudb <= 16'd0;
else if(lcd_dhqr == 16'h0000) lcd_mudb <= lcd_rfdb; //若叠加页数据为0x0000时,当前像素点为显示页数据
else lcd_mudb <= lcd_dhqr; //否则为叠加显示页数据
assign lcd_r = vga_valid - lcd_mudb[15:11]:5'd0;
assign lcd_g = vga_valid - lcd_mudb[10:5]:6'd0;
assign lcd_b = vga_valid - lcd_mudb[4:0]:5'd0;
//-----------------------------------------------------------
//液晶背光和时钟控制逻辑
assign lcd_en = mcu_ledon;
assign lcd_clk = ~clk;
endmodule

                                 

你懂这个不?急求啊

表示新手一枚,来围观的  

好吧。只能另找他人了。

请问从事FPGA,前景和工薪如何呢?

fpga 很有前景的 ,工资也不错 西安好点的能上8k 这只是研究生毕业去的第一年。

研究生?本科生是不是不好找工作啊

学到真本事,本科生很好找工作的

不是来解决问题的吗?怎么聊那个了啊主题完全变了 啊

爱莫能助。。我也在学习这方面,现在能力有限。

最近正好遇到类似的问题,卡了好几天,一咬牙,不做了!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top