EDA技术课程设计数码相框

上传人:仙*** 文档编号:27876956 上传时间:2021-08-21 格式:DOC 页数:27 大小:2.30MB
返回 下载 相关 举报
EDA技术课程设计数码相框_第1页
第1页 / 共27页
EDA技术课程设计数码相框_第2页
第2页 / 共27页
EDA技术课程设计数码相框_第3页
第3页 / 共27页
点击查看更多>>
资源描述
第 1 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书 目 录 1 前言 .1 1.1 序言 .1 1.2 设计背景 .1 1.3 设计特色 .2 2 总体方案设计 .3 2.1 方案设计以及论证 .3 2.1.2 方案一 单片机解决方案 .3 2.1.2 方案二 ARM9 核心方案 .3 2.1.3 方案三:以 FPGA 等硬件为基础实现 .4 2.3 方案选择 .4 3.单元模块电路设计 .5 3.1 各单元模块功能介绍及电路设计 .5 3.1.1 系统 SD 卡模块 .5 3.1.2 SDRAM 控制模块 .8 3.1.3 FIFO 模块 .9 3.1.4 VGA 显示驱动模块 .13 3.1.5 PLL 模块 .15 3.2 特殊器件介绍 .16 3.2.1 SDRAM 存储器扩展芯片 .16 3.2.2 FPGA 主控芯片 .17 4 软件设计 .18 4.1 设计原理及 QUARTUS II 介绍 .18 4.1.1 设计原理 .18 4.1.2 Quartus II 介绍 .18 4.1.3 结构设计图 .18 4.2 设计流程框图 .20 5 系统调试与仿真 .21 5.1 SD 卡模块的仿真 .21 6 系统功能、指标参数 .22 6.1 系统功能 .22 6.2 系统指标参数测试 .22 6.2.1 性能参数 .22 6.2.2 图片参数 .22 7 设计总结 .23 8 参考文献 .24 第 2 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书 9 附录:原理图 25 1 前言 1.1 序言 数码相框是展示数码照片而非纸质照片的相框。数码摄影必然推动数码相框的 发展,因为全世界打印的数码相片不到 35%。数码相框通常直接插上相机的存储卡展 示照片,当然更多的数码相框会提供内部存储空间以接外接存储卡功能。数码相框 就是一个相框,不过它不再用放进相片的方式来展示,而是通过一个液晶的屏幕显 示,它可以通过读卡器的接口从 SD 卡获取相片,并设置循环显示的方式,比普通的 相框更灵活多变,也给现在日益使用的数码相片一个新的展示空间。数码相框是观 看和分享数码照片的专用设备。其基本原理:外观采用普通相框的造型,把原来相 框中间的照片部分换成液晶显示屏,配上电源,存储介质等,可以直接播放数码照 片,使得同一个相框内可以循环播放照片,比普通相框的单一功能更有优势。数码 相框由三大部件组成:LCD 液晶屏、PCB 电路板和外框。其中 PCB 电路板是数码相框 的核心,因为它包含必须的软件。数码相框是时尚的电子消费品、也是家庭必备的 装饰品。继承了数码的时尚和相框的温情,用途十分广泛。 该设计既是时尚的消费电子,也可以是家庭必备的装饰品,可以作为纪念品, 礼品、车载、数码摄影器材、随身个性饰品等。也可当作精美的艺术画框和相框, 可摆放在柜台桌面,也可挂墙当作壁画,同时也可作为动态及静态广告机。适用于 所有的大众,随着普遍性,一定会出现越来越多有意思的创意应用,为我们的平淡 的生活带来无穷的乐趣。 1.2 设计背景 随着社会的发展和物质水平的提高,人们对于精神世界的追求也得到大幅度的改 善。迎合现在市场的所需,消费电子的设计新增了人性化的元素。该设计理念源于提 高人们生活的幸福指数。在传统意义上,人们往往用冲印出来的相片记录生活中美好 的瞬间。而伴着电子行业的发展,足以用数码形式将其取代,同时还可以将静态图片 提升为动态的视频短片,携带方便,存储时间长远,满足于人们的需求,同时也是一 种节约型、环保型的构想。 FPGA 是 ASIC 电路中设计周期最短、开发费用最低、风险最小的器件之一。DE2 平台。内含 35000 个逻辑单元,内部功能模块丰富,为实现 SOPC 提供了强大的支持 和保障。同时,SD 卡接口,USB 主从控制器,SDRAM、FLASH 存储扩展芯片,为该创 意设计提供了很好支持,便于很好的开发。 第 3 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书 TFT(Thin Film Transistor)薄膜晶体管,它可以做到高亮度、高对比度、高 速度、高分辨率显示存储信息,是目前最好的 LCD 彩色显示设备之一,逐渐取代传统 的点阵显示器,成为主流显示设备。TFT 寻址的 LCD 显示器以其大容量、高清晰度和 全彩色的视频显示成为液晶乃至整个平板显示的主导技术。 作为现在市场成熟的移动存储接口,无疑想到了 USB 和 SD 卡。USB 接口具有很 快的传输速度,支持热插拔以及连接多个设备的特点,目前已经在各类外部设备中广 泛的被采用;SD 卡是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于 便携式装置上使用,传输速度快,大容量存储,携带方便,兼容性强,使用广泛。 1.3 设计特色 本设计充分利用 EDA 技术,采用 Altera 的 Quartus 全新开发概念,具有以下几 个方面的特点: 1、成本低廉,携带方便,供电方式简单,可以做到量产。 2、软硬件协同设计,减少开发周期,系统规模小,功能齐全。DE2 平台提供了 SDRAM、SRAM、FLASH、SD 卡接口,具有丰富的存储介质,很好的做到功能模块化, 流水线操作,保障系统的运行速度。 3、这款 Altera FPGA 逻辑资源丰富,配置器件齐全,开发范围广泛,热插拔式 的存储介质深入赢得市场。高速的运行速度和强大的数据处理能力保障了系统的正常 工作和稳定性。 4、整体设计来讲,打破了原有的照片冲印显示图片的模式,节约资源,并且环 保。具有很好的市场前景,同时外观时尚精美。 5、从扩展方面来讲,还可以做到播放 MP3、MP4、幻灯图片,阅读电子书、设置 闹钟备忘录等功能。 第 4 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书 2 总体方案设计 2.1 方案设计以及论证 2.1.2 方案一 单片机解决方案 以单芯片的解决方案,以 ESS/AMLOGIC/MPX 等芯片设计为代表,PHILIP/SONY 等 品牌厂商也以该方式为主。该方案的架构如图 2-1-1 所示: 主芯片系统 相片输出 外围设备 存储卡 图 2-1-1 单芯片方案图 该方案的结构简单,成本低,芯片功能强大,多媒体的编解码速度快。但是可扩 展的余地不足对读卡部分,某些方案使用硬件实现,不能支持新类型的卡应客户要求 的二次开发不方便。 2.1.2 方案二 ARM9 核心方案 以 ARM9 等强大的 CPU 为核心,以 WINCELinux 等操作系统为软件核心架构系统, 如图 2-1-2 所示: 存储卡 ARM 系统 相片输出 外围设备 图 2-1-2 ARM 系统方案 此方案以 ARM 如 S3C2410、Intel Xscale 等强大的嵌入式 CPU 为架构,速度在 200M-300MHZ。嵌入 WINCE、Linux 等操作系统,实现多媒体的编解码。系统芯片功能 强大,实现的功能多,对于新的多媒体格式支持好,只需要安装更新的软件,硬件电 路简单,二次开发容易实现。但是该方案成本较大,该类强大的 CPU 一般使用在 PDA 等嵌入式领域;比较耗电,功耗较高,使用软件解码,功耗与频率相关性很大。 第 5 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书 2.1.3 方案三:以 FPGA 等硬件为基础实现 这种方案,是以 FPGA 硬件来实现,这种解决方式的结构如图 2-1-3 所示: 系统时钟与复位 SDRAM 控制器模块 LCD 显示驱动模块 写 SDRAM 缓存 FIFO 模块 BMP 色彩表模块 读 SDRAM 缓存 FIFO 模块SPI 时序产生 SD 卡控制模块 图 2-1-3 FPGA 硬件方案 该方案全部采用 FPGA 硬件完成,其中包括 SD 卡模块,SDRAM 控制模块,FIFO 控 制模块,LCD 驱动模块。SD 卡作为外部存储媒介,该模块完成 SD 卡的初始化、命令 发送、数据读取等。从 SD 卡中读取的 BPM 图片色彩表数据缓存到 BMP 色彩表中,读 出的图片数据被送入写 SDRAM 缓存的 FIFO 模块中,通过 SDRAM 模块完成高速的缓冲, 提高显示的刷频率。TFT LCD 显示器实时的从 SDRAM 中读取数据进行图片循环显示。 2.3 方案选择 综合考虑以上方案,我们选择了方案三。该方案成本低廉,携带方便,供电方式 简单可以做到量产。该方案的所有功能全部使用 FPGA 来实现,系统规模小,FPGA 流 水线操作,很好的保障系统运行所需要的频率。FPGA 逻辑资源丰富,配置器件齐全, 开发范围广泛,热插拔式的存储介质深入赢得市场。高速的运行速度和强大的数据处 理能力保障了系统的正常工作和稳定性。 第 6 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书 3.单元模块电路设计 本节主要介绍系统各单元模块的具体功能、电路结构、工作原理、以及各个单元 模块之间的联接关系;同时本节也会对相关电路中的参数计算、元器件选择、以及核 心器件进行必要说明。 3.1 各单元模块功能介绍及电路设计 本系统主要分为 5 个单元模块,它们分别是:系统时钟与复位模块、SD 卡相关 模块、数据流控制模块、SDRAM 控制器模块以及 VGA 显示驱动模块。各单元模块 功能及相关电路的具体说明如下。 3.1.1 系统 SD 卡模块 其中包含两个子模块:SD 卡控制模块完成 SD 卡的一些基本控制,例如上电初 始化,命令发送,数据读取;SPI 时序产生模块主要控制 FPGA 和 SD 卡之间的数据 和命令的传输。SD 卡通信可以是 SD 模式或者 SPI 模式,该工程使用了 SD 卡的 SPI 模式进行通信。SD 卡在总线模式中唤醒,在接受复位命令时如果 CS 信号有效,那 么将进入 SPI 模式。如果 SD 卡人物 SD 总线模式是必须的,那么它不会对命令做出 响应并继续保持 SD 总线模式。如果需要 SPI 模式, SD 卡将切换到 SPI 模式并发出 SPI 模式下的 R1 响应。 返回 SD 总线模式唯一的方法是重新给 SD 卡上电。在 SPI 模式下,SD 卡协议状态 不被检测。所有在 SD 总线模式下支持的命令在 SPI 模式下也是可用的。SPI 模式下 默认的命令结构/协议检测关闭。随着 SD 卡在 SD 总线模式下上电,CMD0 必须紧跟着 第 7 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书 一个有效的 CRC 字节。一旦在 SPI 模式下,默认将关闭。 Verilog 部分代码: always (posedge clk or negedge rst_n) if(!rst_n) cnt8 = 5d0; else if(spi_tx_en | spi_rx_en) begin if(cnt8 5d18)cnt8 = cnt8+1b1; /SPI 工作使能 else ; /计数到 18 停止,等待撤销 spi 使能 end else cnt8 = 5d0; /SPI 关闭,计数停止 /SPI 时钟信号产生 reg spi_clkr; /SPI 时钟信号,由主机产生 always (posedge clk or negedge rst_n) if(!rst_n) spi_clkr 5d1 /在 cnt8 处于 2-17 时 SPI 时钟有效翻转 assign spi_clk = spi_clkr; /SPI 主机输出数据控制 reg spi_mosir; /SPI 主机输出从机输入数据信号 always (posedge clk or negedge rst_n) if(!rst_n) spi_mosir = 1b1; else if(spi_tx_en) begin case(cnt84:1) /主机发送 8bit 数据 4d1: spi_mosir = spi_tx_db7; /发送 bit7 4d2: spi_mosir = spi_tx_db6; /发送 bit6 4d3: spi_mosir = spi_tx_db5; /发送 bit5 4d4: spi_mosir = spi_tx_db4; /发送 bit4 4d5: spi_mosir = spi_tx_db3; /发送 bit3 4d6: spi_mosir = spi_tx_db2; /发送 bit2 4d7: spi_mosir = spi_tx_db1; /发送 bit1 4d8: spi_mosir = spi_tx_db0; /发送 bit0 default: spi_mosir = 1b1; /spi_mosi 没有输出时应保持高电平 endcase end else spi_mosir = 1b1; /spi_mosi 没有输出时应保持高电平 第 8 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书 assign spi_mosi = spi_mosir; /- /SPI 主机输入数据控制 reg7:0 spi_rx_dbr; /SPI 主机输入从机输出数据总线寄存器 always (posedge clk or negedge rst_n) if(!rst_n) spi_rx_dbr = 8hff; else if(spi_rx_en) begin case(cnt8) /主机接收并锁存 8bit 数据 5d3: spi_rx_dbr7 = spi_miso; /接收 bit7 5d5: spi_rx_dbr6 = spi_miso; /接收 bit6 5d7: spi_rx_dbr5 = spi_miso; /接收 bit5 5d9: spi_rx_dbr4 = spi_miso; /接收 bit4 5d11: spi_rx_dbr3 = spi_miso; /接收 bit3 5d13: spi_rx_dbr2 = spi_miso; /接收 bit2 5d15: spi_rx_dbr1 = spi_miso; /接收 bit1 5d17: spi_rx_dbr0 = spi_miso; /接收 bit0 default: ; endcase end assign spi_rx_db = spi_rx_dbr; assign spi_tx_rdy = (cnt8 = 5d18); /SPI 数据发送完成标志位,高有效 assign spi_rx_rdy = (cnt8 = 5d18); /SPI 数据接收完成标志位,高有效 第 9 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书 3.1.2 SDRAM 控制模块 对控制器内部的逻辑功能做细分,将其划分为多个字模块来实现。SDRAM- CTRL 是 SDRAM 状态控制模块,该模块主要完成 SDRAM 的上电初始化以及定时刷 新、读/写控制等状态的变迁。它的内部设计了 2 个状态机,一个拥有上电初始化的 状态控制,另一个则用于正常工作时的状态控制。SDRAM-CMD 是 SDRAM 命令模 块,该模块根据 SDRAM-CTRL 模块的不同状态指示输出相应的 SDRAM 控制命令和 地址。SDRAM-WR-DATA 是 SDRAM 数据读/写模块,该模块同意是根据 SDRAM- CTRL 模块的状态指示完成 SDRAM 数据总线的控制 SDRAM 的数据读/ 写都在该模 块内完成。 Verilog 部分代码 /将待写入数据送到 SDRAM 数据总线上 always (posedge clk or negedge rst_n) if(!rst_n) sdr_din = 16d0; /突发数据写寄存器复位 else if(work_state = W_WRITE) | (work_state = W_WD) sdr_din = sys_data_in; /连续写入存储在 wrFIFO 中的 256 个 16bit 数据 /产生双向数据线方向控制逻辑 always (posedge clk or negedge rst_n) if(!rst_n) sdr_dlink = 1b0; else if(work_state = W_WRITE) | (work_state = W_WD) sdr_dlink = 1b1; else sdr_dlink = 1b0; assign sdram_data = sdr_dlink ? sdr_din:16hzzzz; /数据读出控制 reg15:0 sdr_dout; /突发数据读寄存器 第 10 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书 /将数据从 SDRAM 读出 always (posedge clk or negedge rst_n) if(!rst_n) sdr_dout 9d0) /连续读出 8B 的 16bit 数据存储到 rdFIFO 中 assign sys_data_out = sdr_dout; 3.1.3 FIFO 模块 图片数据部分送入写 SDRAM 缓存的 FIFO 模块,完成高速数据的缓冲。在读 FIFO 的数据。 在本图像处理器中采用了两个异步 FIFO,在视频的前向通道和后向通道之间分 别加人了两个异步 FIFO。前向通道的 FIFO 主要对经 A/D 变换的数据缓冲,后向通 道的 FIFO 主要对 D/A 变换的数据缓冲异步 FIFO 的实现通常是利用双口 RAM 和读 写地址产生模块来实现的。FIFO 的接口信号包括异步的写时钟(WR_ CLK)和读时钟 (RD_ CLK)、与写时钟同步的写有效(WREN) 和写数据(WR_ DATA)、与读时钟同步 的读有效 RDEN 和读数据(RD_ DATA)o 为了实现正确的读写和避免 FIFO 的上溢或 下溢,通常还应该给出与读时钟和写时钟同步的 FIF0 的空标志(EMPTY) 和满标志 (FULL)以禁止读写操作 图像处理器中的 FIFO 为双向异步 FIFO,深度为 6K,宽度为 8bits BPM 图片表数据缓存到 bpm 色彩表模块中 Verilog 部分源代码 always (posedge clk_100m or negedge rst_n) if(!rst_n) vga_validr = 1b0; else vga_validr = 9d256); /FIFO(256 个 16bit 数据)即发出写 SDRAM 请求信号 assign sdram_rd_req = (rdf_use 9d480) /VGA 显示有效且 FIFO 半空 (256 个 16bit 数据)即发出读 SDRAM 请求信号 /sdram 读写响应完成标致捕获 reg sdwrackr1,sdwrackr2;/sdram_wr_ack 寄存器 reg sdrdackr1,sdrdackr2; /sdram_rd_ack 寄存器 /锁存两拍 sdram_wr_ack,用于下降沿捕获 always (posedge clk_100m or negedge rst_n) if(!rst_n) begin sdwrackr1 = 1b0; sdwrackr2 = 1b0; end else begin sdwrackr1 = sdram_wr_ack; sdwrackr2 = sdwrackr1; end wire neg_sdwrack = sdwrackr1 /下降沿标志位,高有效一个时钟周期 always (posedge clk_100m or negedge rst_n) /锁存两拍 sdram_rd_ack 用于下降沿捕获 if(!rst_n) begin sdrdackr1 = 1b0; sdrdackr2 = 1b0; end else begin sdrdackr1 = sdram_rd_ack; sdrdackr2 = sdrdackr1; end wire neg_sdrdack = sdrdackr1 /下降沿标志位,高有效一个时钟周期 /sdram 读写地址产生逻辑 reg13:0 sys_wrabr; /sdram 写地址寄存器,对应 sdram_addr21:8 reg16:0 sys_rdabr; /sdram 读地址寄存器,对应 sdram_addr21:5 /sdram 写地址产生 always (posedge clk_100m or negedge rst_n) if(!rst_n) sys_wrabr = 14d0; else if(sdwrad_clr) sys_wrabr = 14d0; /写入地址复位,重新写入新图片数据 第 12 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书 else if(neg_sdwrack) sys_wrabr = sys_wrabr+1b1;/一次写入完成后地址递增 8 reg4:0 cnt25; /0-99 计数器 always (posedge clk_100m or negedge rst_n) if(!rst_n) cnt25 = 5d0; else if(!vga_validr) cnt25 = 5d0; else if(neg_sdrdack) begin if(cnt25 5d24) cnt25 = cnt25+1b1; else cnt25 = 5d0; end /sdram 读地址产生 always (posedge clk_100m or negedge rst_n) if(!rst_n) sys_rdabr = 17d0; else if(!vga_validr) sys_rdabr = 17d14975; /从末-800 地址读数据 else if(neg_sdrdack) begin if(cnt25 = 5d24) sys_rdabr = sys_rdabr-17d49; else sys_rdabr = sys_rdabr+1b1; /一次读出完成后地址递增 end assign sys_wraddr = sys_wrabr,8h00; assign sys_rdaddr = sys_rdabr,5d0; /sd 卡读出数据写入 SDRAM_wrfifo 或者 vgaram reg10:0 cnt78; /计数到 1078 /cnt78 计数 0-53(SD 数据不缓存)和 54-1077(SD 数据表译码) ,1078 计数停 止(SD 数据写入 SDRAM) always (posedge clk_50m or negedge rst_n) if(!rst_n) cnt78 = 11d0; else if(sdwrad_clr) cnt78 = 11d0; /重新下一幅图片 else if(cnt78 11d1078) /SD 接收数据写 入 VGA 色彩表 RAM wire bmpsd_wren = (cnt78 = 11d1078) /SD 接收数据存储到 SDRAM /例化 SDRAM 写入数据缓存 FIFO 模块 例化 SDRAM 读出数据缓存 FIFO 模块 wire15:0 rdf_dout; /sdram 数据读出缓存 FIFO 输出数据总线 /例化 256 字节 RAM 存放 BMP 图片的色彩表译码数据 reg7:0 rr_din; /RAM 输入数据 第 13 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书 wire7:0 rr_dout; /RAM 输出数据 wire7:0 rr_addr; /RAM 读写地址 /BMP 色彩表数据译码以及写使能信号产生 reg1:0 cnt4; /四字节数据寄存器 always (posedge clk_50m or negedge rst_n) if(!rst_n) cnt4 = 2d0; else if(sdwrad_clr) cnt4 = 2d0; /重新下一幅图片 else if(bmpvt_wren) cnt4 = cnt4+1b1; /4 字节色彩表译码,BMP /*色彩表用 4 个字节表示一个色彩,这里我们只取其中有用的数据拼凑成 1 个字节保 存即可。*/ always (posedge clk_50m or negedge rst_n) if(!rst_n) rr_din = 8d0; else if(bmpvt_wren) begin case(cnt4) 2d0: rr_din7:6 = wrf_din7:6; /2blue-2blue 2d1: rr_din5:3 = wrf_din7:5; /3green-3green 2d2: rr_din2:0 = wrf_din7:5; /3red-3red default: ; endcase end wire rr_wr = bmpvt_wren /vgaRAM 写使能信号 /BMP 色彩表读写地址产生 reg7:0 rr_wraddr; /vgaRAM 写入地址产生 always (posedge clk_50m or negedge rst_n) if(!rst_n) rr_wraddr = 8d0; else if(sdwrad_clr) rr_wraddr = 8d0; /重新下一幅图片 else if(rr_wr) rr_wraddr = rr_wraddr+1b1; assign rr_addr = (cnt78 11d1078) ? rr_wraddr : rdf_dout7:0; assign dis_data = rr_dout; /译码后的显示数据 第 14 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书 3.1.4 VGA 显示驱动模块 CPLD/FPGA 实现 VGA 彩色显示控制器在工业现场中有许多应用。以硬件描述 语言 VHDL 对可编程器件进行功能模块设计、仿真综合,可实现 VGA 显示并实现了 动画效果。VGA 作为一种标准的显示接口得到了广泛的应用。VGA 在任何时刻都必 须工作在某一显示模式之下,其显示模式分为字符显示模式和图形显示模式。而在应 用中,讨论的都是图形显示模式。 VGA 的图形模式分为三类:CGA、EGA 兼容的图形模式 ;标准的 VGA 图形模式; VGA 扩展图形模式。后两种图形模式统称为 VGA 图形模式。文中基于标准 VGA 模 式来实现。工业标准的 VGA 显示模式为:640*480*16 色*60hz。 常见的彩色显示器一般都是由 CRT(阴极射线管)构成,每一个像素的色彩由 R(红, Red)、G(绿,Green) 、B( 蓝,Blue)三基色构成。显示时采用的是逐行扫描的方式。由 VGA 显示模块产生的水平同步信号和垂直同步信号控制阴极射线管中的电子枪产生 电子束,轰击涂有荧光粉的屏幕,产生 RGB 三基色,于显示屏上合成一个彩色像素 点。图 3 表示的是 VGA 显示模块与 CRT 显示器的控制框图。电子束扫描一幅屏幕图 像上的各个点的过程称为屏幕扫描。现在显示器都是通过光栅扫描方式来进行屏幕扫 描。在光栅扫描方式下,电子束按照固定的路径扫过整个屏幕,在扫描过程中通过电 子束的通断强弱来控制电子束所经过的每个点是否显示或显示的颜色。电子枪在 VGA 显示模块产生的行同步、场同步等控制信号的作用下进行包括水平扫描、水平 回扫、垂直扫描、垂直回扫等过程。光栅扫描的路径通常为:从上到下扫过每一行, 在每一行中从左到右地进行扫描。其过程如下:电子束从屏幕左上角开始向右扫,当 到达屏幕的右边缘时,电子束关闭(水平消隐),并快速返回屏幕左边缘(水平回扫), 然后在下一条扫描线上开始新的一次水平扫描。一旦所有的水平扫描均告完成,电子 束在屏幕的右下角结束并关闭(垂直消隐),然后迅速返回到屏幕的左上角(垂直回扫), 开始下一次光栅扫描。 第 15 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书 Verilog 部分源代码 always (posedge clk or negedge rst_n) if(!rst_n) x_cnt = 11d0; else if(!disp_ctrl) x_cnt = 11d0; /关显示 else if(x_cnt = 11d1039) x_cnt = 11d0; else x_cnt = x_cnt+1b1; /x 坐标计数 always (posedge clk or negedge rst_n) if(!rst_n) y_cnt = 10d0; else if(!disp_ctrl) y_cnt = 10d0; /关显示 else if(y_cnt = 10d665) y_cnt = 10d0; else if(x_cnt = 11d1039) y_cnt = y_cnt+1b1; /y 坐标计数 /有效显示标志位产生 reg valid_yr;/行显示有效信号 reg valid_r; always (posedge clk or negedge rst_n) if(!rst_n) valid_yr = 1b0; else if(y_cnt = 10d31) valid_yr = 1b1; /行有效显示区 else if(y_cnt = 10d631) valid_yr = 1b0; wire valid; /有效显示区标志 always (posedge clk or negedge rst_n) if(!rst_n) valid_r = 1b0; else if(x_cnt = 11d187) valid_r = 1b1; /列有效显示区 else if(x_cnt = 11d987) valid_r = 1b0; assign valid = valid_r / VGA 有效显示区标志位 / VGA 场同步,行同步信号 reg hsync_r,vsync_r; /同步信号 always (posedge clk or negedge rst_n) if(!rst_n) hsync_r = 1b1; else if(x_cnt = 11d0) hsync_r = 1b0; /产生 hsync 信号 else if(x_cnt = 11d120) hsync_r = 1b1; always (posedge clk or negedge rst_n) if(!rst_n) vsync_r = 1b1; else if(y_cnt = 10d0) vsync_r = 1b0; /产生 vsync 信号 else if(y_cnt = 10d6) vsync_r = 11d183) / VGA 色彩信号产生 reg7:0 vga_rgb; / VGA 色彩显示寄存器 always (posedge clk) if(!valid) vga_rgb = 8d0; else vga_rgb = dis_data; /r,g,b 控制液晶屏颜色显示 assign vga_r = vga_rgb2:0; assign vga_g = vga_rgb5:3; assign vga_b = vga_rgb7:6; 3.1.5 PLL 模块 PLL,即锁相环。简单的理解,给 PLL 一个时钟输入,然后经过 PLL 内部的处 理以后,在 PLL 的输出端口就可以得到一定范围的时钟频率。 PLL 之所以应用广泛, 是因为从其输出得到的时钟不仅从频率和相位上比较稳定,而且时钟网络延时也相比 内部逻辑产生的分频时钟要小得多。输出两个时钟 内部 SDRAM 控制器工作的 100MHZ,外部 SDRAM 使用有一定移相(-72)的 100MHZ 时钟频率。 第 17 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书 3.2 特殊器件介绍 3.2.1 SDRAM 存储器扩展芯片 S_A0123456789DBCLKnERWQMU+VGNIHY 图 3-2-1 SDRAM 连接图 该同步动态随机存储器(SDRAM)选用的芯片型号为 HY57V641602,4Banks x 1Mbits x16。其上电初始化的步骤一般为:等待 200 微秒,这是 SDRAM 的输入稳定 期;所有 L_BANK 预充电;完成至少 8 个预刷新周期;模式寄存器设置(MSR) ,完 成 SDRAM 读写相关的配置。状态图如 3-2-2. 图 3-2-2 SDRAM 初始状态图 第 18 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书 3.2.2 FPGA 主控芯片 目前的主流 FPGA 仍是基于查找表技术的,已经远远超出了先前版本的基本性能, 并且整合了常用功能(如 RAM、时钟管理和 DSP)的硬核(ASIC 型)模块。如图 1-1 所示(注:图 1-1 只是一个示意图,实际上每一个系列的 FPGA 都有其相应的内 部结构) ,FPGA 芯片主 要由 7 部分完成,分别为:可编程输入输出单元、基本可编 程逻辑单元、完整的时钟管理、嵌入块式 RAM、丰富的布线资源、内嵌的底层功能 单元和内嵌专用硬件模块。选用芯片如图 3-2-2。 A123456INT0XDRWBCEFGPL_OKS8Uit9/peakr 图 3-2-2 FPGA 芯片 该款芯片是 ALTERA 公司 Cyclone 典型器件之一,起主要含有逻辑单元(LE) 4608 个,M4KRAM 块(4KB)26 个,总 RAM 119808 bits,嵌入式 18*18 乘法器 13 个, 还有两个锁相环(PLL).所含有资源充分满足该系统设计。 第 19 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书 4 软件设计 4.1 设计原理及 Quartus II 介绍 4.1.1 设计原理 本数字频率计核心部分由 EDA 软件 Quartus II 进行设计,综合,仿真,下载。 具体步骤如下: 1)用 Verilog HDL 设计出各个部分模块,并对各个模块进行仿真测试。 2)将 Verilog 语言程序综合生成功能模块图,根据要求连接好各个模块,并进 行综合和总体仿真。 3)根据需求选择相应的芯片,对其进行引脚分配,以便于将 Verilog 实现的数字 频率计下载到相应的芯片上。 4.1.2 Quartus II 介绍 1.Quartus II 是 Altera 公司推出的 CPLD/FPGA 开发工具,Quartus II 提供了完 全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括: 1)可利用原理图、结构框图、VerilogHDL、AHDL 和 VHDL 完成电路描述,并将 其保存为设计实体文件; 2) 芯片(电路)平面布局连线编辑; 3) LogicLock 增量设计方法,用户可建立并优化系统,然后添加对原始系统的 性能影响较小或无影响的后续模块; 功能强大的逻辑综合工具; 4) 完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分 析;可使用 SignalTap II 逻辑分析工具进行嵌入式的逻辑分析; 5) 支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合 编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具; 6) 可读入标准的 EDIF 网表文件、VHDL 网表文件和 Verilog 网表文件;能生成 第三方 EDA 软件使用的 VHDL 网表文件和 Verilog 网表文件。 第 20 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书 4.1.3 结构设计图 图 4-1-1 数码相框 Quartus 设计结构图 第 21 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书 4.2 设计流程框图 Quartus II 9.0 原理图设计:主要完成数码相框核心系统的原理图设计、编译、 仿真测试、文件下载。 各子模块 Verilog 设计 各子模块 编译 仿真 模块连接 形成系统原理图 工程整体 编译仿真测试 配置芯片引脚 下载 图 4-2-1 Quartus II 9.0 设计流程图结构图 Protel 99SE 电路原理图设计:完成整个数码相框的 FPGA 最小系统及外围电路 的原理图设计。 S_DB0.15ACLKnERWUQMTOINFGP28cho下wer 图 422 数码相框系统 Protel99SE 设计 第 22 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书 5 系统调试与仿真 5.1 SD 卡模块的仿真 该仿真应用了可编程逻辑器件开发工具 Quartus II 中 SingalTap II 嵌入式逻 辑分析器。SignalTap II 嵌入逻辑分析仪集成到 Quartus II 设计软件中,能够捕获 和显示可编程单芯片系统(SOPC)设计中实时信号的状态,这样开发者就可以在整个 设计过程中以系统级的速度观察硬件和软件的交互作用。它支持多达 1024 个通道, 采样深度高达 128Kb,每个分析仪均有 10 级触发输入/输出,从而增加了采样的精度。 SignalTap II 为设计者提供了业界领先的 SOPC 设计的实时可视性,能够大大减少验 证过程中所花费的时间。SignalTap II 将逻辑分析模块嵌入到 FPGA 中,如图 1 所示。 逻辑分析模块对待测节点的数据进行捕获,数据通过 JTAG 接口从 FPGA 传送到 Quartus II 软件中显示 SD 卡模块的仿真波形如图 5-1-1. 图 5-1-1 SD 卡模块的仿真波形 第 23 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书 6 系统功能、指标参数 6.1 系统功能 1、使用 FPGA 系统的 ISP1362 及接口完成 USB 数据的读取;SD 卡接口完成 SD 卡 数据的读取;自动判断哪一个接口处有硬件连接请求。 2、使用 FPGA 平台,讲存储在 SDRAM 内部的图片或者视频数据,显示回放在 TFT. 3、对于不同大小的图片,系统可以根据输出屏幕的大小自动调节图片大小并改 善图像质量。 4、通过按键选择播放的方式。支持一张图片长久显示,支持多张图片循环显示。 6.2 系统指标参数测试 6.2.1 性能参数 系统工程在 QuartusII9.0 中编译后各种资源的占用情况,如图 6-2-1. 图 6-2-1 资源利用情况 6.2.2 图片参数 1、输出图像分辨率:640*480 800*480 2、输出图像格式:RGB 格式 第 24 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书 3、SDRAM 刷新频率:大于等于 100MHZ 7 设计总结 通过此次课程设计,使我更加扎实的掌握了有关 EDA 技术方面的知识,在设计过 程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了 原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲 自动手制作,使我们掌握的知识不再是纸上谈兵。在课程设计过程中,我们不断发现 错误,不断改正,不断领悟,不断获取。最终这次课程设计终于顺利完成了。在设计 中遇到了很多问题,最后在老师的指导下和同学的合作下,终于游逆而解。在今后社 会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要 不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事。 课程设计是一门专业课,给我很多专业知识以及专业技能上的提升,同时,设计让我 感触很深。使我对抽象的理论有了具体的认识。通过这次课程设计,我掌握了常用元 件的识别和测试;熟悉了常用仪器、仪表;了解了电路的连线方法;以及如何提高电 路的性能等等,通过查询资料,也了解了数码相框的构造及原理。我认为,在这次设 计的过程中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提 高。更重要的是,在实验课上,我们学会了很多学习的方法,而这是日后最实用的。 回顾起此课程设计,至今我仍感慨颇多,从理论到实践,学到很多很多的东西,同时 不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有把所学的理论知识 与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际 动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可 喜的是最终都得到了解决。 在实验过程中,也对团队精神的进行了考察,让我们在 合作起来更加默契,只有互相之间默契融洽的配合才能换来最终完美的结果。此次设 计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要 认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。 第 25 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书 8 参考文献 1 潘松,黄继业.EDA技术实用教程 M .北京:科学出版社, 2002. 2 杨君,王景存.基于VerilogHDL的流水线的设计方法及应用J.武汉科技大学学报 (自然科学版) ,2002,25(4): 394396. 3 王景存,李炳生,郝国法等.用FPGA实现数字逻辑分析仪设计J.武汉科技大学学 报(自然科学版),2001,24(1):298300. 4王金明.数字系统设计与 Verilog HDL M .电子工业出版社(第四版). 2011. 5吴厚航.深入浅出玩转 FPGAJ. 北京:北京航空航天大学出版社.2010. 6夏宇闻.Verilog 数字系统设计教程 M .北京:北京航空航天大学出版社.2003. 第 26 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书 9 附录:原理图 IO,(ASD)1nC2LV5pR_E3KU46Q0/8FBNP7MW#TGH+YkJ 图 9-1 总体原理图 第 27 页 基于 FPGA 对 SD 卡读取控制 TFT 显示系统设计说明书
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!