基于FPGA的SOPC技术
《基于FPGA的SOPC嵌入式系统设计与典型实例》读书笔记模板

2.1 Verilog HDL语言特点 2.2 Verilog HDL程序的基本结构 2.3程序格式 2.4注释与间隔符 2.5数值 2.6字符串 2.7标识符 2.8系统任务和函数 2.9编译指令
3.1硬件开发工具Quartus II 3.2 ModelSim开发工具 3.3本章小结
第4章 SOPC硬 件系统开发
13.1实例内容说明 13.2设计思路分析 13.3硬件设计 13.4软件设计与程序代码 13.5实例小结
14.1实例内容说明 14.2设计思路分析 14.3 I2C总线介绍 14.4 AT24C02芯片介绍 14.5 SOPC系统的创建 14.6软件设计与程序代码 14.A的SOPC嵌入式系统设计与典型实例》的读书笔记模板,可以替换为自己的精彩内容摘录。
基于FPGA的SOPC嵌入式系统 设计与典型实例
读书笔记模板
01 思维导图
03 读书笔记 05 精彩摘录
目录
02 内容摘要 04 目录分析 06 作者介绍
思维导图
本书关键字分析思维导图
系统
实例
设计
读者
设计
硬件
硬件
实例
实例
设计 系统
结构
典型
小结
传输
第章
总线
开发
内容
内容摘要
本书通过核心技术与典型实例的形式,全面系统、深入浅出地介绍了基于FPGA的嵌入式SOPC系统设计技术与 应用实例。全书共分14章,第1~3章简要介绍了FPGA硬件结构知识、Verilog HDL编程基础、FPGA常用开发工具, 引导读者入门;第4~7章重点对嵌入式SOPC系统设计技术进行了细致阐述,内容包括:SOPC硬件系统开发、SOPC 软件系统开发、Avalon总线规范、Nios II外围设备及其编程;第8~14章通过7个典型实例,对基于FPGA的嵌入 式SOPC系统设计过程进行实际演练,具体包括:七段数码管时钟显示实例、串口通信DMA传输实例、LED灯控PWM IP核的设计实例、通用TFT-LCD控制器及PS2鼠标设计实例、对对碰游戏设计实例、GPS信息接收系统设计实例以 及基于Nios II的I2C总线传输应用设计。经过这些例子的学习,读者设计的能力将迅速提升,产生质的飞跃。本 书语言通俗,结构清晰,基础知识和大量工程实例结合,实践性强。不但详细介绍了基于FPGA的嵌入式SOPC系统 设计的构架与软硬件编程,同时提供了应用设计思路与方案,对实例的所有程序代码做了详细注释,利于读者理 解和巩固知识点。本书配有光盘一张,包含了全书所有实例的硬件原理图和程序源代码,方便读者学习和使用。 本书适合计算机、自动化、
sopc实验心得

sopc实验心得
在进行SOPC(系统级可编程器件)实验的过程中,我深刻体会到了它的强大和灵活性。
SOPC是一种基于现场可编程门阵列(FPGA)技术的系统设计方法,它将硬件与软件相结合,可以实现高度集成和可重构的设计。
在实验中,我首先学习了SOPC的基本概念和原理,了解了它的组成部分以及各个组件之间的连接方式。
然后,我利用Quartus II软件进行了仿真和综合,将设计的硬件描述语言(HDL)代码转化为FPGA可以理解的形式。
通过仿真,我可以预先验证设计的正确性,并对其进行修改和优化。
接着,我进行了FPGA的编程和配置,将设计好的逻辑电路加载到FPGA芯片中。
通过这一步骤,我可以将自己的设计直接在硬件上实现,并进行实时的测试和调试。
这种即时性和灵活性是SOPC的一个重要优点,它使得我们能够更加高效地进行系统级设计和验证。
在SOPC实验中,我还学习了使用Nios II软核处理器进行嵌入式系统设计。
Nios II是一款可编程的32位RISC处理器,可以根据需求进行定制和配置。
通过Nios II,我可以在FPGA上实现复杂的嵌入式系统,并编写C语言程序进行控制和操作。
总的来说,SOPC实验让我深入了解了系统级可编程器件的原理和应用。
通过实践,我学会了使用Quartus II软件进行FPGA设计和配置,掌握了硬件描述语言
和嵌入式系统的开发方法。
这些知识和技能对我未来的学习和工作都具有重要的意义,我相信在不久的将来,SOPC技术将会在各个领域得到广泛应用。
基于FPGA的SOPC系统DAB发射端硬件实现

基于FPGA的SOPC系统DAB发射端硬件实现1.引言DAB 发射机是数字音频广播(DigitalAudio Broadcast,DAB)重要组成部分. DAB 技术是欧洲尤里卡项目之一,目前已经非常成熟.DAB 采用先进的数字技术,正交分频复用技术(OFDM),能以极低的数据传输率及失真下传送CD质量之立体声节目,可解决传统模拟广播接收不良及干扰问题.DAB 发射系统包括信源编码.信道编码.时间交织.频率交织.OFDM 调制和射频部分.射频部分包括上变频和增益放大,用来把基带信号搬移到发射频率上并将其放大.FPGA 技术不断进步,成本和功耗不断下降的同时性能和容量在大幅上升,FPGA 也代替MCU 越来越多的嵌入到系统中去.为了便于系统集成,本文设计FPGA 系统嵌入到DAB 发射系统中,使得开发变得方便灵活,同时也降低了成本.2.FPGA 的SOPC 系统构成本文设计了用于DAB 发射端的SOPC 系统,该系统硬件框图如图1 所示.系统中FPGA 采用ALTERA 公司的CycloneIII 系列芯片EP3C16Q240C8N.FPGA 中的NiosII 软核处理器完成数据的控制和指令传送,还可以在FPGA 上实现OFDM 调制.配置芯片选用EPCS16,片外扩展存储器为IS42S16100-7T.框图中,功能电路是用来实现DAB 发射功能的,它包括数字上变频(其中已经包括A/D和D/A 转换).信号放大.USB 传输等.根据DAB 发射系统设计可以得出系统中各个单元所需的资源:逻辑单元.寄存器.引脚.内存.乘法器单元.锁相环分别为8839.4719.104.202752bits.6 和1.这款芯片为QPFP 封装,芯片资源见表1.tips:感谢大家的阅读,本文由我司收集整编。
仅供参阅!。
基于FPGA的SOPC实践教程

课程目的
掌握数字逻辑的基本理论、基本分析 和设计方法,具备使用VHDL(Very High Speed Integrated Circuit Hardware Description Language)或Verilog HDL (Hardware Description Language) 语言进行数字逻辑设计的能力,熟悉 在FPGA上构建嵌入式SOPC硬件系统 的方法。
基于FPGA的SOPC实践教程
闫小喜
江苏大学电气信息工程学院 2012年4月
课程解释
FPGA: Field Programmable Gate Array 现场可编程门阵列,一类超大规模集成 电路芯片,硬件范畴 SOPC: System On Programmable Chip 可编程片上系统,系统层级概念,既包 括硬件系统也包括软件系统 基于FPGA的SOPC系统设计的最终目的 利用专有软件工具在FPGA上设计SOPC 硬件系统
课程特点
理论与实践相结合偏重实践的一门课程, 在实践中掌握基本方法、基本思路和基 本技巧;主要从实例入手,加深对数字 设计思想的理解并对整个设计流程有一 个感性的认识;在熟悉整体设计方法的 基础上,对设计方法中的每个步骤进行 深入理解。
课程内容
课程所讲解内容 本课程讲解内容主要由两个部分构成, 一个部分是基础的FPGA系统设计,另外 一个部分是基于FPGA的嵌入式SOPC系
课程层次(2)
基于FPGA的嵌入式SOPC系统设计
在前两个层次基础上,搭建基于FPGA芯片 的嵌入式SOPC系统,涉及到使用专有软件 的系统原理设计、系统仿真和调试、程序 下载、硬件调试等环节;以实践为主,考核向实验环节侧重 [考查]、[开卷考试]、[卷面成绩占60%, 平时听课和实践情况占40%]
基于FPGA的SOPC嵌入式系统设计

具备以下基本特征:至 少 包 含 一 个 嵌 入 式 处 理 器 内 核;具 有小容量片内高 速 RAM 资 源;丰 富 的 IP Core资 源 可 供 选择;足够 的 片 上 可 编 程 逻 辑 资 源;处 理 器 调 试 接 口 和 FPGA 编程接口;可能包含部分可编程模拟电路;单芯片、 低 功 耗 、微 封 装 。
设计原理:为 了 提 高 输 出 频 率 上 限 ,就 需 要 提 高 系 统 时钟,可以利用 EP1C3T144C8片 内 的 锁 相 环 进 行 倍 频,也 可直接调用 Quartus提 供 的 锁 相 环 模 块 ALTPLL;在 相 位 累加器调用内部 模 块 parallel-add时,输 入 及 输 出 数 据 宽 度设置为32位,数据类型 定 义 为 Unsigned;另 外 还 应 包 含 一路时钟信 号。 这 样 才 能 完 成 一 个 32 位 的 相 位 累 加 器。 设 计 结 构 图 如 图 4-1 所 示 。
(2)利 用 系 统 可 以 实 现 诸 多 功 能 完成数字逻辑电路 设 计,利 用 键 盘 扫 描 实 现 人 机 交 互、 VGA 显示,设计 FLASH 和 SRAM 的 控 制 器,利 用 AD/DA 完成信号处理(如实现 DDS信号源、音频信号处理等)。 3 系 统 整 体 硬 件 设 计 方 案 整个系统有 多 个 模 块 组 成,包 括 主 控 制 模 块、键 盘 阵 列模块、VGA 接口模块、LED 显示模 块、液 晶 模 块、USB 模 块、AD/DA 信号处理模块、逻辑输入模块等。 3.1 主 控 制 模 块 的 设 计 与 实 现 (1)器 件 概 述 EP1C3是 Altera公 司 的 推 出 的 Cyclone系 列 器 件,为 业界成本量 最 低 的 器 件。EP1C3 的 容 量 为 2,910 个 逻 辑 单元,具有59,904bits嵌 入 存 储 器,采 用 0.13um 晶 圆,全 铜工艺,具有1个锁相环(PLL)和一个层次 化 时 钟 结 构,用 于片内和片外时钟管理。 EP1C3具有104 个 用 户 引 脚,支 持 JTAG、PS、MS 等 多种下载模式,包含基 于 行 和 列 的 二 维 体 系 结 构 和 用 户 编 译逻辑。LAB 和嵌 入 式 存 储 块 的 内 部 互 连 是 通 过 行 和 列 的变速内部互连来实现的。 (2)基 本 功 能 块 Cyclone的 LAB 和 LE 基 本 结 构 的 Stratix 一 样,在 行
基于FPGA的音频开发平台的设计及其SOPC实现的开题报告

基于FPGA的音频开发平台的设计及其SOPC实现的开题报告一、选题背景及研究意义随着数字音频技术的发展,FPGA作为一种高度可编程的器件,越来越被广泛应用于音频处理领域中。
FPGA的高度可编程性和灵活性,使其可以在硬件电路设计中灵活应用,实现高性能的音频处理系统。
本课题旨在研究基于FPGA的音频开发平台的设计及其SOPC实现。
该音频开发平台旨在提供一种灵活、可扩展、高性能的音频处理平台,以使得开发人员能够更快、更准确地开发音频处理应用。
通过本课题的研究,可以实现以下目标:1.设计一种基于FPGA的音频开发平台,提供一种灵活可扩展的音频处理方案,从而为音频处理应用开发人员提供便利。
2.实现音频信号的采集、处理和输出,在提高音频处理性能的同时,具备高度的可编程性和灵活性。
3.进行模块化设计,实现模块间的高度集成和组合,减少开发人员的负担,提高音频处理应用的可维护性。
二、研究内容及研究方法该课题的研究内容包括以下几个方面:1.音频采集模块的设计:采用FPGA实现音频信号的采集,并对采集的音频信号进行初步处理,如滤波、失真矫正等。
2.音频处理模块的设计:设计一种高度可编程和灵活的音频处理模块,实现各种音频处理算法,如均衡器、环境声音适应、语音识别等。
3.音频输出模块的设计:将处理后的音频信号输出,实现多种音频输出接口,如DAC、PWM等。
4.系统集成和软件开发:进行模块化设计,实现模块间的高度集成和组合,并开发配套的软件,实现系统的控制与管理。
该课题的研究方法主要包括以下几个方面:1.文献调研:调研现有音频处理技术和FPGA应用技术,了解FPGA在音频处理中的应用现状和发展趋势,为后续设计提供参考。
2.系统划分和模块设计:对整个系统进行划分,并设计各个模块之间的接口和通信方式,实现高度集成和组合。
3.硬件设计和编程:根据设计要求和硬件资源,使用HDL语言进行硬件设计和编程,并进行仿真和验证。
4.软件开发和系统集成:使用C语言等高级语言进行软件开发,并进行系统集成,实现软件和硬件的协同工作。
基于FPGASOPC的温度控制系统设计
20科技资讯 SCIENCE & TECHNOLOGY INFORMATION信 息 技 术DOI:10.16661/ki.1672-3791.2018.21.020基于FPGA/SOPC的温度控制系统设计①王佳宁 于存江 程子轩(长春大学电子信息工程学院 吉林长春 130000)摘 要:本文介绍了一种基于FPGA/SOPC和温度传感器DS18B20的硬件电路温度控制方法。
利用DS18B20采集数字信号,采用FPGA芯片进行数据处理,并通过处理后的数据对继电器进行控制,从而实现对温度的实时调控。
本设计利用Verilog HDL在开发环境下进行硬件电路的设计。
最后利用MODELSIM软件进行模拟仿真试验,在0℃~55℃范围内,测量误差为±1℃,从而实现硬件电路的温度控制。
关键词:FPGA SOPC DS18B20 温度控制中图分类号:TN47 文献标识码:A 文章编号:1672-3791(2018)07(c)-0020-02现今,电子元器件在工业领域当中得到了非常广泛的应用,但是其应用效果和作用在不同的温度环境下的表现也有较大差距。
那么,如何更好地发挥元件的功能,就需要提高整个元件的稳定性,也要保持元件的最佳工作温度。
在这里,温度控制链路就起着非常重要的作用。
然而,普通的温控系统对温度采集和数据处理间存在很多不平衡的缺点,如何解决温度采集和处理数据的实时性和精确性,就需要合理的设计方案。
综合考虑,本设计是一种在FPGA 上实现SOPC温度采集和监测控制系统。
SOPC (System On a Programmable Chip )即可编程片上系统,它将CPU、ROM、RAM、I/O端口和DSP集成到一个FPGA芯片中。
SOPC的设计灵活开放,可以软硬件剪裁、扩展、升级、并具有可编程功能。
1 系统总体方案设计温度控制系统的设计包括以下几个部分:F P GA、DS18B20、MAX232、报警模块、继电器模块和1602LCD 等。
基于FPGA的SOPC设计_王培元
2010年8月襄樊学院学报Aug., 2010 第31卷第8期Journal of Xiangfan University V ol.31 No8基于FPGA的SOPC设计王培元(襄樊学院物理与电子工程学院,湖北襄樊 441053)摘要:本SOPC系统在Altera 公司Cyclone 系列芯片EP1C6Q240中移植Nios II嵌入式处理器,作为核心控制电路;利用FPGA丰富的可编程逻辑资源和IP软核构成嵌入式处理器的接口模块,实现对SDRAM存储器、FLASH存储器、LCD液晶显示器、独立键盘、LED等硬件的控制;软件设计采用开源的uC/OS-II嵌入式实时操作系统,完成一个嵌入式系统硬件设计. 经调试运行,在该系统上成功进行了推箱子游戏,验证了基于FPGA硬件设计的可行性,实现嵌入式实时多任务软件的开发.关键字:FPGA;SOPC;Nios II;uC/OS-II中图分类号:TN47 文献标志码:A 文章编号:1009-2854(2010)08-0042-03SOPC(System-on-a-Programmable-Chip),全称是可编程片上系统. 首先它是片上系统(SOC),即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能[1]. 随着FPGA芯片的发展,SOPC技术的得到了飞速发展,利用FPGA设计SOPC,为现在越来越复杂的产品所带来的竞争压力提供了高效的解决方案,在高速等高端产品中应用越来越广泛.SOPC设计是nios系统+硬实时部分+逻辑电路的一个组合体. 其中硬实时部分和逻辑电路在FPGA芯片内可以完美的得到实现. 本设计采用ALTERA公司的Nios II软核和FPGA芯片EP1C6Q240实现了一个SOPC的设计.1 系统总体设计本SOPC系统主要实现推箱子游戏,系统由一个32bit NiosII软核处理器、液晶显示器、SDRAM、FLASH、键盘等组成。
基于FPGA的H.264视频压缩编码SOPC设计
中文图书分类号:TN919.81密级:公开UDC:004学校代码:10005硕士学位论文MASTERAL DISSERTATION论文题目:基于FPGA的H.264视频压缩编码SOPC设计论文作者:李幸原学科:计算机科学与技术指导教师:侯义斌教授王素玉副教授论文提交日期: 2013年6月UDC:004学校代码:10005中文图书分类号:TN919.81 学号:S201025008密级:公开北京工业大学工学硕士学位论文题目:基于FPGA的H.264视频压缩编码SOPC设计英文题目:H.264 VIDEO CODING SOPC DESIGN BASED ON FPGA论文作者:李幸原学科专业:计算机科学与技术研究方向:嵌入式软件与系统申请学位:工学硕士指导教师:侯义斌教授王素玉副教授所在单位:软件学院答辩日期:2013年5月授予学位单位:北京工业大学独创性声明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。
尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教育机构的学位或证书而使用过的材料。
与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。
李幸原签名:日期:2013 年 6 月29 日关于论文使用授权的说明本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。
(保密的论文在解密后应遵守此规定)签名:李幸原日期: 2013 年6 月29 日导师签名:侯义斌日期: 2013 年6 月29 日摘要近几年来,智能移动终端和新一代移动网络的普及给视频应用提供了广阔的空间。
但是,相对于日渐庞大的视频业务需求,网络资源是极其有限的。
为此,学术界和产业界投入了大量的精力进行视频压缩编码技术的研究,H.264视频编码标准便是其成果之一。
基于FPGA的逻辑分析仪SOPC设计
1 bt路 , 用 于工作频 率 8 Hz Ki / 适 0 M 以下 数字 电路 。 其 设计 过程 是 : 使用 V D H L语 言 描 述 数据 采 集 与存 储 模 块 、 发条 件 设 置与 识 别模 块 、 键控 制 模 块 、 G 触 按 V A
( 安邮 电学 院 电子工程 学 院 , 西 陕西 西安 7 0 2 ) 1 1 1
摘 要 : 用 S P 采 O C方 法设 计 了逻 辑 分 析 仪 , 析 了 系统 中各 组 成 部 分 的 工作 原 理 重 点 阐 述 了 利 用 分
,
F G 片 内 P L的 时钟 分相 采样法 , 系统采 样 率提 高 到 4 0 MS/ 。该设 计 成本 较低 , 以满 足一 般 PA L 将 0 a s 可
Ab ta t o i n lzri d s n d b sn h O C meh d T ewokn r cpeo a h p r o e sse s sr c :A lgca ay e s ei e y u igteS P to . h r igp i il fe c at ft ytm i g n h
第 3 卷 第 1 1 期 21 0 2年 1月
实 验
室
研
究与探索 来自V0 l l N 0 【 3 1
RESEARCH AND EXPLORATI ON N I LABORATORY
J n 01 a .2 2
基于 FG P A的逻辑 分 析 仪 S P O C设 计
倪 德 克
.
h sg o r ci a a u . a o d p a tc lv l e
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于FPGA的数字时钟设计摘要:EDA技术在电子系统设计领域越来越普及,本设计主要利用VHDL和C 语言在FPGA实验板上设计一个电子数字钟,它的计时周期为24小时,显示满刻度为23时59分59秒、。
总的程序由几个各具不同功能的单元模块程序拼接而成,其中包括分频程序模块、时分秒计数模块、处理器及外设模块,并且使用QuartusII运用VHDL语言对分频和计数两个模块进行硬件电路设计和电路波形仿真,运用sopc技术嵌入内核并创建了系统所需的外部设备FLASH和SRAM 软件通过使用NiosII运用C语言进行编程然后下载到硬件电路中,并在FPGA实验板上进行调试和验证。
该设计采用自顶向下、混合输入方式(原理图输入—顶层文件连接和VHDL语言输入—各模块程序设计)实现数字钟的设计、下载和调试。
关键词:数字钟;FPGA;VHDL语言;C语言;SOPC技术;1、选题背景和研究内容近年来,随着数字集成电路技术的发展,用以前传统的方法进行芯片或系统设计已不能满足要求, 迫切需要提高设计效率。
能大大降低设计难度的VHDL设计方法正在被越来越广泛的采用。
VHDL 即超高速集成电路硬件描述语言,诞生于1982 年。
1987年底, VHDL被IEEE和美国国防部确认为标准硬件描述语言。
此后VHDL 在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。
1993年IEEE对VHDL 进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL 的内容,公布了新版本的VHDL,即IEEE标准的1076--1993 版本。
现在, VHDL作为IEEE的工业标准硬件描述语言,已成为通用硬件描述语言。
现在电子钟产品可谓百家争鸣,市场上到处可见一些功能齐全的设备,可能基于单片机的比较多,用FPGA设计电子钟可能比较少。
因为两个都可以实现同样的功能,而FPGA芯片的价格远比单片机高。
出于利润,当然会选择开发成本少的产品。
本次设计的目的是为了检验所学的知识(VHDL语言与SOPC技术)同时结合实践巩固知识,由于初涉该领域,相关的知识可能不够全面,实践的经验不够,所以本设计旨在能够实现数字钟的功能,对于各模块设计的优化和性能等方面没有多加考虑。
2、SOPC技术概述SOPC(System On Programmable Chip)即可编程的片上系统,或者说是基于大规模FPGA的单片系统。
SOPC的设计技术是现代计算机辅助设计技术、EDA技术和大规模集成电路技术高度发展的产物。
SOPC技术的目标就是试图将尽可能大而完整的电子系统,包括嵌入式处理器系统、接口系统、硬件协处理器或加速系统、DSP系统、数字通信系统、存储电路以及普通数字系统等,在单一FPGA 中实现,使得所设计的电路系统在其规模、可靠性、体积、功耗、功能、性能指标、上市周期、开发成本、产品维护及其硬件升级等多方面实现最优化。
SOPC技术是一门全新的综合性电子设计技术,涉及面广,SOPC在电子设计技术上给出了一种以人的基本能力为依据的软硬件综合解决优化方案。
3、数字钟系统总体设计方案3.1 数字钟的构成该数字钟系统构成主要包括分频程序模块、时分秒计数模块、处理器及外设模块三个模块,其总体结构框图如图1所示图1总体结构框图3.2 数字钟的工作原理数字钟电路的基本结构由两个60进制计数器和一个24进制计数器组成,分别对秒、分、小时进行计时,当计时到23时59分59秒时,再来一个计数脉冲,则计数器清零,重新开始计时。
秒计数器的计数时钟CLK为1Hz的标准信号,可以由晶振产生的50MHz信号通过分频得到。
当数字钟处于计时状态时,秒计数器的进位输出信号作为分钟计数器的计数信号,分钟计数器的进位输出信号又作为小时计数器的计数信号,每一秒钟发出一个中断给CPU,CPU采用NIOS,它响应中断,并读出小时、分、秒等信息。
CPU对读出的数据译码,使之动态显示在数码管上。
4、单元模块电路设计4.1分频模块电路设计与实现分频器是数字系统设计中的基本电路,根据不同设计的需要,我们会遇到偶数分频、奇数分频、半整数分频等。
通常由计数器或计数器的级联构成各种形式的偶数分频及非等占空比的奇数分频,实现较为简单。
本文设计的分频器是利用VHDL硬件描述语言,通过QuartusⅡ开发平台,使用Altera公司的FPGA,设计了用50MHZ的时钟信号输入进行50000000分频得到1HZ的时钟信号,作为秒计数器的个位提供时钟信号。
其原理图如图2所示。
图2 分频模块原理图4.2计数模块设计与实现秒计数器的计数时钟CLK为1Hz的标准信号,可以由晶振产生的50MHz信号通过分频得到。
当数字钟处于计时状态时,秒计数器的进位输出信号作为分钟计数器的计数信号,分钟计数器的进位输出信号又作为小时计数器的计数信号。
其原理图如图3所示。
图3 计数模块原理图4.3处理器及外设模块设计和实现该模块CPU采用NIOSII处理器,程序存储采用4M的Flash,数据存储采用外部的512k的SRAM,使用Flash来保存NIOSII中运行的程序代码和FPGA的配置数据,处理器在复位后从Flash开始执行程序,使用IDE Flash Programmer 进行编程,将程序下载到Flash中,一个1位的I/O口接受中断信号,六个4位I/O口作为数据输入端口,六个8位I/O口作为数据输出端口,外接六个8位led数码管,通过分频后的时钟信号每一秒钟给CPU一个中断信号,CPU响应中断,并通过4位I/O口读出小时、分、秒等信息,对读出的数据进行译码,并通过8位I/O口使之动态显示在数码管上。
原理图如图4所示。
图4 处理器及外设模块原理图系统总的原理图如图5所示图5 系统总原理图5、系统软件设计中断译码程序流程图如图6所示图6 中断译码程序流程图6、系统调试和测试分频模块的调试与测试,分频模块采用的VHDL 语言编写,对该模块进行功能和时序仿真,由于进行50000000分频的仿真比较困难,所以在此对2分频进行仿真.,图7为仿真输入波形图,采用输入时钟CLK 周期为10ns ,图8为仿真输出波形图,输出FN 时钟周期为20ns 。
图7 分频模块仿真输入波形图开始 初始化I/O 口 开中断 清中断寄存器中断注册调中断子程序主程序开始 关中断 清中断寄存器 调译码子程序 开中断中断子程序 开始读I/O 口数据写I/O 口数据译 码译码子程序图8仿真输出波形图计数模块的调试与测试,计数模块采用的VHDL语言编写,对该模块进行功能和时序仿真,仿真输入的时钟信号周期为10ns,输出应为六位的时钟信号,仿真的波形图如图9所示。
图9 计数模块仿真输出波形图处理器与外设模块的调试与测试,该模块采用SOPC技术生成,运用C语言编程在该模块中实现数据的传输译码,经过反复的在线调试,最终将时钟显示在FPGA实验板上。
7、结论本文设计了一个数字钟,输入时钟为50MHz,输出的小时、分、秒显示在数码管上,1秒钟改变一下显示。
数字钟的计数用VHDL语言设计实现,每一秒钟发出一个中断给CPU,CPU采用NIOS,它响应中断,并读出小时、分、秒等信息。
CPU对读出的数据译码,使之能在数码管上显示。
通过本次的数字钟系统设计,系统的复习整个基于FPGA的SOPC技术的知识,并且了解了CPLD可编程芯片的结构和引脚,能够熟练的运用Quartus II这个软件,能够采用VHDL语言实现基本的分频,计数器等硬件电路的设计和波形仿真,能够熟练的运用NIOSII结合C语言进行软件编程,并将软件下载到硬件电路进行调试。
数字钟的实物图如图10所示。
图10 数字钟实物图8、附录分频的VHDL程序代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FP ISPORT(CLK,RST:IN STD_LOGIC;FN:OUT STD_LOGIC);END FP;ARCHITECTURE NEO OF FP ISSIGNAL TEMP:STD_LOGIC;BEGINPROCESS (CLK,RST)VARIABLE COUNT:INTEGER RANGE 1 TO 25000000;BEGINIF RST='0' THEN TEMP<='0';ELSIF CLK'EVENT AND CLK='0' THENIF COUNT=25000000 THEN COUNT:=1;TEMP<=NOT TEMP;ELSE COUNT:=COUNT+1;END IF;END IF;FN<=TEMP;END PROCESS;END NEO;计数模块的VHDL程序代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SSZ ISPORT( RST:IN STD_LOGIC;CLK:IN STD_LOGIC;MIAO1:OUT INTEGER RANGE 9 DOWNTO 0;MIAO2:OUT INTEGER RANGE 9 DOWNTO 0;FEN1:OUT INTEGER RANGE 9 DOWNTO 0;FEN2:OUT INTEGER RANGE 9 DOWNTO 0;SHI1:OUT INTEGER RANGE 9 DOWNTO 0;SHI2:OUT INTEGER RANGE 9 DOWNTO 0);END SSZ;ARCHITECTURE ONE OF SSZ ISBEGINPROCESS(RST,CLK)VARIABLE M1:INTEGER RANGE 9 DOWNTO 0;VARIABLE M2:INTEGER RANGE 9 DOWNTO 0;VARIABLE F1:INTEGER RANGE 9 DOWNTO 0;VARIABLE F2:INTEGER RANGE 9 DOWNTO 0;VARIABLE S1:INTEGER RANGE 9 DOWNTO 0;VARIABLE S2:INTEGER RANGE 9 DOWNTO 0;BEGINIF RST='0' THEN M1:=0; M2:=0; F1:=0; F2:=0;S1:=0; S2:=0;ELSIF CLK'EVENT AND CLK='1' THENIF M1<9 THEN M1:=M1+1;ELSIF M1=9 THEN M1:=0;IF M2<5 THEN M2:=M2+1;ELSIF M2=5 THEN M2:=0;IF F1<9 THEN F1:=F1+1;ELSIF F1=9 THEN F1:=0;IF F2<5 THEN F2:=F2+1;ELSIF F2=5 THEN F2:=0;IF S1<4 THEN S1:=S1+1;ELSIF S1=4 THEN S1:=0;IF S2<2 THEN S2:=S2+1;ELSIF S2=2 THEN S2:=0;END IF;END IF;END IF;END IF;END IF;END IF;END IF;MIAO1<=M1;MIAO2<=M2;FEN1<=F1;FEN2<=F2;SHI1<=S1;SHI2<=S2;END PROCESS;END ONE;译码C语言程序代码:#INCLUDE<STDIO.H>#INCLUDE"SYSTEM.H"#INCLUDE"ALTERA_AVALON_PIO_REGS.H"#INCLUDE"ALT_TYPES.H"#INCLUDE"SYS/ALT_IRQ.H"#INCLUDE"PRIV/ALT_BUSY_SLEEP.H"UNSIGNED INT IN_1,IN_2,IN_3,IN_4,IN_5,IN_6; UNSIGNED CHAR OUT_1,OUT_2,OUT_3,OUT_4,OUT_5,OUT_6; UNSIGNED CHAR DISPLAY(UNSIGNED INT X){SWITCH(X){CASE 0:X=0XC0;BREAK;CASE 1:X=0XF9;BREAK;CASE 2:X=0XA4;BREAK;CASE 3:X=0XB0;BREAK;CASE 4:X=0X99;BREAK;CASE 5:X=0X92;BREAK;CASE 6:X=0X82;BREAK;CASE 7:X=0XF8;BREAK;CASE 8:X=0X80;BREAK;CASE 9:X=0X90;BREAK;DEFAULT:X=0XC0;BREAK;}RETURN X;}VOID YIMA(VOID){IN_1=IORD_ALTERA_AVALON_PIO_DATA(PIO_IN1_BASE)&0XFF;OUT_1=DISPLAY(IN_1);IOWR_ALTERA_AVALON_PIO_DATA(PIO_OUT1_BASE,OUT_1);IN_2=IORD_ALTERA_AVALON_PIO_DATA(PIO_IN2_BASE)&0XFF;OUT_2=DISPLAY(IN_2);IOWR_ALTERA_AVALON_PIO_DATA(PIO_OUT2_BASE,OUT_2);IN_3=IORD_ALTERA_AVALON_PIO_DATA(PIO_IN3_BASE)&0XFF;OUT_3=DISPLAY(IN_3);IOWR_ALTERA_AVALON_PIO_DATA(PIO_OUT3_BASE,OUT_3);IN_4=IORD_ALTERA_AVALON_PIO_DATA(PIO_IN4_BASE)&0XFF;OUT_4=DISPLAY(IN_4);IOWR_ALTERA_AVALON_PIO_DATA(PIO_OUT4_BASE,OUT_4);IN_5=IORD_ALTERA_AVALON_PIO_DATA(PIO_IN5_BASE)&0XFF;OUT_5=DISPLAY(IN_5);IOWR_ALTERA_AVALON_PIO_DATA(PIO_OUT5_BASE,OUT_5);IN_6=IORD_ALTERA_AVALON_PIO_DATA(PIO_IN6_BASE)&0XFF;OUT_6=DISPLAY(IN_6);IOWR_ALTERA_AVALON_PIO_DATA(PIO_OUT6_BASE,OUT_6);}STATIC VOID INTER_INTERRUPT(VOID *CONTEXT,ALT_U32 ID){ /* 关中断 */IOWR_ALTERA_AVALON_PIO_IRQ_MASK(INTURRPT_BASE,0X00);/* 清边沿捕获寄存器 */IOWR_ALTERA_AVALON_PIO_EDGE_CAP(INTURRPT_BASE,0X00);/*调用译码子程序*/YIMA();/* 开中断 */IOWR_ALTERA_AVALON_PIO_IRQ_MASK(INTURRPT_BASE,0XFF); }VOID INIT_PIO(VOID){/* 初始化PIO_OUT为输出 */IOWR_ALTERA_AVALON_PIO_DIRECTION(PIO_OUT1_BASE, 0XFF);IOWR_ALTERA_AVALON_PIO_DIRECTION(PIO_OUT2_BASE, 0XFF);IOWR_ALTERA_AVALON_PIO_DIRECTION(PIO_OUT3_BASE, 0XFF);IOWR_ALTERA_AVALON_PIO_DIRECTION(PIO_OUT4_BASE, 0XFF);IOWR_ALTERA_AVALON_PIO_DIRECTION(PIO_OUT5_BASE, 0XFF);IOWR_ALTERA_AVALON_PIO_DIRECTION(PIO_OUT6_BASE, 0XFF);/* 初始化PIO_IN为输入 */IOWR_ALTERA_AVALON_PIO_DIRECTION(PIO_IN1_BASE, 0X00);IOWR_ALTERA_AVALON_PIO_DIRECTION(PIO_IN2_BASE, 0X00);IOWR_ALTERA_AVALON_PIO_DIRECTION(PIO_IN3_BASE, 0X00);IOWR_ALTERA_AVALON_PIO_DIRECTION(PIO_IN4_BASE, 0X00);IOWR_ALTERA_AVALON_PIO_DIRECTION(PIO_IN5_BASE, 0X00);IOWR_ALTERA_AVALON_PIO_DIRECTION(PIO_IN6_BASE, 0X00);/* 开中断 */IOWR_ALTERA_AVALON_PIO_IRQ_MASK(INTURRPT_BASE, 0XFF);/* 清边沿捕获寄存器 */IOWR_ALTERA_AVALON_PIO_EDGE_CAP(INTURRPT_BASE, 0X00);/*注册中断服务子程序*/ALT_IRQ_REGISTER(INTURRPT_IRQ,NULL,INTER_INTERRUPT);}INT MAIN(VOID){ INIT_PIO();WHILE (1){;}RETURN 0;}参考文献:[1] 周立功,SOPC嵌入式系统基础教程,北京航空航天大学出版社,2008.4[2] 周立功,SOPC嵌入式系统实验教程,北京航空航天大学出版社,2006.7[3] 张志刚,FPGA与SOPC设计教程—DE实践,西安电子科技大学出版社,2007[4] 潘松黄继业,EDA技术实用教程,科学出版社,2006.8[5] 华清远见嵌入式培训中心,FPGA应用开发入门与典型实例,人民邮电出版社,2008.6。