当前位置:文档之家› 西电EDA实验报告

西电EDA实验报告

西电EDA实验报告
西电EDA实验报告

交通灯控制器设计报告

交通控制器

一.选题目的

尝试用所学eda和vhdl编程知识,解决生活中常见的问题。做到学而时习之。

二.设计目标(课题内容)

设计一个十字路口交通控制系统,其东西,南北两个方向除了有红、黄、绿灯指示是否

允许通行外,还设有时钟,以倒计时方式显示每一路允许通行的时间,绿灯,黄灯,红灯的

持续时间分别是40、5和45秒。当东西或南北两路中任一道上出现特殊情况,例如有消防车,

警车要去执行任务,此时交通控制系统应可由交警手动控制立即进入特殊运行状态,即两条

道上的所有车辆皆停止通行,红灯全亮,时钟停止计时,且其数字在闪烁。当特殊运行状态

结束后,管理系统恢复原来的状态,继续正常运行。

三.实现方案(包括原理框图和hdl设计流程图)

1原理框图

从题目中计数值与交通灯的亮灭的关系如图(1)所示

1.交通灯的显示状况:

东西南北

图(1)计数值与交通灯亮灭的关系

2.交通等的原理示意图如图(2)

图(2)交通灯的示意图

3.hdl设计流程图如图(3):

四.设计过程(包括关键模块的仿真结果)

1.总体思路

第一部分:clk时钟秒脉冲发生电路

在红绿灯交通信号系统中,大多数情况是通过自动控制的方式指挥交通的。

因此为了避免意外事件的发生,电路必须给一个稳定的时钟(clock)才能让系统正常运

作。模块说明:系统输入信号:

clk: 由外接信号发生器提供10hz的时钟信号;系统输出信号: clk_out:产生每

秒一个脉冲的信号;

第二部分:计数秒数选择电路

计数电路最主要的功能就是记数负责显示倒数的计数值,对下一个模块提供状态转换信

号。模块说明:

系统输入:clk_out: 接收由clk电路的提供的1hz的时钟脉冲信号;系统输出信号:

countnum:倒计数值;

第三部分:红绿灯状态转换电路本电路负责红绿灯的转换。模块说明:

系统输入信号:clock,hold,countnum;

系统输出信号:numa,numb: 接收计数秒数选择电路状态转换信号;

reda,greena,yellowa,redb,greenb,yellowb :负责红绿灯的状态显示。

第四部分:时间显示电路

本电路负责红绿灯的计数时间的显示。bcd_data 模块说明:

系统输入信号:clock,hold,numin(即接收numa,numb的值):倒计数值秒数位变化控制

信号;

系统输出信号:numa,numb: 负责红绿灯的显示秒数位。

2.单元电路设计

(1)分频器的设计

分频器实现的是将高频时钟信号转换成底频的时钟信号,用于触发控制器、计数篇二:

西安电子科技大学eda实验报告

eda大作业及实验报告

实验一:quartus ⅱ软件使用及组合电路设计仿真

实验目的:

学习 quartus ⅱ软件的使用,掌握软件工程的建立,vhdl源文件的设计和波形仿真等

基本内容;实验内容:

1. 四选一多路选择器的设计

首先利用quartusⅱ完成4选1多路选择器的文本编辑输入(mux41a.vhd)和仿真测试等

步骤,给出仿真波形。

步骤:

(1)建立工作库文件夹和编辑设计文件;(2)创建工程;(3)编译前设置;(4)

全程编译;(5)时序仿真;

(6)应用rtl电路图观测器(可选择)

实验程序如下:

library ieee;

use ieee.std_logic_1164.all; entity mux41 is port( s10:in std_logic_vector(1 downto 0); a,b,c,d:in std_logic; q:out

std_logic );

end entity mux41;

architecture bhv of mux41 is begin process(a,b,c,d,s10) begin if s10=00 then q<=a;

elsif s10=01 then q<=b; elsif s10=10 then q<=c; else q<=d; end if; end process;

end bhv;

波形仿真如图:

其中,分别设置a,b,c,d四个输入都为10.0ns的方波,其占空比分别为25%,50%,75%,

90%以作为四种输入的区分,使能端s10以此输入00(即[0]),01(即[1]),10(即[2]),11(即

[3]),可以观察到输出端q依次输出分别为a,b,c,d。试验成功。

其rtl电路图为:

2.七段译码器程序设计仿真

2.1 原理:7段数码是纯组合电路,通常的小规模专用ic,如74或4000系列的器件只

能作十进

制bcd码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16

进制的,为了满足16进制数的译码显示,最方便的方法就是利用vhdl译码程序在fpga或

cpld中实现。本项实验很容易实现这一目的。例1作为7段bcd码译码器的设计,输出信号

led7s的7位分别接如实验图1数码管的7个段,高位在左,低位在右。例如当led7s输出

为 0010010 时,数码管的7个段:g、f、e、d、c、b、a分别接0、0、1、0、0、1、0,实

验中的数码管为共阳极的,接有低电平的段发亮,于是数码管显示“5”。

实验图1 数码管及其电路

2.2 实验内容:参考后面的七段译码器程序,在quartus ii 上对以下程序进行编辑、编译、综

合、适配、仿真,给出其所有信号的时序仿真波形。

试验程序如下:

library ieee ;

use ieee.std_logic_1164.all ; entity decl7s is port ( a : in std_logic_vector(3 downto 0) ; led7s : out

std_logic_vector(6 downto 0) ) ; end ; architecture one of decl7s is begin process( a ) begin

case a(3 downto 0) is 波形仿真如图:

如图,当输入端a依次输入0-15的四位二进制码时,输出端依次输出(0-9及a-f)的

数码管所对应的七位二进制数,例如,当输入0000时,输出端输出1000000(即字符@的ascii

码),显示在数码段上即‘0’。

实验二计数器设计与显示

实验目的:

(1)熟悉利用quartus ii中的原理图输入法设计组合电路,掌握层次化设计的方法;

(2)学习计数器设计、多层次设计方法和总线数据输入方式的仿真,并进行电路板下载

演示验证。实验内容: 1.完成计数器设计

(1)写出设计框图、设计含有异步清零和计数使能的4位二进制加减可控计数器。要求:

流程和方法;(2)利用vhdl设计实现程序;(3)进行波形仿真验证;

(4)完成设计实验报告:将实验原理、设计过程、编译仿真波形和分析结果写进实验报

告。

篇三:西电eda大作业

eda实验报告

班级:021211班指导老师:杨明磊

实验一:quartus ii软件使用及组合电路设计

仿真

一、实验目的:

学习quartus ii软件的使用,掌握软件工程的建立、vhdl源文件的设计和波形仿真等

基本内容;

二、实验内容:

1. 四选一多路选择器的设计

首先利用quartusⅱ完成4选1多路选择器的文本编辑输入(mux41a.vhd)和仿真测试等

步骤,给出仿真波形。(1)、功能及原理

原理:数据选择器又称为多路转换器或多路开关,它是数字系统中常用的一

种典型电路。其主要功能是从多路数据中选择其中一路信号发送出去。所以它是一个多输入、

单输出的组合逻辑电路。

功能:当选择控制端s10=00时,输出y?a;s10=01时,输出y?b;s10=10时,输出y?c;

s10=11时,输出y?d。(2)、逻辑器件符号

(3)、vhdl语言

(4)、波形仿真

(5)、仿真分析

由波形可知:当s10=00时,y的波形与a相同;当s10=01时,y的波

形与b相同;当s10=10时,y的波形与c相同;当s10=11

时,y的波形与d相同;与所要实现的功能相符,源程序正确。

2、七段译码器程序设计仿真

(1)、功能及原理

7段数码是纯组合电路,通常的小规模专用ic,如74或4000系列的器件只能作十进制

bcd码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,

为了满足16进制数的译码显示,最方便的方法就是利

用vhdl译码程序在fpga或cpld中实现。实验中的数码管为共阳极,接有低电平的段发

亮。例如当led7s输出为 0010010 时,数码管的7个段:g、f、e、d、c、b、a分别接0、0、

1、0、0、1、0,于是数码管显示“5”。

(2)、逻辑器件符号

(3)、vhdl语言

(4)、波形仿真

(5)、仿真分析

由仿真波形可以直观看到,当a=“0000”时,led7s=1000000,数码管显示为0;a=“0001”

时,led7s=1111001,数码管显示为1;....依此可验证波形仿真结果完全符合预期,源程序

正确。

三、实验心得

在第一次上机实验中,我们通过对eda设计软件quartusⅱ使用,初步学会

了它的使用方法。在实验中我们编写程序,编译,进行时序仿真以验证程序对错等。在

完成vhdl的编辑以后,进行编译,结果出现了很多错误,在细心的检查之下,最终将vhdl

描述修改成功并且通过了编译,在编译过程中我了解到很多在书本上没有理解的知识。总的

来说,通过上机实验,我激发了对eda学习的兴趣,也对这门课程有了更深的理解,对eda

设计软件quarter ⅱ的使用也更加熟练。篇四:西电eda满分大作业

eda报告

题目 vhdl设计初步

学院电子工程学院

专业

学号

导师姓名朱燕

目录

第一章实验部分(流水

灯) ........................................................................... .. (3)

1、程序设

计: ........................................................................... . (3)

2、程序代

码 ............................................................................. .............. 错误!未定义书签。

3、程序调

试 ............................................................................. .............. 错误!未定义书签。

第二章习题部

分 ............................................................................. ................ 错误!未定义书签。习题

一.............................................................................. ....................... 错误!未定义书签。习题二.............................................................................. ....................... 错误!未定义书签。习题三.............................................................................. ....................... 错误!未定义书签。习题四.............................................................................. ....................... 错误!未定义书签。习题五.............................................................................. ....................... 错误!未定义书签。习题六.............................................................................. ....................... 错误!未定义书签。习题七.............................................................................. ....................... 错误!未定义书签。

引言

随着大规模集成电路技术和计算机技术的不断发展,在涉及通信、国防、航天、医学、工

业自动化、计算机应用、仪器仪表等领域的电子系统设计工作中,eda技术的含量正以惊人的

速度上升;电子类的高新技术项目的开发也逾益依赖于eda技术的应用。即使是普通的电子产

品的开发,eda技术常常使一些原来的技术瓶颈得以轻松突破,从而使产品的开发周期大为缩

短、性能价格比大幅提高。不言而喻,eda技术将迅速成为电子设计领域中的极其重要的组成

部分。

第一章实验部分(流水灯)

1、程序设计流程图:

2、模块说明

第一部分:分频器

因为主板是cyclong-ep16c6q240c8的主频是4m赫兹,如果直接当做clk信号,根本无

法看清流水灯的变化,所以需要做分频操作。仿照数电课本的例题中的分频器。

分频器的实体:

entity devide is

port(

clk :in std_logic;

clk_out:outstd_logic

);

end devide;

我们可以从程序中看到,输入时clk(外部主频时钟),输出是clk_out(分频后的时钟)。

(这是实体的器件图)

分频器的结构体:

process;用进程语言描述

begin

wait until clkevent and clk=1 if(count<3999999)then

count<=count+1;

clk_out<=0; else count<=(others=>0);

clk_out<=1;

我们可以从程序中看到wait until clkevent and clk=1这句是时钟来到意思,当count

计数小于3999999时,count自加1,且输出为零,只有当大于3999999时,产生一个高电平

脉冲。

接下来是对分频器的波形仿真:

从波形中我们可以看到分频器的工作.

第二部分:模8计数器

我们需要一个计数器来输出计数电频,作为下一步38译码器的输入信号,首先我们来看

这个器件的实体:

port(clk:instd_logic;

dout:outstd_logic_vector(2 downto 0) );

(这是器件的实体图)

输入端口是clk,是接入分频器的时钟信号,输出就是计数电平了。计数器的结构体:

architecture arc_m of m is signal count:std_logic_vector(2 downto 0); begin

process(clk) begin篇五:eda实验报告(西电) 《数字逻辑与系统设计》实验报告

目录

一、二、三、

设计任务与要求.............................................................................. ................ 2 流程图与示意图.............................................................................. ................ 3 设计思路及原理图.............................................................................. (4)

1、原理

图 ............................................................................. ................................ 4 2、总体思

路 ............................................................................. ............................ 4 3、状态转移

图 ............................................................................. ........................ 5 四、设计实现.............................................................................. . (6)

1、程

序 ............................................................................. .................................... 6 2、仿真波

形 ............................................................................. .......................... 10 3、引脚分

配 .............................................................................

.......................... 11 4、程序下

载 ............................................................................. .......................... 12 五、总结.............................................................................. . (13)

一、设计任务与要求

设计一个十字路口交通控制系统,其东西,南北两个方向除了有红、黄、绿灯指示是否

允许通行外,还设有时钟,以倒计时方式显示每一路允许通行的时间,绿灯,黄灯,红灯的

持续时间分别是40、5和45秒。

当东西或南北两路中任一道上出现特殊情况,例如有消防车,警车要去执行任务,此时

交通控制系统应可由交警手动控制立即进入特殊运行状态,即两条道上的所有车辆皆停止通

行,红灯全亮,时钟停止计时,且其数字在闪烁。当特殊运行状态结束后,管理系统恢复原

来的状态,继续正常运行。

二、流程图与示意图

三、设计思路及原理图

1、原理图

2、总体思路

本设计主要有两种模块,一种控制红黄绿灯的变化,数目为1,即jiaotongdeng。另一

种控制各种颜色灯的倒计时计数显示,数目为2个分别m45和m45_2。时钟接入实验箱上所

提供的1hz外部时钟。

其中灯的控制模块采用vhdl设计,分为计数、状态转移和输出三个进程。

其中5个状态分别为:

s4:1红亮1红亮(紧急) s0:1绿亮2红亮(40 s) s1:1黄亮2红亮(5 s) s2:1红

亮2绿亮(40 s) s3:1红亮2黄亮(5 s)

使能位为1时,灯在s0-s3之间转移;使能位为0时,即紧急状态时,状态转为s4,同

时程序保存此时的状态,待紧急状态解除后,恢复进入紧急状态时的状态。

m45计数器模块负责控制两个倒数计时器的工作,用vhdl实现。原理为每个方向的交通

灯计时为三个状态绿(40s)→黄(5s)→红(45s)循环。所以在内部用状态的转移为计数

器分别循环置数为39、4、44。实现循环计数39~0、4~0、44~0。

本设计中两个m45计数器的区别仅在于一个从绿灯状态开始,一个从红灯状态开始,由

于状态为循环,所以其他部分相同。

进入紧急状态时,两路都为红灯闪烁,同时计数器在“00”和”ff”两个状态闪烁。推

出紧急状态后,恢复进入紧急状态时的状态和计数。状态的恢复通过临时储存状态的两个变

量templ和temph 实现。具体实现见代码。

相关主题
文本预览
相关文档 最新文档