当前位置:文档之家› FPGA实训报告

FPGA实训报告

北京联合大学电子技术课程设计报告课程名称:出租车计价器学院:专业:班级:学号:姓名:成绩:2010年12月30日前言电子设计自动化(Electronics Design Automation—EDA)技术是现代电子工程领域的一门新技术。

它提供了基于计算机和信息技术的电路系统设计方法。

EDA技术就是依赖功能强大的计算机,对用电路描述语言描述的设计文件,自动地完成编译、化简、分割、综合、布线、优化、仿真等,直至实现既定的电子电路系统的功能。

EDA技术打破了软件设计和硬件设计间的壁垒,是一门综合性学科,一种新的技能技术。

它将设计效率和产品性能合二为一,代表了电子设计技术和电子应用技术的发展方向。

EDA技术是指以计算机为工作平台,融合应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动化设计。

随着计算机的普及,EDA软件已广泛地应用于电子电路的分析与设计中,它改变了以定量估算和电路实验为基础的传统设计方法,代表了当今电子设计技术的最新发展方向,成为现代电子线路设计的必不可少的工具与手段。

EDA(Electronic Design Automation)技术是指以计算机为工作平台,融合应用电子技术,计算机技术,信息处理及智能化技术,进行电子产品自动化设计的一门新技术。

EDA技术作为现代电子设计技术的核心,依赖于功能强大的计算机,在EDA 工具软件平台上,对硬件描述语言微逻辑描述手段完成的设计文件,自动地完成逻辑编译,逻辑化简,逻辑分割,逻辑宗和,布局布线,以及逻辑优化和仿真测试,直至实现既定的电子电路的功能。

在硬件方面,EDA技术融饿了大规模集成电路制造技术,集成电路板图设计技术,可编程器件编程技术,自动测试技术等;在计算机辅助工程方面融合了计算机辅助设计CAD,计算机辅助制造CAM,计算机辅助分析CAA,计算机辅助测试CAT,计算机辅助工程CAE技术以及多种计算机语言的设计概念;在现代电子学方面融入了诸如计算机设计技术,电子线路设计理论,数字信号处理技术,数字系统建模和优化技术以积极与微波技术的长线技术理论等。

因此,EDA技术为现代电子理论和设计的表达以实现提供了可能。

当前,利用EDA技术惊醒电子电路设计的主要方法,是基于可编程器建完成专用集成电路ASIC的实现。

ASIC作为最终的物理平台,是集中容纳用户通过EDA 技术将电子应用系统的既定功能,技术指标和个性创意具体实现的硬件实体。

在传统的电路设计中,分立元件,中小规模集成电路的功能,参数,规格是相对固定的,人们把大量的时间和精力花在元器件的选配和电路结构的可行性分析上,采用的设计方法只能是自底向上的,即整体电路是由底层器件,电路一层层及联起来的。

在这个设计过程中的任何一时刻,若发生底层目标器件的缺损,总体或局部参数的变更,甚至由于市场竞争热而临时提出降低系统成本,提高运行速度等不可预测的外部因素,都间可能使前期的工作前功尽弃,设计工作由得从新由底层做起。

可见,自底而上是一种低效,低可靠性高成本的设计方法。

在EDA技术应用中广泛采用自顶向下的设计方法设计电路工程项目的设计流程包括:用自然语言描述功能特性和技术指标,用硬件描述语言建立系统描述→行为描述→结构描述→逻辑描述,用计算机开发软件进行功能仿真→时序仿真→硬件测试。

设计者在整个设计过程中可根据需要,随心所欲的改变器件内部结构乃至期间外部引脚功能,可以将系统电路分解为各个模块,也可以将多个模块集合在一起,而不必顾及各个器件的技术细节。

正是采用了基于可编程器件的,利用计算机完成的自顶向下的设计方法,大大减少了功能芯片的数量,减轻了设计电路板图的工作量,缩小了整体电路的体积,提高了系统的可靠性,加快了验发的速度,降低了产品设计的成本。

可以说EDA技术打破了软件设计和硬件设计间的壁垒,是一门综合性学科,一种多方位技能技术。

他将设计效率和产品性能合二为一,代表了电子设计技术和电子应用技术的发展方向。

VHDL的全名是Very High Speed Integrated Circuit Hardware Description Language,于83年由美国国防部发起创建,由IEEE(The Institute of Electrical and Electronics Engineers 电气与电子工程师学会)进一步发展,在87年作为“IEEE标准1076”发布,93年被升级为“IEEE1164”。

硬件描述语言是EDA技术的重要组成部分,VHDL作为电子设计的主流硬件描述语言,被多个EDA公司所引用。

VHDL语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,具有良好的移植性和适应性,从而大大简化了硬件设计任务,提高了电子系统设计的效率和可靠性。

用VHDL进行电子系统设计的一个很大的优点是设计者可以专心致力于其功能的实现,而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力。

此次课程设计我们组的项目是“出租车计价器”。

我们小组通过老师一个星期的知识讲解并自学了《FPGA设计基础》,应用Quartus Ⅱ软件进行了设计和编辑。

目录1.课程设计任务书 (4)1.1基本要求 (4)1.2提高要求..................................... . (4)2.系统电路功能描述、粗框图及方案论证说明 (5)2.1系统电路功能 (5)2.2系统电路粗框图 (5)3.系统电路设计陈述 (5)3.1系统电路总框图及工作原理。

(5)3.2控制模块的逻辑功能描述,端口功能描述,控制流程图及控制流程说明,仿真波形分析结果及说明 (5)3.3下载结果,试验测试报告,数据处理和分析 (13)4.课程设计工作进程 (15)4.1设计小组的分工及工作安排 (15)4.2工作日程记录表 (15)5.本人承担的任务及执行情况 (16)6.收获和体会 (16)7.附录 (17)7.1参考文献 (17)1.课程设计任务书设计题目:出租车计价器。

1.1基本要求:(1)启动后计价器开始计费,基价定为白天十元,晚间11元(此部分由我们小组进行了小部分的修改)行使3公里后开始加价每公里2元(2)每行驶0.1公里增加计数0.2元1.2提高内容:(1)在基本要求的基础上,增加白天、夜间按不同标准收费,白天2元/km,夜间3元/km,夜间从23:00至第二天早5:00之前。

程序及对应模块设计思路:模块1、分频器:此模块作用主要是通过时钟脉冲分频实现不同的要求,对应现实中当车轮转两圈,表示车已经行驶100m;模块2、计程器:此模块作用主要是记录车辆行驶的距离,当车辆行驶的距离不满3km时,计程器中的信号cn保持为零,使计费器保持在起步价,在数码管显示为该起步价,当车辆行驶的距离大于或者等于3km时,产生的信号cn为1,并一直保持下去,此时计费器开始正常工作;模块3、计费器:此模块主要是记录当前车辆行驶所产生的费用,通过计程器cn信号,有两个状态,一个是保持在起步价,一个是以0.2(白天)元/km 和0.3(夜晚)元/km两种方式计费;模块4、二选一选择器:此模块主要是控制当前车辆工作的状态时白天还是夜晚,通过按键的设置可以选择当前车辆的计费方式。

注:计费器运用了两种编写方式,一种(白天)是以计数器为原型设计,一种(夜间)是直接通过程序的编写得到。

2.系统电路功能描述、粗框图及方案论证说明2.1系统电路功能本组设计的出租车计价器可以实现白天和夜晚两种工作方式,并有不同的计费方式。

2.2系统电路粗框图3.系统电路设计陈述3.1系统电路总框图及工作原理。

本组设计的出租车计价器运用了通过利用分频器达到计时计数,通过计程器和计费器,在数码管上显示对应的数。

3.2控制模块的逻辑功能描述,端口功能描述,控制流程图及控制流程说明, 仿真波形分析结果及说明。

3.3主路控制器模块 1、分频器:(1)作用:分频产生计时(2)分频器控制模块编程程序 library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity coun_100 is port(clk:in std_logic; co:out std_logic); constant d:integer:=50; end;architecture w1 of coun_100 is beginprocess(clk)variable q:std_logic_vector(7 downto 0); beginif clk'event and clk='1'thenif q=d-1 then q:=(others=>'0');co<='1'; else q:=q+1;co<='0';分频器 产生时钟脉冲计程器计费器二选一数据选择器显示模块end if;end if;end process;end;(3)分频器件图:(4)分频器仿真图:2、计程器(1)作用:通过控制信号的产生,实现在前三公里的时候不产生进位cn,即cn=‘0’,此时计费器通过数码管一直显示为出租车起步价10元,当里程数大于三公里时,产生进位cn=‘1’,给让计费器开始正常计费(2)计程器控制模块程序:LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_unsigned.ALL;ENTITY kilo ISPORT( clk:IN std_logic;start:IN std_logic;stop:IN std_logic;k1:OUT std_logic_vector(3 DOWNTO 0);k2:OUT std_logic_vector(3 DOWNTO 0);k3:OUT std_logic_vector(3 DOWNTO 0);cn:out std_logic);END kilo;ARCHITECTURE behav OF kilo ISBEGINPROCESS(clk,start,stop)VARIABLE k_v:std_logic_vector(11 DOWNTO 0);BEGINIF stop='1' THEN k_v:=(OTHERS=>'0');ELSIF clk'EVENT AND clk='1'THENIF start='1' THENIF k_v(3 downto 0)="1001" THENk_v:=k_v+"0111";ELSE k_v(3 downto 0):=k_v(3 downto 0)+1;END IF;IF k_v(7 downto 4)="1010" THENk_v:=k_v+"01100000";END IF;END IF;END IF;IF k_v(11 downto 0)>="000001000000" THEN cn<='1';else cn<='0';END IF;k1<=k_v(3 downto 0);k2<=k_v(7 downto 4);k3<=k_v(11 downto 8);END PROCESS;END behav;(3)计程器元器件图:(4)计程器仿真图:3、计费器(此部分包括三部分,分别为零位,个位,十位)(1)作用:通过计程器产生的进位信号cn,一开始的时候数码管显示的是出租车起步价10元,当进位信号cn为1时,计费器开始正常工作,0.2元/km 产生费用。

相关主题