EDA实验三VHDL语言设计简单电路
- 格式:doc
- 大小:1.51 MB
- 文档页数:13
滨江学院课程论文(可编程器件原理与应用)题目基于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设计一、 设计题目:乐曲硬件演奏电路的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课程设计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实验报告班级:姓名:目录实验一:七段数码显示译码器设计 (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平台的电子实训实验设计与开发学生姓名贺权指导教师任玲所在学院机械电气工程学院专业电气工程及其自动化年级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。
西安邮电学院实验中心实验报告院系电子工程学院班级学号姓名成绩教师签字实验日期实验名称组合逻辑电路设计(一)--编译码器设计_______________________________________________________一、实验目的二、实验所用仪表及主要器材三、实验原理简述四、实验测量记录:(如数据、表格、曲线、计算等)五、实验遇到的问题及解决办法:(余留问题,体会等)一、实验目的(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技术实验报告一、组合逻辑电路设计数字逻辑电路按照逻辑功能的特点分为两类,一类是组合逻辑电路,简称为组合电路;另一类是时序逻辑电路,简称为时序电路。
组合电路的特点是电路任意时刻输出状态只取决该时刻的输入状态,而与该时刻钱的电路状态无关。
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数据采集电路和简易存储示波器设计(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 语言设计简单电路
一、实验目的
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;。