基于fpga的嵌入式系统设计---lcd显示控制器学士学位论文(编辑修改稿)内容摘要:
uage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计 输入到硬件配置的完整 PLD 设计流程。 2. 具有运行速度快,界面统一,功能集中,易学易用等特点。 3. Quartus II 支持 Altera 的 IP 核,包含了 LPM/MegaFunction 宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。 4. 可以方便地实现各种 DSP 应用系统;支持 Altera 的片上可编程系统( SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体。 . Quartus II 的应用 Quartus II 提供了完全集成且与电路结构无 关的开发包环境,具有数字逻辑设计的全部特性,包括: ① 可利用原理图、结构框图、 VerilogHDL、 AHDL 和 VHDL 完成电路描述,将其保存为设计实体文件; ② 芯片(电路)平面布局连线编辑; ③ LogicLock 增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块; ④ 功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具; ⑤ 定时 /时序分析与关键路径延时分析;可使用 SignalTap II 逻辑分析工具进行嵌入式的逻辑分析; ⑥ 支持软件源文件的添加和创建,并将它们链 接起来生成编程文件; ⑦ 使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具; ⑧ 可读入标准的 EDIF 网表文件、 VHDL 网表文件和 Verilog 网表文件; 北方民族大学学士学位论文 基于 FPGA 的嵌入式系统设计 LCD 显示控制器 14 ⑨ 能生成第三方 EDA 软件使用的 VHDL 网表文件和 Verilog 网表文件。 II 的设计流程 Quartus II 设计流程 如下 : 设计输入:完成期间的硬件描述,包括文本编辑器、块与符号编辑器、MegaWizard 插件管理器、约束编辑器和布局编辑器等工具; 综合:包括分析和综合器以、辅助工具和 RTL 查看器等工具; 布局连线:将设计综合后的网表文件映射到实体器件的过程,包括 Fitter 工具、约束编辑器、布局图编辑器、芯片编辑器和增量布局连线工具;时序分析; 仿真: Quartus II 提供了功能仿真和时序仿真两种工具; 器件编程与配置:包括四种编程模式,即被动串行模式、 JTAG 模式、主动串行模式和插座内编程模式 [14]。 北方民族大学学士学位论文 基于 FPGA 的嵌入式系统设计 LCD 显示控制器 15 第二章 基于 Nios的 SOPC 设计 SOPC ( System On Programmable Chip ) 即可编程的片上系统,或者 说是基于大规模 FPGA 的单片系统。 SOPC 技术的目标就是企图将尽可能大而完整的电子统,包括嵌入式处理器系统、接口系统、硬件协处理器或加速气系统、 DSP 系统、数字通信系统、存储电路以及普通数字系统等,在单一 FPGA 中实现,使得所设计的电路系统在其规模、可靠性、体积、功耗、功能、性能指标、上市周期、开发成本、产品维护及其硬件升级等多方面实现最优化。 SOPC 从设计层次上讲,分硬件设计和软件设计;从设计流程上讲,是典型的自定向下的流程。 从设计手段上讲,相比于传统技术,更广和更深入地利用了计算机,而计算机技术无疑是当 今的主流技术。 SOPC 技术主要是指面向单片系统级专用集成电路设计的计算机技术,与传统的专用集成电路设计技术相比,其特点有 [17]: ● 设计全程,包括电路系统描述、硬件设计、仿真测试、综合、调试、系统软件设计,直至整个系统的完成,都有计算机进行。 ● 设计技术直接面向用户,即专用集成电路的被动使用者同时也可能是专用集成电路的主动设计者。 ● 系统级专用集成电路的实现有了更多的途径,即除传统的 ASIC器件外,还能通过大规模 FPGA 等可编程器件来实现。 . SOPC 概述 Nios 嵌入式 CPU 是一种专门为单芯片可编程系统( SOPC)设计应用而优化的 CPU 软核。 SOPC 设计包括以 32 位 Nios 软核处理器为核心的嵌入式系统的硬件配置、硬件设计、硬件仿真、软件设计、软件调试等。 SOPC 系统设计的基本软件工具主要有 :Quartus II,用于完成 Nios 系统的综合、硬件优化、适配、编程下载和硬件系统测试; SOPC Builder 是 Altera Nios 嵌入式处理器开发软件包,用于实现 Nios 系统的配置、生成、 Nios 系统相关的监控和软件调试平台的生成; ModelSim ,用于对 SOPC Builder 生成的 Nios 的 HDL 描述进行系统功能仿真; Matlab/DSP Builder,可借助于生成 Nios 系统的硬件加速器,进而为其定制新的指令; GNU Pro,用于进行软件调试。 完整的基于 Nios 的 SOPC 系统是一个软硬件复合的系统,在开发时可以分为北方民族大学学士学位论文 基于 FPGA 的嵌入式系统设计 LCD 显示控制器 16 硬件和软件两个部分。 Nios 是一个可灵活定制的 CPU,它的外设是可选的 IP 核或自定制逻辑,可以根据系统设计要求,通过 SOPC Builder 向导式的界面定制裁剪得当的 SOPC 系统。 在设计规划后,分为硬件开发与软件开发两个流程。 Nios的硬件设计流程就是为了定制合适的 CPU和外设,然后在 SOPC Builder和 QuartusII 中实现外设定义完成后,即可对 Nios CPU 和各外设模块的特性、大小及在系统中地址分配等进行设定。 接下去是启动 SOPC Builder,使之生成用于综合的硬件语言描述。 然后锁定端口引脚,启动 QuartusII,对生成的 Nios系统描述文件进行综合、适配和下载。 系统开发概述 系统硬件开发流程 Nios 嵌入式处理器是 FPGA 生产厂商 Altera 推出的软核( Soft Core) CPU,是一种面向用户的,可以灵活定制的通用 RISC( 精简指令集架构 )嵌入式 CPU。 图 21 所示的是 Nios 系统开发的流程图,概述了利用 SOPC 工具实现 Nios应用系统的硬件设计流程 [18]。 硬件设计 图 21 Nios 硬件开发流程图 设计规划 自定义外设、指令 ( SOPC Builder & QuartusII etc.) 定义 Nios系统模块 ( SOPC Builder) 锁定引脚、硬件编译 ( QuartusII) 硬件原型设计 ( Nios 开发板) 北方民族大学学士学位论文 基于 FPGA 的嵌入式系统设计 LCD 显示控制器 17 . 基于 Nios 的嵌入式系统开发流程 基于 Nios 的嵌入式系统开发,需要使用 Altera 公司的 SOPC 开发环境,它主要由三个部分组成 :IP 库 (Nios 软核处理器, Avlon 总线,外围设备接口等 ),SOPC Builder 开发工具 GNUPro 软件编译器。 个开发分为四个阶段。 第一阶段 :系统分析阶段。 在这个阶段我们需要解决的问题是对目标系统进行功能分析,确定系统的性能指标,在此基础上决定系统中需要采用哪些组件。 在设计规划这一步,就要综合考虑确定那些功能能用硬件实现,哪些功能用软件实现。 第二阶段 :硬件设计阶段。 这个阶段主要借助 SOPC Builder 和 Quartus 这两种开发工具来完成。 此阶段有以下几个步骤 : 1. 使用 Quartus软件对于 Altera没有提供 IP核的系统组成部分 (用户自定义逻辑或者用户自定义接口 )进行设计。 2. 使用 SOPC Builder 对 Nios 处理器、片上 ROM/AM, DMA 控制器以及处理器同外围设备的连接形式等进行定制。 3. 使用 Quartus 进行硬件整体设计。 使用 Quartus 对整个硬件设计文件进行编译,得到 FPGA 的硬件配置文件。 第三阶段 :软件设计阶段。 首先需要编写自定义设备的操作例程,之后是根据需要进行操作系统的移植并编写相应的应用代码,在这部分使用的开发工具是GNUPro。 主要步骤为: 1. 获取目标 Nios 系统的 SDK 利用 SOPC Builder 创建完成 Nios CPU 之后,就会在其工作目录下生成 Nios CPU 系统的 SDK 子目录。 一般地,进行 Nios 软件开发都是在该 SDK 目录环境下进行开发的。 SDK 中包含的头文件和库文件,为软件开发人员省去了创建硬件映射表和编程底层硬件子程序的基础性编程操作。 2. 建立和编译应用软件 Windows 下的 Nios 软件开发环境是一个用 Cygwin 模拟的 Unix 控制台环境, Nios 开发包编译程序支持 C/C++或汇编源程序(后缀名分别为 .c 和 .s)。 通过使用 niosbuild 批处理命令或编写 Makefile 文件,开发人员可以方便地对软件源程序进行编译。 编译后生成的二进制代码保存为 Srecord 格式文件(后缀名为 .srec) ,另外也生成包含调试信息的代码文件(后缀名为 .out)。 北方民族大学学士学位论文 基于 FPGA 的嵌入式系统设计 LCD 显示控制器 18 3. 下载可执行代码到开发板 通过使用 niosrun 批处理脚本,可以将第二步编译生成的可执行代码下载到开发板上,并且立即执行代码。 Nios 开发包中的 GERMS 监控程序允许用户运行可执行代码,进行内存读写操作,装载大块代码(或数据)到内存区,以及 Flash内容擦写操作等。 1. 调试代码 如果在源程序中使用了 printf()函数输出调试信息,那么该调试信息将被传送到标准输出输入端口( STDIO)上。 Nios 开发板一般将 STDIO 指向到一个串口或Nios OCI 调试器模块,并将 niosrun 所在的控制台窗口作为消息显示终端。 通过使用 Nios 开发板自带的 GNU debugger(GDB)调试器可以对 .out 格式的可执行代码进行调试。 如果调试过程中发现问题,那么就要返回到第二步重新修改源程序,然后编译,再次调试,直到程序调试通过。 2. 转换代码为自启动代码 应用程序代码完全调试通过后,还可以将执行代码存储到开发板上的 Flash 存储器中,之后,每次 Nios CPU 复位重启后就会自动执行该可执行代码。 在开发板上一般使用片外或片内存储器来存储非易失性代码。 使用片 外存储器,可以分为以下两种方法 [17]: 在 Nios控制台窗口下使用 srec2flash脚本命令将 .srec格式的可执行代码转换为开发板上 Flash 存储器所认可的 .flash 格式文件。 利用srec2flash 命令转换代码时还会附加上一段程序代码,以保证程序启动时将程序执行代码装载到板上 SRAM 中。 另一种方法则需要 Nios 硬件开发人员在 SOPC Builder 中去掉 GREM Monitor 监控程序,并将 Nios CPU 的 reset 地址指向程序在 Flash 存储器中的地址,然后重新编译硬件设计即可。 如果程序代 码比较小,那么就可以将其放入 Cyclone 芯片的片内存储器中,Nios 硬件开发人员在 SOPC Builder 环境下,通过为片内 RAM 或 ROM 指定初始化文件将程序代码放进片内存储器中。 在这种情况下, Nios 开发者可以使用自己的自启动代码来完全代替 GREM Monitor 监控程序。 3. 移植到目标硬件 北方民族大学学士学位论文 基于 FPGA 的嵌入式系统设计 LCD 显示控制器 19 最后,当准备将软件设计 实 现在目标硬件平台上时,可能还是需要用到上述几步中提到的实用工具进行代码下载和调试,如果硬件结构与开发板相差太大,可能还需要对软件代码进行修改、调试,然后还是要用到 niosrun 命令、Nios OCI 调试器控制台或 GREM Monitor 监控程序等。 最后,就是基于 Nios 的 SOPC 系统在实际产品上的。基于fpga的嵌入式系统设计---lcd显示控制器学士学位论文(编辑修改稿)
相关推荐
外,由于整个 SDRAM控制器用 VHDL语言编写,只要对其进行简单的修改就可以满足不同的需求,具有很强的灵活性。 配置方式及其特 点、用途 现场可编程门阵列 FPGA是一种高密度可编程逻辑器件,其逻辑功能是通过把设计生成的数据文件配置进芯片内部的静态配置数据存储器( SRAM)来实现的,具有可重复编程性,可以灵活实现各种逻辑功能。 由于 SRAM的易失性,每次系统上电时必须重新配置数据,即
层次显示窗口或将其带至前台。 :打开平面图编辑器或将其带至前台。 :打开编译器窗口或将其带至前台。 :打开仿真器窗口或将其带至前台。 :打开时序分析器窗口或将其带至前台。 :打开编程器窗口或将其带至前台。 :指定工程名。 :将工程名设置为和当前文件名一样。 :打开当前工程的顶层设计文件或将其带至前台。 :保存所有打开的编译器输入文件
( 5)底层嵌入功能单元 ( 6)内嵌专用硬核 与“底层嵌入单元”是有区别的,这里指的硬核主要是那些通用性相对较弱,不是所有 FPGA 器件都包含硬核。 目前绝大部分 FPGA 都采用查找表( Look Up Table, LUT)技术,如 Altera 的 ACEX、 APEX、 Cyclone、 Stratix 系列, Xilinx 的 Spartan、 Virtex 系列等。 FPGA
EEPROM TH 用户字节 1* TL 用户字节 2* 配置寄存器 * 图 33 DS18B20 的存储器 北华航天工业学院毕业论文 10 DS18B20 的时序 与 DS18B20 间的任何通讯都需要以初始化序列开始,一个复位脉冲跟着一个存在脉冲表明 DS18B20 已经准备好发送和接收数据。 在初始化序列期间,总线控制器拉低总线并保持 480us 以发出( TX)一个复位脉冲,然后释放总线
endcase end else begin phase_in_reg=1639。 h0000。 end end always @(posedge clk or negedge rst_n) begin if(!rst_n) begin x0=1639。 h0000。 y0=1639。 h0000。 z0=1639。 h0000。 end else if(ena==139。 b1) begin
及新近开发的 VXI 模块。 由于 VXI 总线的逐渐成熟和对测量仪器的高要求,在很多领域需要使用 VXI 系统测量产生复杂的波形, VXI 的系统资源提供了明显的优越性,但由于开发 VXI 模块的周期长,而且需要专门的 VXI 机箱的配套使用,使得波形发生器 VXI 模块仅限于航空、军事及国防等大型领域。 在民用方面, VXI 模块远远不如台式仪器更为方便。 ,台式仪器在走了一段下坡路之后