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

五百亿建站模板劳动合同模板免费

五百亿建站模板,劳动合同模板免费,软件界面设计图,网站建设设计师招募一、原理 我们这里设计的是显示 1024 个波形数据点#xff0c; 在绘制每一行的图像的时候#xff0c; 比对每一个数据和 VS 的 Y 坐标是否相等#xff0c; 如果相等就绘制这个波形点。 这样我们就能完成 1024 个波形点在整个屏幕的显示。 二、乒乓操作 可见FPGA实现双口RAM…一、原理 我们这里设计的是显示 1024 个波形数据点 在绘制每一行的图像的时候 比对每一个数据和 VS 的 Y 坐标是否相等 如果相等就绘制这个波形点。 这样我们就能完成 1024 个波形点在整个屏幕的显示。 二、乒乓操作 可见FPGA实现双口RAM的乒乓操作——FPGA学习笔记2_ram乒乓存储-CSDN博客 三、测试程序设计 de屏幕有效的画面显示 de_2画中画波形绘制有效显示区域 timescale 1ns / 1psmodule LCD(input I_sysclk , //系统时钟input I_vid_clk , //HDMIx1时钟input I_vid_rstn , //系统复位输入output O_vid_hs , //hs信号output O_vid_vs , //vs信号output O_vid_de , //视频数据有效信号output [23:0] O_rgb // RGB );wire [7:0] O_wave1_data ; wire [7:0] O_wave2_data ; wire O_vtc2_de ; wire data_en ;//例化VTC模块 VTC# (.H_ActiveSize (1280 ) , //视频时间参数,行视频信号一行有效(需要显示的部分)像素所占的时钟数一个时钟对应一个有效像素设置320个像素.H_FrameSize (12808844239 ) , //视频时间参数,行视频信号一行视频信号总计占用的时钟数 .H_SyncStart (128088 ) , //视频时间参数,行同步开始即多少时钟数后开始产生行同步信号.H_SyncEnd (12808844 ) , //视频时间参数,行同步结束即多少时钟数后停止产生行同步信号之后就是行数据有效数据部分.V_ActiveSize (720 ) , //视频时间参数,场视频信号一帧图像所占用的有效(需要显示的部分)行数量通常说的视频分辨率即H_ActiveSize*V_ActiveSize.V_FrameSize (7204528 ) , //视频时间参数,场视频信号一帧视频信号总计占用的行数量.V_SyncStart (7204 ) , //视频时间参数,场同步开始即多少行数后开始产生场同步信号 .V_SyncEnd (72045 ) , //视频时间参数,场同步结束即多少行数后停止产生场同步信号之后就是场有效数据部分.H2_ActiveSize (1024 ) ,.V2_ActiveSize (256 ) ) u_VTC (.I_vtc_clk (I_vid_clk ) , //系统时钟.I_vtc_rstn (I_vid_rstn ) , //系统复位.O_vtc_vs (O_vid_vs ) , //图像的vs信号.O_vtc_hs (O_vid_hs ) , //图像的hs信号.O_vtc_de (O_vid_de ) , //de数据有效信号.I_vtc2_offset_x(128 ) , //相对屏幕原点x轴偏移方向.I_vtc2_offset_y(200 ) , //相对屏幕原点y轴偏移方向.O_vtc2_de (O_vtc2_de ) // );// wave u_wave (.I_wave1_clk (I_sysclk ) , //波形一时钟.I_wave1_data (O_wave1_data ) , //波形一数据.I_wave1_data_de (data_en ) , //波形一数据有效.I_wave2_clk (I_sysclk ) , //波形二时钟.I_wave2_data (O_wave2_data ) , //波形二数据.I_wave2_data_de (data_en ) , //波形二数据有效 //VTC时序输入 .I_vtc_rstn (I_vid_rstn ) , //.I_vtc_clk (I_vid_clk ) , //.I_vtc_vs (O_vid_vs ) , //.I_vtc_de (O_vtc2_de ) , // de_2//同步时序输出以及像素输出 .O_vtc_vs ( ) , //.O_vtc_de ( ) , //.O_vtc_rgb (O_rgb ) // ); // TPG u_TPG( .I_sysclk (I_sysclk ) ,.I_rst_n (I_vid_rstn ) ,.O_wave1_data (O_wave1_data ) ,.O_wave2_data (O_wave2_data ) ,.data_en (data_en ) );endmoduletimescale 1ns / 1psmodule VTC#( parameter H_ActiveSize 1280 , //视频时间参数,行视频信号一行有效(需要显示的部分)像素所占的时钟数一个时钟对应一个有效像素 parameter H_FrameSize 12808844239 , //视频时间参数,行视频信号一行视频信号总计占用的时钟数 parameter H_SyncStart 128088 , //视频时间参数,行同步开始即多少时钟数后开始产生行同步信号 parameter H_SyncEnd 12808844 , //视频时间参数,行同步结束即多少时钟数后停止产生行同步信号之后就是行有效数据部分parameter V_ActiveSize 720 , //视频时间参数,场视频信号一帧图像所占用的有效(需要显示的部分)行数量通常说的视频分辨率即H_ActiveSize*V_ActiveSize parameter V_FrameSize 7204528 , //视频时间参数,场视频信号一帧视频信号总计占用的行数量 parameter V_SyncStart 7204 , //视频时间参数,场同步开始即多少行数后开始产生场同步信号 parameter V_SyncEnd 72045 , //视频时间参数,场同步结束即多少场数后停止产生场同步信号之后就是场有效数据部分parameter H2_ActiveSize 1024 , //波形显示H区域 parameter V2_ActiveSize 256 //波形显示V区域 ) ( input I_vtc_rstn , //系统复位 input I_vtc_clk , //系统时钟 output reg O_vtc_vs , //场同步输出 output reg O_vtc_hs , //行同步输出 output reg O_vtc_de , //视频数据有效 input [11:0] I_vtc2_offset_x , //相对屏幕原点x轴偏移方向 input [11:0] I_vtc2_offset_y , //相对屏幕原点y轴偏移方向 output reg O_vtc2_de // );reg [11:0] hcnt 12d0 ; //视频水平方向列计数器寄存器 reg [11:0] vcnt 12d0 ; //视频垂直方向行计数器寄存器 reg [2 :0] rst_cnt 3d0 ; //复位计数器寄存器 wire rst_sync rst_cnt[2] ; //同步复位//同步复位 always (posedge I_vtc_clk or negedge I_vtc_rstn ) beginif (!I_vtc_rstn) beginrst_cnt 3d0;end else if(rst_cnt[2] 1b0)beginrst_cnt rst_cnt 1b1 ;end end//视频水平方向列计数器 always (posedge I_vtc_clk) beginif (rst_sync 1b0) beginhcnt 12d0;end else if(hcnt (H_FrameSize - 1b1))beginhcnt hcnt 1b1;endelse beginhcnt 12d0;end end//视频垂直方向行计数器 always (posedge I_vtc_clk) beginif (rst_sync 1b0) beginvcnt 12d0;end else if(hcnt (H_FrameSize - 1b1))beginif (vcnt (V_FrameSize - 1b1)) beginvcnt 12d0;end else beginvcnt vcnt 1b1; endend endwire hs_valid hcnt H_ActiveSize ; //行信号有效像素部分 wire vs_valid vcnt V_ActiveSize ; //场信号有效像素部分 wire vtc_hs (hcnt H_SyncStart hcnt H_SyncEnd) ; //产生hs行同步信号 wire vtc_vs (vcnt V_SyncStart vcnt V_SyncEnd) ; //产生vs场同步信号 wire vtc_de hs_valid vs_valid ; //只有当视频水平方向列有效和视频垂直方向行同时有效视频数据部分才是有效wire hs2_valid (hcnt I_vtc2_offset_x hcnt I_vtc2_offset_x H2_ActiveSize) ; wire vs2_valid (vcnt I_vtc2_offset_y vcnt I_vtc2_offset_y V2_ActiveSize) ; wire vtc2_de hs2_valid vs2_valid ;//完一次寄存打拍输出 有利于改善时序 尤其对于高分辨率 高速的信号 打拍可以改善内部时序 以运行于更高速度 always (posedge I_vtc_clk)beginif(rst_sync 1b0)beginO_vtc_vs 1b0;O_vtc_hs 1b0;O_vtc_de 1b0;O_vtc2_de 1b0;endelse beginO_vtc_vs vtc_vs; //场同步信号打拍输出O_vtc_hs vtc_hs; //行同步信号打拍输出O_vtc_de vtc_de; //视频有效信号打拍输出O_vtc2_de vtc2_de; //画中画 数据有效绘制信号end endendmoduletimescale 1ns / 1ps //测试数据生成 module wave(input I_wave1_clk , //波形一时钟 input [7:0] I_wave1_data , //波形一数据 input I_wave1_data_de , //波形一数据有效input I_wave2_clk , //波形二时钟 input [7:0] I_wave2_data , //波形二数据 input I_wave2_data_de , //波形二数据有效//VTC时序输入 input I_vtc_rstn , // input I_vtc_clk , // input I_vtc_vs , // input I_vtc_de , // de_2//同步时序输出以及像素输出 output O_vtc_vs , // output O_vtc_de , // output reg [23:0] O_vtc_rgb //);reg [1 :0] vtc_vs_r ; reg [1 :0] vtc_de_r ; reg [11:0] vcnt 12d0, hcnt 12d0 ; reg grid_de ;assign O_vtc_vs vtc_vs_r[0] ; assign O_vtc_de vtc_de_r[0] ;//寄存同步 always (posedge I_vtc_clk ) beginvtc_vs_r {vtc_vs_r[0],I_vtc_vs} ;vtc_de_r {vtc_de_r[0],I_vtc_de} ; end//hcnt计数器 always (posedge I_vtc_clk) beginif (hcnt 12d1023) beginhcnt 12d0;end else if(vtc_de_r[0] (hcnt ! 12d1023))beginhcnt hcnt 1b1;end end//vcnt计数器 always (posedge I_vtc_clk ) beginif (vtc_vs_r 2b01) beginvcnt 12d0;end else if((vtc_de_r 2b10) (vcnt ! 12d255))beginvcnt vcnt 1b1;end end//栅格绘制 always (posedge I_vtc_clk ) beginif ((hcnt[2:0]7(vcnt[5:0]63||vcnt 0))||((hcnt[5:0]63||hcnt0)vcnt[2:0]7)||(vcnt 0 hcnt0)) begingrid_de O_vtc_de;end else begingrid_de 1b0; end end//1--绘制波形曲线 1 绿色点 //2--绘制波形曲线 2 黄色点 //3--绘制栅格虚线 白色点 //4--绘制背景色 黑色 always (posedge I_vtc_clk)begincasex({grid_de,wave2_pixel_en,wave1_pixel_en})3bxx1:O_vtc_rgb {8h00,8hff,8h00}; //wave1 信号显示像素颜色3bx10:O_vtc_rgb {8hff,8hff,8h00}; //wave2 信号显示像素颜色3b100:O_vtc_rgb {8h96,8h96,8h96}; //网格显示像素为白色点default:O_vtc_rgb {8h00,8h00,8h00}; //黑色背景endcase endwave_buf u_wave_buf1 (.I_wave_clk (I_wave1_clk ), //写数据输入时钟 和 ADC 采集时钟同步.I_wave_data (I_wave1_data ), //写数据.I_wave_data_de (I_wave1_data_de ), //写数据有效.I_vtc_clk (I_vtc_clk ), //VTC 时序发生器时钟输入.I_vtc_rstn (I_vtc_rstn ), //VTC 时序发生器复位.I_vtc_vs (I_vtc_vs ), //VTC 时序发生器的 VS 同步信号输入.I_vtc_de_r (vtc_de_r[0] ), //VTC 时序发生器的 de 有效区域输入.I_vtc_vcnt (vcnt ), //vtc 的数据偏移 主要对有符号数据进行调整.O_pixel_en (wave1_pixel_en ) //输出输出使能 );wave_buf u_wave_buf2 (.I_wave_clk (I_wave2_clk ), //写数据输入时钟 和 ADC 采集时钟同步.I_wave_data (I_wave2_data ), //写数据.I_wave_data_de (I_wave2_data_de ), //写数据有效.I_vtc_clk (I_vtc_clk ), //VTC 时序发生器时钟输入.I_vtc_rstn (I_vtc_rstn ), //VTC 时序发生器复位.I_vtc_vs (I_vtc_vs ), //VTC 时序发生器的 VS 同步信号输入.I_vtc_de_r (vtc_de_r[0] ), //VTC 时序发生器的 de 有效区域输入.I_vtc_vcnt (vcnt ), //vtc 的数据偏移 主要对有符号数据进行调整.O_pixel_en (wave2_pixel_en ) //输出输出使能 );endmoduletimescale 1ns / 1ps //实现乒乓 module wave_buf (input I_wave_clk , //写数据输入时钟 和 ADC 采集时钟同步input [7 :0] I_wave_data , //写数据input I_wave_data_de , //写数据有效input I_vtc_clk , //VTC 时序发生器时钟输入input I_vtc_rstn , //VTC 时序发生器复位input I_vtc_vs , //VTC 时序发生器的 VS 同步信号输入input I_vtc_de_r , //VTC 时序发生器的 de 有效区域输入input [7 :0] I_vtc_vcnt , //vtc 的数据偏移 主要对有符号数据进行调整output O_pixel_en //输出输出使能 );//BRAM 简单双口 BRAM reg [9 :0] addra 0; //BRAM 通道 A 地址 //reg ena 0; //BRAM 通道 A 使能 reg wea 0 ; //BRAM 通道 A 写使能 reg [9 :0] addrb 0 ; //BRAM 通道 B 地址 reg enb 0 ; //BRAM 通道 B 读使能 reg [0 :0] WR_S,RD_S ; //写状态机 读状态机 reg buf_flag ; //buf_flag 用于乒乓地址缓存切换 reg addr0_en ; //用于设置写第一个数据相对地址 0wire [7 :0] wave_data ; //写波形数据到 BRAM reg [3 :0] async_vtc_vs 0 ; //同步信号//异步信号I_vtc_vs转同步信号 always (posedge I_wave_clk ) beginasync_vtc_vs {async_vtc_vs [2:0] , I_vtc_vs}; end//绘制波形数据点使能 绘制原理: //当匹配到存储的 ADC 数据和正在扫描的 Y 坐标值一致就输出 每个 X 坐标方向绘制 1 个波形点 assign O_pixel_en I_vtc_de_r(I_vtc_vcnt[7:0] wave_data[7:0]);//写RAM状态机 always (posedge I_wave_clk or negedge I_vtc_rstn ) beginif(!I_vtc_rstn)begin //复位重置所有寄存器addra 10d0 ; //写RAM地址addr0_en 1b1 ; //wea 1b0 ; //写信号 0停止 1开始buf_flag 1b0 ; //读写地址控制信号WR_S 1d0 ; // end else begincase (WR_S)0:beginif (I_wave_data_de 1b1) beginif (addra 1023) begin //1024写完wea 1b0 ; //停止写addra 10d0 ;addr0_en 1b1 ;WR_S 1d1 ;end else beginwea 1b1 ; //写使能addr0_en 1b0 ; addra (addr0_en 1b0) ? (addra 1b1) : 0 ; //相对地址递增 endend else beginwea 1b0;endend1:begin //等待VTC时序通同步if(async_vtc_vs[3:2] 2b10) beginWR_S 1d0;buf_flag !buf_flag;endenddefault: WR_S 1d0 ;endcaseend end//读状态机 always (posedge I_vtc_clk or negedge I_vtc_rstn ) beginif (!I_vtc_rstn) beginaddrb 10d0 ;RD_S 1b0 ;end else begincase (RD_S)0:beginif (I_vtc_de_r 1b1) beginif (addrb 1023) beginaddrb 0;RD_S 1d1; end else beginaddrb addrb 1b1;endend end1:beginif (I_vtc_de_r 1b0) beginRD_S 1d0;endenddefault: RD_S 1d0;endcase end endblk_mem_gen_0 u_blk_mem_gen_0 (.clka (I_wave_clk ) , //写时钟.wea (wea ) , // input wire [0 : 0]写使能.addra ({buf_flag,addra} ) , // input wire [10 : 0] 写地址.dina (I_wave_data ) , // input wire [7 : 0] 写数据.clkb (I_vtc_clk ) , // input wire 读时钟.addrb ({!buf_flag,addrb} ) , // input wire [10 : 0] 读地址.doutb (wave_data ) // output wire [7 : 0] 读数据 );endmodule //使用buf_flag控制写入上半部分还是下半部分 timescale 1ns / 1psmodule TPG( input I_sysclk , input I_rst_n , output [7:0] O_wave1_data , output [7:0] O_wave2_data , output data_en );// localparam SYSCLK 100_000_000; localparam t500ms_CNT (50_000_000 - 1b1);reg [25:0] t500ms_cnt 26d0;wire t500ms_en (t500ms_cnt t500ms_CNT) ;always (posedge I_sysclk ) beginif (!I_rst_n) begint500ms_cnt 26d0;end else if(t500ms_cnt t500ms_CNT)begint500ms_cnt 26d0;endelse begint500ms_cnt t500ms_cnt 1b1;end endreg [1:0] WAVE_S ; //写数据状态机 reg [9:0] test_data 10d0 ; //测试数据assign O_wave1_data 8d255 - test_data[7:0]; assign O_wave2_data test_data[7:0];assign data_en (WAVE_S 0 || WAVE_S 1);always (posedge I_sysclk) beginif (!I_rst_n) beginWAVE_S 2d2;test_data 10d0;end else begincase (WAVE_S)0:beginif (test_data 10d255) beginWAVE_S 2d1;endelse begintest_data test_data 1b1;endend1:beginif (test_data 0) beginWAVE_S 2d2;end else begintest_data test_data - 1b1; endend 2:beginif (t500ms_en 1b1) beginWAVE_S 2d0;endelse beginWAVE_S WAVE_S;endenddefault: WAVE_S 2d0;endcaseend endendmodule四、下载验证 五、AD9248驱动的示波器 1、总体框图 2、AD9248芯片简介 3、采集模式 3.1非复合模式 3.2复合模式 3.3数据格式 4、引脚定义 。。。。。。没做出来。。。。。。。。。。。驱动不起来有时间再写学ZYNQ去了
http://www.w-s-a.com/news/340017/

相关文章:

  • 界面设计做的好的网站旅游商城网站模板
  • 大型电子商务网站 服务器硬件 cpu 内存 硬盘 2014美食网站开发意义
  • 建立网站的目的和意义网站建设寻求
  • 邢台手机网站建设设计师培训心得
  • 营销网站怎么做丽水微信网站建设哪家好
  • 南昌定制网站开发多少钱东阿县城市建设局网站
  • 浙江网站建设公司南昌seo招聘
  • 工业软件有哪些专业seo站长工具全面查询网站
  • 山东兴华建设集团有限公司网站和京东一样做电子产品的网站
  • 网站建设谢辞关于h5的网站模板
  • 网站改版提交WordPress360收录
  • 省级网站 开发建设 资质在国外怎么做网站
  • 中商华兴建设有限公司网站我的世界查找建筑网站
  • 广东网站设计公司百度推广免费送网站
  • 高密做网站哪家好网站建设预算
  • 免费wordpress网站模板重庆如何做聚政网站
  • 人才网站app建设建议系统开发生命周期法的优点表现
  • 门户网站想要微信登录怎么做湖南网站seo推广
  • 襄阳 网站建设管理系统网站
  • 重庆工程建设招标投标交易信息网广州外贸seo优化
  • 一个一起做网站东莞设计兼职网站建设
  • 杭州网站程序开发公司在哪个公司建设网站好
  • 网店的网站设计方案济南手机建站价格
  • 网站做了301重定向域名会自动跳转吗唐山地方志网站建设
  • 学校网站建设说明书海南省建设执业资格注册管理中心网站
  • 东莞哪家网站建设好网站风格设定
  • 自驾游网站模板搭建wordpress步骤
  • wordpress视频网站上传视频提升学历是什么意思
  • 江西省城乡建设厅建设网站浙江建设
  • 网站联系我们页面临平做网站