EDA实验三VHDL语言设计简单电路
EDA技术实用教程(潘松第5版)第3章-VHDL设计初步
库—STD库
VHDL定义了两个标准程序包,即STANDARD和 TEXTIO(文件输入/输出)程序包,它们都收入在 STD库中,可随时调用。由于STD库符合VHDL语言 标准,在应用中不必用打开库语句。即
LIBRARY
STD;
STD.STANDARD.ALL
是不必要的。
库— WORK库
WORK库是用户的VHDL设计的现行工作库,用 于存放用户设计和定义的一些设计单元和程序包。 WORK库自动满足VHDL语言标准,在实际调用中, 也不必显示预先说明,即不必在VHDL程序中明确 打开并指定。 基于VHDL所要求的WORK库的基本概念,利用 VHDL进行设计时,不允许在根目录下进行,而是 必须为此设定一个文件夹,用于保存所有此项目 的设计文件,VHDL综合器将此文件默认为WORK库。 还要注意的是,工作库并不是这个文件夹的名字, 而是一个逻辑名。综合器将指示器指向该文件夹 的路径。
库的用法
例:
LIBRARY
USE
IEEE;
IEEE.STD_LOGIC_1164.STD_ULOGIC;
USE
IEEE. STD_LOGIC_1164.RISING _EDGE;
表示向当前设计实体开放了IEEE. STD_LOGIC_1164程序包中的RISING_EDGE函数, 但由于此函数要用到IEEE. STD_ULOGIC,所以在 其前面加了一条USE语句,开放同一程序包中的这 一数据类型。
设计实体
结构体 (Architecture) (P62)
结构体用于描述设计实体的内部结构和实
体端口间的逻辑关系,在电路上相当于器件的内
部电路结构。结构体由信号声明部分和功能描述
语句部分组成。信号声明部分用于结构体内部使
EDA流水灯论文(VHDL)
滨江学院课程论文(可编程器件原理与应用)题目基于VHDL语言的流水灯设计学生姓名王秋阳学号20082305047院系滨江学院专业电子与信息工程指导教师刘建成二零一零年十二月三十日一、任务:采用ALTERA 公司的EPM7128SLC84-10芯片,通过VHDL 语言设计一个流水灯电路。
流水灯样式必须大于3种,且可以通过按键调节显示样式;可以通过按键调节流水灯变化快慢;当前流水灯样式和变化速度能够通过数码管显示出来;(附加:具有按键声)二、设计框图(框图说明)1MHZ 周期信号经过2个100分频,得到100HZ ,再经过1个10分频得到10HZ 信号,传给速度控制模块,得到需要的速度周期信号,然后传给样式选择模块,样式选择模块直接输出彩灯样式;控制模块通过接受两个按键信号,同时控制速度控制模块和样式选择模块;译码扫描模块通过判断控制模块,扫描数码管显示当前彩灯样式和彩灯变化速度;按键信号通过延时模块输出按键发生信号。
速度按键 样式按键控制模块速度控制样式选择译码和扫描数码显示彩灯显示1000HZ 信号100HZ 信号蜂鸣器三、原理图(CPLD内部原理说明)从原理图中可以看到,一共有8种模块,D触发器的作用是对按钮进行消抖,除D触发器之外的7个模块功能及作用如下:f100和f10分别是100和10的分频器,speed模块的作用是对彩灯变化速度进行控制,而style_switch模块的作用是对彩灯样式进行调节。
Control 模块接收按键信号对样式和速度进行总的控制。
Show模块是对速度值和样式值进行译码并进行扫描数码管,将当前样式和速度状态显示出来。
Delay模块则是对按键声的延时。
四、各个模块设计(波形仿真)1.f100模块功能:100分频波形仿真:VHDL代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity f100 is --100分频port(clk:in std_logic;sec:out std_logic);end entity f100;architecture getsec of f100 issignal secout : std_logic :='1';beginprocess(clk) isvariable count100: integer range 0 to 50;beginif clk'event and clk='1' thencount100:=count100+1;if count100=50 thensecout<=not secout;count100:=0;end if;end if;end process;sec<=secout;end architecture getsec;2.f10模块功能:10分频波形仿真:VHDL代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity f10 is –-10分频port(clk:in std_logic;sec:out std_logic);end entity f10;architecture getsec of f10 issignal secout : std_logic :='1';beginprocess(clk) isvariable count10: integer range 0 to 5;beginif clk'event and clk='1' thencount10:=count10+1;if count10=5 thensecout<=not secout;count10:=0;end if;end if;end process;sec<=secout;end architecture getsec;3.speed模块功能:根据DATE输入端的数值大小,产生不同频率的周期信号,从而达到控制彩灯变化速率的目的。
EDA课程设计---乐曲硬件演奏电路的VHDL设计
EDA课程设计题目:乐曲硬件演奏电路的VHDL设计一、 设计题目:乐曲硬件演奏电路的VHDL 设计二、 设计目标:1)能够播放“梁祝”乐曲。
2)能够通过LED 显示音阶。
3)具有“播放/停止”功能,并在此基础上实现“按键演奏”的电子琴功能。
三、 设计原理:1. 音乐基础知识一段简单乐谱由音调和节拍组成,音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。
音符的节拍我们可以举例来说明。
在一张乐谱中,我们经常会看到这样的表达式,如1=C 44、1=G 43……等等。
以43为例加以说明,它表示乐谱中以四分音符为节拍,每一小结有三拍。
比如:图1其中1 、2 为一拍,3、4、5为一拍,6为一拍共三拍。
1 、2的时长为四分音符的一半,即为八分音符长,3、4的时长为八分音符的一半,即为十六分音符长,5的时长为四分音符的一半,即为八分音符长,6的时长为四分音符长。
那么一拍到底该唱多长呢?一般说来,如果乐曲没有特殊说明,一拍的时长大约为400—500ms 。
我们以一拍的时长为400ms为例,则当以四分音符为节拍时,四分音符的时长就为400ms,八分音符的时长就为200ms,十六分音符的时长就为100ms。
2.原理图框图:图2.框图3.原理图说明音乐播放原理说明音符的频率由数控分频器模块Speakera产生。
ToneTaba模块从NoteTabs模块中输入的音符数据,将对应的分频预置数据传送给Speakera模块,并将音符数据送到LED模块显示音阶。
NoteTabs模块中包含有一个音符数据ROM,里面存有歌曲“梁祝”的全部音调,在此模块中设置了一个8位二进制计数器,作为音符数据ROM的地址发生器。
这个计数器的计数频率为4Hz,即每一个数值的停留时间为0.25秒。
例如:“梁祝”乐曲的第一个音符为“3”,此音在逻辑中停留了4个时钟节拍,即1秒钟时间,所对应的“3”音符分频预置数为1036,在Speakera的输入端停留了1秒。
VHDL 语言 数码管静态显示5080211 EDA课程设计
VHDL 语言数码管静态显示5080211 EDA课程设计Dennis静态扫描显示电路设计专业:自动化班级学号:姓名:Dennis20XX年 12 月 11 日1Dennis一、设计实验目的:在MAX+plusII软件平台上,熟练运用VHDL语言,完成静态扫描显示电路的VHDL语言编程、编译、综合、仿真,使用EDA实验箱,实现静态扫描显示电路的硬件功能。
二、设计实验说明及要求:1、静态扫描显示电路组成:计数器、显示译码器、扫描电路组成。
在静态扫描显示电路中最关键的是如何在每一个数码管静态显示固定的数字,除此之外,静态扫描显示电路需清零控制端\\启动控制端使静态扫描显示电路清零及启动。
2、静态扫描显示电路要在七个数码管实现静态显示每位同学的班级学号显示。
3、能够完成清零、启动功能。
三、数字时钟组成及功能:1、计数器:用来产生实现数码管分配;2、扫描显示译码器:完成对7字段数码管显示的控制;四、系统硬件要求:1、时钟信号为10MHz;2、FPGA芯片型号EPM7128SLC84-15、EP1K30TC144-3或EP1K100QC208-3;3、8个7段扫描共阴级数码显示管;4、按键开关;五、设计内容及步骤:1、设计思路:静态扫描显示电路的主要组成为:计数器、显示译码器、扫描电路组成。
我的学号为5080211,因为需要七个数码管,所以用七进制计数器即可,计数器从0到6计数,到6后归0,接着开始从0到6计数。
然后扫描电路根据每个时刻的计数器计数值,输出相应的数码管,从而选择控制,即sel2,sel1,sel0。
从试验箱的一排数码管从最右端向第七个数码管循环扫描。
例如:sel2,sel1,sel0为“000”则选择地的是最右边的数码显示管。
当扫描到一个数码管,根据此时需要输出的数值,利用显示译码器翻译为相应的数码管显示编码即可,比如要sel=“000”时,要输出的数值是“0100”,将“0100”,翻译为“1100110”给sel选中的数码管显示出来即可。
EDA实验报告
EDA实验报告班级:姓名:目录实验一:七段数码显示译码器设计 (1)摘要 (1)实验原理 (1)实验方案及仿真 (1)引脚下载 (2)实验结果与分析 (3)附录 (3)实验二:序列检测器设计 (6)摘要 (6)实验原理 (6)实现方案及仿真 (6)引脚下载 (7)实验结果与分析 (8)实验三:数控分频器的设计 (11)摘要 (11)实验原理 (11)方案的实现与仿真 (11)引脚下载 (12)实验结果及总结 (12)附录 (12)实验四:正弦信号发生器 (14)摘要 (14)实验原理 (14)实现方案与仿真 (14)嵌入式逻辑分析及管脚下载 (16)实验结果与分析 (17)附录 (18)实验一:七段数码显示译码器设计摘要:七段译码器是一种简单的组合电路,利用QuartusII的VHDL语言十分方便的设计出七段数码显示译码器。
将其生成原理图,再与四位二进制计数器组合而成的一个用数码管显示的十六位计数器。
整个设计过程完整的学习了QuartusII的整个设计流程。
实验原理:七段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用译码程序在FPGA\CPLD中来实现。
本实验作为7段译码器,输出信号LED7S的7位分别是g、f、e、d、c、b、a,高位在左,低位在右。
例如当LED7S 输出为“1101101”时,数码管的7个段g、f、e、d、c、b、a分别为1、1、0、1、1、1、0、1。
接有高电平段发亮,于是数码管显示“5”。
实验方案及仿真:I、七段数码显示管的设计实现利用VHDL描述语言进行FPGA上的编译实现七段数码显示译码器的设计。
运行QuartusII在G:\QuartusII\LED7S\下新建一个工程文件。
新建一个vhdl语言编译文件,编写七段数码显示管的程序见附录1-1。
EDA电子实训实验指导书
石河子大学本科毕业设计实验指导书基于EDA平台的电子实训实验设计与开发学生姓名贺权指导教师任玲所在学院机械电气工程学院专业电气工程及其自动化年级11级(1)班中国·新疆·石河子2015年6月目录一、软件工具的安装 (2)二、实验部分 (3)实验一组合逻辑3-8译码器 (3)实验二汽车尾灯控制电路 (11)实验三、基于VHDL语言的数字秒表电路 (15)一、软件工具的安装本实验使用的是Quartus II 9.0,该软件可运行在winxp/win7/win8(包括兼容模式)等系统下,下载安装破解方法如下:1.在Altera公司官网上下载Quartus II 9.0的安装文件。
其中包括Quartus II 9.0的安装文件和ip库。
2.开始安装,win8以下的可以通过解压后得到安装文件,win8以上的直接双击打开就行,先安装90_quartus_windows,然后是90_ip_windows。
默认装在C盘,确保空间足够。
3.软件可免费试用30天。
鼓励购买正版,破解方法可百度。
4.用Quartus_II_9.0_b151破解器.exe破解C:\altera\90\quartus\bin下的sys_cpt.dll文件(运行Quartus_II_90_b151破解器.exe后,首先要点击“浏览”选中sys_cpt.dll,安装默认的sys_cpt.dll路径是在C:\altera\90\quartus\bin下,选中sys_cpt.dll后再点击“应用”。
很多用户上来就点击“应用”,实际上并没有破解这个软件)。
5.把license.dat里的XXXXXXXXXXXX 用您老的网卡号替换(在Quartus II7.2的Tools菜单下选择License Setup,下面就有NIC ID)。
6.在Quartus II 9.0的Tools菜单下选择License Setup,然后选择Licensefile,最后点击OK。
EDA实验三组合逻辑电路设计(一)--编译码器设计
西安邮电学院实验中心实验报告院系电子工程学院班级学号姓名成绩教师签字实验日期实验名称组合逻辑电路设计(一)--编译码器设计_______________________________________________________一、实验目的二、实验所用仪表及主要器材三、实验原理简述四、实验测量记录:(如数据、表格、曲线、计算等)五、实验遇到的问题及解决办法:(余留问题,体会等)一、实验目的(1)熟悉组合逻辑电路的VHDL描述方法。
(2)掌握利用CPL器件实现组合逻辑数字电路的方法和过程。
(3)熟练掌握“case”语句与“if…else…”语句的用法。
二、实验所用仪表及主要器材PC,可编程逻辑实验电路板,下载线,USB电源线,双踪示波器,数字万用表,导线若干。
三、实验原理简述应用VHDL设计简单的逻辑电路四、实验内容在MAX+PULSII环境下,用VHDL语言按照输入—>编译—>仿真。
(1)8421BCD码转换为余3码转换表.在MAX+plusII 环境下,用VHDL 语言描述下列逻辑电路,并编译,仿真。
程序仿真结果:(2)设计一个优先编码器。
程序实现如下:仿真结果:五、实验结果见上述内容。
六、实验心得在本次实验中我学会了使用MAX+PLUSII软件的文本编程的方式设计电路。
在本次实验的文本编译环节中出现不少问题:(1)保存时文件名与实体名不一致,导致程序编译结果不正确。
(2)写程序时没有按照语法规则编写,使得文件编译频繁报错,标点的错误也会导致整个程序无法编译。
经过本次实验,加深了我对VHDL的文本编译设计的理解,今后我应该多练习MAX+PLUSII软件以减少错误。
EDA实验报告:基于VHDL语言的交通灯控制系统设计与实现
图为k1=0时的输出状态s1,输出恒为011110。即亮灯为R1,y2。保持时间1S。
(k2=0)
上图为k2=0时的输出状态s2,输出恒为101011。即亮灯为G1,R2。保持时间2S。
(k3=0)
上图为k3=0时的输出状态s3,输出恒为110011。即亮灯为R1,G2。保持时间1S。
四、小结及心得体会
else
if counter<5 then
next_state<=s3;
else
next_state<=s0;
end if;
end if;
end if;
end if;
end if;
end case;
end process;
ouput:process(current_state)
begin ——显示程序
begin
u1: jiaotongdeng port map(
clk=>clki,
k0=>k0,
k1=>k1,
k2=>k2,
k3=>k3,
r1=>r1,r2=>r2,g1=>g1,g2=>g2,y1=>y1,y2=>y2
);
u2: div port map(clk=>clk1,clk_out=>clki);
end if;
end if;
end if;
when s3=>
if k0='0' then
next_state<=s0;
else
if k1='0' then
next_state<=s1;
(整理)可编程逻辑器件及EDA技术实验报告.
可编程逻辑器件及EDA技术实验报告一、组合逻辑电路设计数字逻辑电路按照逻辑功能的特点分为两类,一类是组合逻辑电路,简称为组合电路;另一类是时序逻辑电路,简称为时序电路。
组合电路的特点是电路任意时刻输出状态只取决该时刻的输入状态,而与该时刻钱的电路状态无关。
1、逻辑门电路设计实验原理:逻辑门电路包括基本逻辑门电路和符合逻辑门电路。
VHDL语言可以直接支持的逻辑运算符共有七种逻辑运算,它们是:NOT 逻辑非AND 逻辑与NAND 逻辑与非OR 逻辑或NOR 或非XOR 异或XNOR 异或非实验内容:例3-2的参考程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee. std_logic_unsigned.all;entity example3_2 isport(a,b,c,d:in std_logic;f:out std_logic_vector(3 downto 0));end example3_2;architecture behavioral of example3_2 isbeginf(0)<=(a and b)or(b and c)or(not b and not c);f(1)<=(a and b and c)or not(not a or not b or not c);f(2)<=(a xor b xor c)or(not(d)and(a or c));f(3)<=not ((a and b)xor (c and d))or((a and b and d)xor(b and c and d));end behavioral;实验分析:用逻辑运算符是实现了相对较为复杂的逻辑运算。
参考程序中使用括号来强制控制逻辑运算的优先级,对于用VHDL设计,这种写法是必修的。
EDA_VHDL_数据采集电路和简易存储示波器设计
EDA数据采集电路和简易存储示波器设计(1)实验目的:主LPM RAM模块的VHDL组件定制,调用和使用;熟悉的A / D 和D / A与FPGA接口电路的设计;了解HDL文本描述和原理组合设计方法。
完成第一个文本输入元素ADCINT,组件CNT10B VHDL源设计,图形输入元素ADCINT,组件CNT10B,组件RAM8B连接原理图绘制符合要求,如图1 所示。
(2)试验原理:FPGA设计项目是使用直接控制0809对模拟信号进行采样,那么好的8位的二进制数据被转换迅速在存储器中,完成后的一个或几个周期的采样的模拟信号),供应链管理(SCM )系统(例如,由外部电路的存储器读出处理中的样本数据。
样品内存在许多方面可以实现:1,外部随机存取存储器RAM。
其优点是大容量内存,缺点是需要外部芯片和RAM的读取和写入速度较低;电缆过长和FPGA,尤其是在存储数据时,需要解决的递增,并进一步影响数据写入速度。
2 FPGA内部EAB / ESB和等等。
Altera的FPGA器件包含类似EAB模块。
由EAB模块具有高速FIFO。
FIFO是更适合于作为一个高速的A / D采样的数据存储。
基于以上的讨论中,A / D采样电路系统可以被绘制在图1中所示的电路原理图。
其中的成员函数描述如下:1。
组件ADCINT。
见程序1,ADCINT,采样状态机控制0809,VHDL描述和含义的输入和输出信号具有相同的问题,26。
2。
组件CNT10B。
见CNT10B RAM 的9位地址计数器,这个计数器时钟CLK0 WE 控制:当WE = '1',CLK0 = LOCK0; LOCK0 从0809 采样控制器LOCK0(每产生一个锁存脉冲采样周期),然后在采样允许阶段,RAM的地址锁存时钟in clock = CLKOUT = LOCK0; ,0809脉冲通过每一个LOCK0收集到数据,该数据被锁存到的RAM(RAM8B模块)。
VHDL语言在EDA设计中的应用
任何 文本编 辑器都 可以进行 , 可 以 也
用 专 用 的 VHD L编 辑 环 境 , 件保 存 为 .h 文 v d文 件. 3 12 功 能 仿 真 文 件 调 入 VHDL仿 真 软 件 ( u ru .. Q ats I) 行 功 能 仿 真 , 查 逻 辑 功 能 是 否 正 确 ( 叫 前 仿 真 , I进 检 也
[ 键词] 关 VHDL Quru ; DA  ̄ at s IE I [ 图 分 类 号 ] P 1 中 T 32 [ 献标识码] 文 A [ 章 编 号 ] 08 6 7 (0 7 O一 O 8 一 O 文 1 0 - 0 22 0 )6 O3 2
1 引 言
随 着 半 导 体 技 术 的 迅 速 发 展 , 现 代 数 字 系 统 设 计 在 中 , 场 可 编 程 器 件 ( P A 和 C L 的 使 用 越 来 越 广 现 FG P D)
的原 因.
பைடு நூலகம்
最后 , VHD L所 给 出 的 逻 辑 的模 拟 与 调 试 为 设 计 工
解决 方案 均采 用 计算 机 自顶 向下 的设 计 方 式 : 底 层 设 计 在
时对 逻辑 进 行 必要 的描 述 , 依 赖 特 定 的 软 件 执 行 逻 辑 优 并
实验三 3-8译码器的设计
实验三3-8译码器的设计
一.实验目的:
1、通过一个简单的3-8译码器的设计,让学生掌握组合逻辑电路的设计方法。
2、初步掌握VHDL语言的常用语句。
3、掌握VHDL语言的基本语句及文本输入的EDA设计方法。
二、设计要求
设计一个3—8译码器使其满足如下真值表:
1.采用原理图输入法利用门电路进行设计并实现仿真、下载。
2.利用VHDL语言输入进行设计并进行仿真。
三、预习要求:
1.熟悉3-8译码器原理
2.根据原理绘制原理图。
3.初步写出VHDL语言程序。
四、实验记录
1.原理图及源程序。
2.仿真波形。
(两种方法)
3.延时分析。
(两种方法)。
EDA课程设计(基于VHDL语言的8位数字密码锁设计)
东华理工大学机械与电子工程学院基于VHDL语言的8位数字密码锁设计一、摘要:数字控制的电子密码锁已经广泛应用在办公室、公司、宾馆、小区住宅等场所。
EDA技术的应用引起了电子产品系统开发的革命性变革。
利用先进的EDA工具,基于硬件描述语言,可以进行系统级数字逻辑电路的设计。
本文简述了VHDL语言的功能及其特点,并以8位串行数字锁设计为例,介绍了在QUARTUS II 6.0开发软件下,利用VHDL硬件描述语言设计数字逻辑电路的过程和方法。
关键词: QUARTUS II 6.0 EDA 电子密码锁(电子设计自动化) VHDL语言语言设计串行密码锁硬件描述语言数字逻辑电路Based on VHDL language 8 digits combination lock design Digital control of electronic locks has widely used in office, companies, hotels, residential area and etc.EDA technology application caused a electronic product development system of the revolutionary transformation. Using advanced EDA tools, hardware based description language, can undertake system in digital logic circuit design. This paper describes the function and characteristics of VHDL language, and eight serial number lock design as an example, this paper introduces QUARTUS II 6.0 software development in of VHDLhardware design of digital logic circuit process and method.Keywords: QUARTUS II 6.0, EDA (electronic design automation), electronic locks and VHDL language, language design, serial, locks and hardware description language, digital logic circuit二、引言:电子密码锁系统主要由电子锁体、电子密匙等部分组成,一把电子密匙里能存放多组开锁密码,用户在使用过程中能够随时修改开锁密码,更新或配制钥匙里开锁密码。
EDA数字电路设计实验报告范文
一、实验目的通过本实验的学习,使学生掌握VHDL 中文件IO、配置、同步和异步设计等知识,训练VHDL 的编程能力,培养数字电路设计的基本技能,为今后继续学习大规模数字系统设计奠定基础。
二、实验内容1、分析示例代码,掌握VDHL 文件IO 的编写方法。
2、分析示例代码,掌握VDHL 配置的使用以及编写方法。
3、按照要求修改文件IO 和配置的示例代码。
4、根据同步和异步设计的不同,按照要求编写代码。
三、实验原理、方法和手段复杂设计,例如CPU,需要给它执行的指令。
以验证其正确性。
执行的结果也可以保存在文件中,供以后分析用。
VHDL 提供了文件读写功能,可以将测试激励预先保存在文件中,然后读入进行仿真。
文件读写的功能保存在IEEE 库的std.textio 和 std_logic_textio 包中,在文件头包含这些库,包,就可以调用文件读写函数。
文件I/O 关键语句:1、使用IEEE 文件读写包:USE ieee.std_logic_textio.all;USE std.textio.all;2、定义文件数据类型file results: text open write_mode is “results.txt";file mem_data: text;3、打开文件file_open(mem_data, "mem_data.txt", read_mode);4、定义行变量variable inline: line;5、读入一行数据到行变量readline(mem_data, inline);6、读行变量数据read(inline, ram_mem_temp);7、写数据到行变量write(OneLine,addr,right,10);8、写行变量到文件中writeline(results,OneLine);9、类型转换To_stdlogicvector(ram_mem_temp);--将ram_mem_temp 转换成std_logic_vector 型变量conv_integer(addr);--将addr 转换成interger 型变量1),常用的数据类型,函数,过程,模块,测试激励可以放在一个包中,以方便重用。
EDA 第3章 VHDL语言 3.3全加器的VHDL描述
3.3 全加器的VHDL描述
3.3.2 CASE语句
1. CASE语句
CASE <表达式> IS When <选择值或标识符> => <顺序语句>; ... ; <顺序语句> ; When <选择值或标识符> => <顺序语句>; ... ; <顺序语句> ; ...
WHEN OTHERS => <顺序语句>;
component元件名port端口名表endcomponent文件名33vhdl333例化语句在组件映射部分其中的端口名是在元件组件定义语句中的端口名表中已定义好的元件端口的名字或者说是顶层文件中待连接的各个元件本身的端口名
3.3 全加器的VHDL描述
目的:进一步学习VHDL的语法
重点:1、CASE语句的用法
3.3 全加器的VHDL描述
【例3-17】 LIBRARY IEEE ; --或门逻辑描述 USE IEEE.STD_LOGIC_1164.ALL; ENTITY or2a IS PORT (a, b :IN STD_LOGIC; c : OUT STD_LOGIC ); END ENTITY or2a; ARCHITECTURE one OF or2a IS BEGIN c <= a OR b ; END ARCHITECTURE one ;
3.3 全加器的VHDL描述
3.3.1 半加器描述 –真值表描述方法
【例3-16】 LIBRARY IEEE; --半加器描述(2):真值表描述方法 USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS PORT (a, b : IN STD_LOGIC; co, so : OUT STD_LOGIC); END ENTITY h_adder; ARCHITECTURE fh1 OF h_adder is SIGNAL abc : STD_LOGIC_VECTOR(1 DOWNTO 0) ; --定义标准逻辑位矢量数据类型 BEGIN abc <= a & b ; --a相并b,即a与b并置操作 PROCESS(abc) BEGIN CASE abc IS --类似于真值表的CASE语句 WHEN "00" => so<='0'; co<='0' ; WHEN "01" => so<='1'; co<='0' ; WHEN "10" => so<='1'; co<='0' ; WHEN "11" => so<='0'; co<='1' ; WHEN OTHERS => NULL ; END CASE; END PROCESS; END ARCHITECTURE fh1 ;
EDA课程设计——基于VHDL语言的数字时钟设计(可编辑)
EDA课程设计——基于VHDL 语言的数字时钟设计(可编辑)(文档可以直接使用,也可根据实际需要修改使用,可编辑推荐下载)一、设计要求 0二、设计原理及框图 01、设计原理 02、结构框图 0三、设计过程 (1)1、模块化设计 (1)2、顶层文件生成 (2)四、仿真调试过程 (3)1、各模块时序仿真图 (3)2、仿真过程中遇到的问题 (4)五、设计体会及收获 (4)一、设计要求1、稳定的显示时、分、秒。
2、当电路发生走时误差时,要求电路有校时功能。
3、电路有整点报时功能。
报时声响为四低一高,最后一响高音正好为整点。
二、设计原理及框图1、设计原理系统框图由六个模块组成,分别为:秒、分、时计数模块,整点报时模块,LED动态显示扫描模块,调时控制模块组成。
其工作原理是:基准脉冲输入信号同时加到秒、分、时、分隔符的脉冲输入端,采用并行计数的方式,秒的进位接到分的使能端上,秒的使能借到分隔符的使能上,分得接到时的使能端上,完成秒、分、时和分隔符的循环计数。
整点报时是根据分的A、B输出同时为0时,整点报时模块输出高电平控制报时。
LED显示扫描模块根据输入的扫描信号CKDSP轮流选通秒、分、时、分隔符的8位八段数码管,LED显示译码器完成计数器输出的BCD的译码。
2、结构框图三、设计过程1、模块化设计(1)秒计时模块秒计时模块由一个60位计数器为主体构成,其输入输出端口组成为:Clk:计时时钟信号Reset:异步清零信号Setmin:分钟设置信号Enmin:使能输出信号Daout[6:0]:BCD码输出(2)分计时模块分计时模块由一个60位计数器为主体构成,其输入输出端口组成为:Clk、clk1:计时时钟信号Reset:异步清零信号Sethour:小时设置信号Enmin:使能输出信号Daout[6:0]:BCD码输出(3)时计时模块时计时模块由24位计数器为主体构成,其输入输出端口组成为:Clk:计时时钟信号Reset:异步清零信号Daout[6:0]:BCD码输出(4)显示模块系统时间输出由六个七段数码管显示。
vhdl实验
目录第一部分实验思路 (2)第二部分问题和解决方案 (3)第三部分技术的认识 (3)第四部分课程的建议 (4)第五部分程序源代码 (4)--实验二(8位可逆计数器) (4)--实验三(任意整数分频电路设计) (6)--实验四(多功能循环彩灯控制电路设计) (7)--实验五(8段数码管动态扫描显示控制) (9)--实验六(频率计设计) (13)--实验七(矩阵式键盘扫描与键码检测) (17)--实验八(LPM的使用) (20)--实验九(多功能电子钟设计) (20)--实验十(SPI总线时序模拟) (29)第一部分实验思路1.1实验二(8位可逆计数器)分两个进程,一个记录手动脉冲个数,另一个记录脉冲源脉冲个数,最后以方式选择开关决定显示哪个个数。
1.2实验三(任意整数分频电路设计)分两个进程,一个记录上升沿个数,另一个纪录下降沿个数,当计数总和等于预分频数时,两个进程的标识位取反,最后将两个标识位的异或送给输出。
1.3实验四(多功能循环彩灯控制电路设计)确定四种循环方式,分别为1、3、5、7,2、4、6、8,7、5、3、1,8、6、4、2。
用case,when语句,同时计数自动加一。
1.4实验五(8段数码管动态扫描显示控制)设置一个顶层文件,三个模块文件(分频模块,计数模块,显示模块)。
分频是将20Mhz分成周期为1/100s和100us的方波。
计数是记录有多少个1/100s。
显示是以100us为步调扫描数码管以显示计数。
1.5实验六(频率计设计)设置一个顶层文件,三个模块文件(分频模块,计数模块,显示模块)。
分频是将20Mhz分成周期为1s和1ms的方波。
计数是记录在1s内待测脉冲的周期数。
显示是以1ms为步调扫描数码管以显示计数。
1.6实验七(矩阵式键盘扫描与键码检测)设立四个进程,一个完成由20Mhz到周期为10ms,100us的转换(10ms用于扫描键盘,100us 用于扫描数码管以显示键码)。
EDA实验
一、实验部分实验一仪器的熟悉及半加器的设计一、实验内容:(1)熟悉实验台(2)用VHDL设计半加器及或门,并给出程序设计、软件编译、仿真分析、硬件测试及详细实验过程。
(3)根据以上的实验内容写出实验报告,包括程序设计、软件编译、仿真分析和详细实验过程;给出程序分析报告、仿真波形图及其分析报告。
实验二简单组合电路的设计一、实验目的:熟悉Max+plusⅡ的VHDL文本设计流程全过程,学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。
二、实验内容1:利用MAX+plusⅡ完成2选1多路选择器的文本编辑输入(mux21a.vhd)和仿真测试等步骤,给出下图所示的仿真波形。
三、实验内容2:将多路选择器看成是一个元件mux21a,利用元件例化语句并将此文件放在同一目录。
以下是参考程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUXK ISPORT (a1,a2,a3,s0,s1 : IN STD_LOGIC;outy : OUT STD_LOGIC );END ENTITY MUXK;ARCHITECTURE BHV OF MUXK ISCOMPONENT MUX21APORT ( a,b,s : IN STD_LOGIC;y : OUT STD_LOGIC);END COMPONENT ;SIGNAL tmp : STD_LOGIC;BEGINu1 : MUX21A PORT MAP(a=>a2,b=>a3,s=>s0,y=>tmp);u2 : MUX21A PORT MAP(a=>a1,b=>tmp,s=>s1,y=>outy);END ARCHITECTURE BHV ;对上例分别进行编译、综合、仿真。
并对其仿真波形作出分析说明,并画出电路结构,说明该电路的功能。
四、实验报告:根据以上的实验内容写出实验报告,包括程序设计、软件编译、仿真分析和详细实验过程;给出程序分析报告、仿真波形图及其分析报告。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三VHDL 语言设计简单电路
一、实验目的
1、学习非门、与门、与非门、或门、或非门、异或门和异或非门的VHDL描述;
2、学习VHDL的文字规范描述、程序书写方法和Quartus II 6.0功能仿真;
二、实验内容
1、参考教材3.1.5节,用VHDL分别设计并仿真基本门电路1位全加器f_adder.vhd 和二选一数据选择器mux21.vhd。
分析比较输出的波形仿真图并验证程序的正确性。
三、实验步骤
1。
新建一个工程
2/新建vhdl文件
3/输入自己编写好的程序
4/设置顶层实体名,进行综合编译;
5/建立波形文件
6/导入引脚7/设计波形
8/编译
9得到结果波形
10根据波形图可以分析得出仿真结果符合图中所要求的结果
二选一数据选择器;
输入程序;
2/设置顶层实体名3/进行编译
4.创建波形文件
5.进行编译得出结果波形
6由图中波形可知,Y是二选一数据选择器的结果
实验内容二、检查下面程序,改正错误之处LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY shifter IS
PORT(d,clk:IN STD_LOGIC;
q:OUT STD_LOGIC_VECTOR(0 TO 3));
END shifter;
ARCHITECTURE#shifter OF shift IS
BEGIN
PROCESS(clk)
BEGIN
IF (clk'EVENT AND clk='1')THEN
q0: =d;
q1: =q0;
q2: =q1
q3: =q2;
END IF;
END PROCESS;
END#shifter;
改错后
程序二:
Use IEEE.STD_LOGIC_1164.ALL; Entity one-bit-adder is
Port(A:IN STD_LOGIC;
B:IN STD_LOGIC;
S:OUT STD_LOGIC;
C_OUT: OUT STD_LOGIC
)
END one-bit-adder;
Architecture sll of one_bit_adder is Begin
S:=A XOR BXOR C_IN;
C_out<=A and B or C_in and A xor B; END SLL
改错后:
程序三
LIBRARY IEEE;
Use ieee.std_logic_1164.all; Entity ABC is
Port(A,B,C:in std_logic;
F,Q:out std_logic); End;
Architecture ABC_arch of ABC is VARIABLE temp:intergen; Begin
Process(A,B,C)
BEIGN
If(A=’1’)AND(B=’1’)THEN
F:=”1”;
Elsif(B=’1’)and(C=’1’)then
F:=”1”;
Elsif(A=’1’)and(C=’1’)then
F:=”1”;
Else
F:=”0”;
End if;
Temp<=’1110101’;
Temp srl 1;
q<=temp;
end XYZ_arch;。