VHDL实验报告——8-3优先编码器(免费哦~)
- 格式:doc
- 大小:142.50 KB
- 文档页数:2
实验三译码器与编码器的设计与仿真一、实验内容1.参照芯片74LS138的电路结构,用VHDL语言设计3-8译码器;2.参照芯片74LS148的电路结构,用VHDL语言设计8-3优先编码器。
二、电路功能介绍1.74148:8-3优先编码器(8 to 3 Priority Encoder)用途:将各种输入信号转换成一组二进制代码,使得计算机可以识别这一信号的作用。
键盘里就有大家天天打交道的编码器,当你敲击按键时,被敲击的按键被键盘里的编码器编码成计算机能够识别的ASCII码。
译码器与编码器的功能正好相反。
2.74138:3-8译码器(3 to 8 Demultiplexer),也叫3-8解码器用途:用一组二进制代码来产生各种独立的输出信号,这种输出信号可以用来执行不同的工作。
显示器中的像素点受到译码器的输出控制。
逻辑框图:用逻辑符号(Symbol)来解释该电路输入与输出信号之间的逻辑关系,既省事又直观。
如下图所示。
一、编码器1.VHDL实现library IEEE;use IEEE.std_logic_1164.all;entity pencoder isport ( i7,i6,i5,i4,i3,i2,i1,i0:in STD_LOGIC;a2,a1,a0,idle:out STD_LOGIC);解码信号输出端低电平有效代码输入端使能输入端end pencoder;architecture pencoder_arch of pencoder issignal h:STD_LOGIC_VECTOR(7 downto 0);beginh(7)<=i7;h(6)<=i6 and not i7;h(5)<=i5 and not i6 and not i7;h(4)<=i4 and not i5 and not i6 and not i7;h(3)<=i3 and not i4 and not i5 and not i6 and not i7;h(2)<=i2 and not i3 and not i4 and not i5 and not i6 and not i7;h(1)<=i1 and not i2 and not i3 and not i4 and not i5 and not i6 and not i7;h(0)<=i0 and not i1 and not i2 and not i3 and not i4 and not i5 and not i6 and not i7;idle<=not i0 and not i1 and not i2 and not i3 and not i4 and not i5 and not i6 and not i7;a0<=h(1) or h(3) or h(5) or h(7);a1<=h(2) or h(3) or h(6) or h(7);a2<=h(4) or h(5) or h(6) or h(7);2.波形图:3.逻辑图:4.用途:将各种输入信号转换成一组二进制代码,使得计算机可以识别这一信号的作用。
实验4 8-3编码器的设计一、实验目的学习采用VHDL设计8-3编码器,并使用MAX+plus Ⅱ进行仿真。
二、实验条件1、PC机一台。
2、开发软件:Max+plusⅡ。
3、实验设备:GW48-CK EDA实验开发系统。
4、选用芯片:ACEX系列EP1K30TC144-3。
三、实验原理:编码器可将2N个分离的信息代码以N个二进制码来表示。
编码器常常应用于影音压缩或通信方面,以达到精简传输量的目的。
可以将编码器看成压缩电路,译码器看成解压缩电路。
传送数据前先用编码器压缩数据后再传送出去,在接收端则由译码器将数据解压缩,还原为原来的数据。
这样,在传送过程中,就可以以N个数码来代替2N个数码的数据量,以提升传输效率。
编码器又分为普通编码器和优先级编码器。
优先级编码器常用于中断的优先级控制,如图1所示,74LS148是一个8输入,3位二进制码输出的优先级编码器,表1为74LS148真值表。
当某一个输入有效时,就可以输出一个对应的3位二进制编码。
另外,当同时有几个输入有效时,将输出优先级最高的那个输入所对应的二进制编码。
图1 8-3编码器74LS148管脚图表 1 74LS148真值表四、实验步骤1、按照Max+plusⅡ的使用步骤,参考74LS148的相关资料,利用MAX+plusⅡ完成8-3编码器的文本输入和仿真等步骤,给出VHDL程序及仿真波形。
2、在GW-48实验系统上下载验证,记录管脚设置。
五、实验报告:根据以上的实验内容写出实验报告,程序设计;给出程序分析报告、仿真波形图及其分析报告。
六、参考资料1、参考程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ENCODE8_3 ISPORT (A :IN STD_LOGIC_VECTOR(7 DOWNTO 0);Y :OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END ENTITY ENCODE8_3;ARCHITECTURE ART OF ENCODE8_3 ISBEGINWITH A SELECTY<="000"WHEN"11111110","001"WHEN"11111101","010"WHEN"11111011","011"WHEN"11110111","100"WHEN"11101111","101"WHEN"11011111","110"WHEN"10111111","111"WHEN"01111111","000"WHEN OTHERS;END ARCHITECTURE ART;2、波形仿真结果图2 波形仿真图3、管脚参考设置图3 管脚参考设置。
Verilog HDL 之直流电机PWM控制一、实验前知识准备在上一篇中总结了步进电机的控制,这次我将学习一下直流电机的控制,首先,我们简要了解下步进电机和直流电机的区别。
(1)步进电机是以步阶方式分段移动,直流电机通常采用连续移动的控制方式。
(2)步进电机采用直接控制方式,它的主要命令和控制变量都是步阶位置;直流电机则是以电机电压为控制变量,以位置或速度为命令变量。
(3)直流电机需要反馈控制系统,他会以间接方式控制电机位置。
步进电机系统多半以“开环方式”进行操作。
1、什么是直流电机输出或输入为直流电能的旋转电机,称为直流电机,它是能实现直流电能和机械能互相转换的电机。
当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。
2、什么是PWMPWM(脉冲宽度调制)是一种模拟控制方式,其根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。
3、开发平台中直流电机驱动的实现开发板中的直流电机的驱动部分如图1.1所示。
利用FPGA设计一个0、1组成的双极性PWM发生器。
图1.1 直流电机的驱动部电路二、实验平台Quartus II 7.2 集成开发环境、SOPC-MBoard板、ByteBlaster II 下载电缆三、实验目标1、了解直流电机PWM的控制方法。
2、具有调速功能。
四、实验实现详细实现步骤请参考【连载】FPGA Verilog HDL 系列实例--------8-3编码器1、在设计文件中输入Verilog代码。
66 endmodule2、分析思考:(1)如何控制顺时针转和逆时针转?(2)速度的大小如何控制的?第38行~第53行:由2个引脚控制生成双极性PWM发生器。
结论:(1)以MA_r[0]为准,当状态0的时间大于状态1的时间时,电机逆时针转动;反之,电机顺时针转动。
Xxxxx学院《EDA技术》课程报告设计题目:8线-3线优先编码器班级:应用电子1101班姓名:学号:指导老师:日期:目录一、8-3优先编码器设计原理分析 (3)二、8-3优先编码器模块的源程序 (3)三、8-3优先编码器仿真结果 (4)四、设计总结和心得体会 (5)五、参考资料 (5)一、8-3优先编码器设计原理分析8-3优先编码器输入信号为din0,d in1,din2,din3,din4,din5,din6和din7,输出信号为out2、out1、out0。
输入信号中din7的优先级别最低,依次类推,din0的优先级别最高。
也就是说若din0输入为1(即为高电平)则无论后续的输入信号怎么样,对应的这种状态一样,如若din0输入为0(即为低电平)则看优先级仅次于din0的din1状态决定,依次类推。
因为din0到din7共8中状态,可以用3位二进制编码来表示。
8-3优先编码器真值表如下表所示。
表1 8-3优先编码器真值表二、8-3优先编码器模块的源程序8-3优先编码器由VHDL程序来实现,VHDL语言描述如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY coder ISPORT ( din : IN STD_LOGIC_VECTOR(0 TO 7);output : OUT STD_LOGIC_VECTOR(0 TO 2);EANABLE: in std_logic );END coder;ARCHITECTURE behav OF coder ISSIGNAL SINT : STD_LOGIC_VECTOR(4 DOWNTO 0);BEGINPROCESS (din)BEGINIF (EANABLE='0') THENIF (din(0)='1') THEN output <= "000" ;ELSIF (din(1)='1') THEN output <= "100" ;ELSIF (din(2)='1') THEN output <= "010" ;ELSIF (din(3)='1') THEN output <= "110" ;ELSIF (din(4)='1') THEN output <= "001" ;ELSIF (din(5)='1') THEN output <= "101" ;ELSIF (din(6)='1') THEN output <= "011" ;ELSE output <= "111" ;END IF ;ELSE output <="ZZZ";END IF;END PROCESS ;END behav;三、8-3优先编码器仿真结果8-3优先编码器由VHDL程序实现后,其仿真图如图2-1所示。
译码器与编码器的设计与仿真
一、实验内容
1.参照芯片74LS138的电路结构,用逻辑图和VHDL语言设计3-8译码器;
2.参照芯片74LS148的电路结构,用逻辑图和VHDL语言设计8-3优先编码器。
二、电路功能介绍
1.74148:8-3优先编码器(8 to 3 Priority Encoder)
用途:将各种输入信号转换成一组二进制代码,使得计算机可以
识别这一信号的作用。
键盘里就有大家天天打交道的编码器,当你敲击按键时,被敲击的按键被键盘里的编码器编码成计算机能够识别的ASCII码。
译码器与编码器的功能正好相反。
逻辑框图
逻辑功能表
逻辑表达式和逻辑图:由你来完成。
2.74138:3-8译码器(3 to 8 Demultiplexer),也叫3-8解码器
用途:用一组二进制代码来产生各种独立的输出信号,这种输出
信号可以用来执行不同的工作。
显示器中的像素点受到译码器的输出控制。
逻辑框图:用逻辑符号(Symbol)来解释该电路输入与输出信号
之间的逻辑关系,既省事又直观。
如下图所示。
逻辑功能表:用真值表来定量描述该电路的逻辑功能。
这个表是设计3-8译
码器的关键;74138的逻辑功能表如下:
注:使能端G1是高电平有效;
使能端G2是低电平有效,G2 = G2A AND G2B。
姓名学号实验日期成绩XXX XXXXXXX年月日实验三基本组合逻辑电路的PLD实现(2)●实验名称:利用原理图输入法与VerilogHDL输入法设计一个8线-3线优先编码器●实验目的:1.熟悉用可编程器件实现基本组合逻辑电路的方法。
2.进一步熟悉MAX+plus II软件的使用方法,熟悉原理图输入法和VerilogHDL输入法,进一步熟悉如何编译,器件选择,管脚分配和仿真。
●预习要求:1.回顾数字电路中关于优先编码器的相关知识。
●实验说明:1.用MAX+plus II软件开发PLD器件有两种设计输入方式:原理图输入和HDL语言输入方式,或者将两者结合起来,一部分电路采用原理图,另一部分采用HDL语言。
2.优先编码器的功能是允许同时在几个输入端有输入信号,编码器按照输入信号的优先等级对同时输入的多路信号中优先级最高的一路进行编码。
3.8线-3线优先编码器的真值表如下图所示:●实验内容与步骤:1.新建一个属于自己的工程目录。
2.新建一张电路图文档,调用8线-3线优先编码器芯片74148(注意其均是低电平有效),完成设计。
3.对电路图进行编译,仿真。
4.用VerilogHDL语言方式编写一个8线-3线优先编码器。
5.完成编译,管脚分配,并对模块进行仿真。
●实验报告要求:1.将自己绘制的电路图或者编写的VerilogHDL代码,截图或者复制到实验报告中。
2.将代码关键位置写上相应注释(可用中文)。
3.对仿真波形截图,贴到实验报告中。
●实验图表与数据:1. 8线-3线优先编码器电路图:2. 8线-3线优先编码器电路仿真波形:3 .8线-3线优先编码器Verilog代码:4. 8线-3线优先编码器Verilog代码仿真波形:。
V e r i l o g-H D L-之-8-3编码器Verilog HDL 之 8-3编码器原理:在数字系统中,常常需要将某一信息(输入)变换为某一特定的代码(输出)。
把二进制码按一定的规律排列,例如8421码、格雷码等,使每组代码具有一特定的含义(代表某个数字或是控制信号)称为编码。
具有编码功能的逻辑电路称为编码器。
编码器有若干个输入,在某一时刻只有一个输入被转换为二进制码。
例如8线-3线编码器和10线-4线编码器分别有8输入、3位输出和10位输入、4位输出。
下面是8-3编码器的真值表。
实验环境:硬件:AR2000核心板、SOPC-MBoard板、PC 机、ByteBlaster II 下载电缆软件:ModelSim 、Altera Quartus II 7.2 集成开发环境。
实验步骤:1.打开Quartus II 7.2软件,选择File | New Project Wizard新建一个工程,在对话框中第一行选择工程路径,并为该工程新建一个文件夹。
本例中第二行输入工程名bm8_3;第三行是工程顶层设计文件名,该顶层设计文件名一定要与设计文件中模块名module一致,可以与工程名不同,但一般都和工程名一致。
如图1.1所示。
图1.1 在Quartus II中新建工程2.单击“Next”,此对话框是向工程中添加设计文件的。
现在还没有写设计文件,所以没有文件可以添加;直接单击“Next”,进入器件选择对话框。
在Family下拉菜单中选择Cyclone II 系列。
然后在Filters下的Package下拉菜单中选择封装形式FBGA,Pin count下拉菜单中选择管脚数672,Speed grade下拉菜单中选择速度级别8;然后在Available devices中选择EP2C35F672C8器件。
如图1.2所示。
图1.2 选择FPGA器件3.单击Finish,建立好工程。
向工程中添加设计文件,选择File | New ,在New对话框中选择Device Design Files下的Verilog HDL File,单击OK,完成新建设计文件。
Xxxx大学课程设计任务书课程硬件课程设计题目 8-3优先级编码器设计专业姓名学号主要内容、基本要求等一、主要内容:利用EL教学实验箱、微机和QuartusⅡ软件系统,使用VHDL语言输入方法设计8-3优先编码器。
可以利用层次设计方法和VHDL语言,完成硬件设计设计和仿真。
最后在EL教学实验箱中实现。
二、基本要求:设计并实现一个8-3优先级编码器,要求I0优先级最高,I7优先级最低,编码输出为原码。
三、扩展要求:输入端加使能端,在使能端为有效的低电平时,进行编码;在使能端为无效的高电平时,输出高阻状态。
四、参考文献:[1] 杨刚,龙海燕.现代电子技术-VHDL与数据系统设计.北京:电子工业出版社,2004[2] 黄仁欣.EDA技术实用教程.北京:清华大学出版社,2006[3] 潘松.VHDL实用教程[M].成都:电子科技大学出版社,2000[4] 李国丽,朱维勇.电子技术实验指导书.合肥:中国科技大学出版社,2000[5] 宋振辉. EDA技术与VHDL.北京:北京大学出版社,2008完成期限18-19周指导教师张岩专业负责人富宇2011年6月28日目录第1章概述 (1)1.1 EDA的概念 (1)1.2 EDA技术及应用 (2)1.3 EDA技术发展趋势 (2)1.4 Quartus II特点介绍 (3)第2章硬件描述语言——VHDL (4)2.1 VHDL的简介 (4)2.2 VHDL语言的特点 (4)2.3 VHDL的设计流程 (5)第3章 8-3优先编码器的设计 (6)3.1 编码器的工作原理 (6)3.2 8-3优先编码器的设计 (6)3.3 8-3优先编码器仿真及分析 (7)3.4 在实验箱上实现8-3优先编码器 (8)结论 (11)参考文献 (12)第1章概述1.1EDA的概念EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。
实验二 8线-3线优先编码器一、实验目的1、进一步熟悉MAX+PlusII软件的使用2、中午应用VHDL语言设计组合逻辑电路二、硬件要求1、EDA实验箱。
2、主芯片:EP1K100QC208-3或者EPM7128SLC84-15三、实验原理优先编码器电路允许同时输入俩个以上的输入信号,当几个输入信号同时出现时,只对其中优先权最高的进行编码三、实验原理及步骤1、根据真值表,设计出他的VHDL程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY encode ISPORT(input: IN STD_LOGIC_VECTOR(7 downto 0);EN : IN STD_LOGIC ;y0n,y1n,y2n,g1,g2 : OUT STD_LOGIC);END encode;ARCHITECTURE behav OF encode ISSIGNAL y : STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINy0n<=y(0);y1n<=y(1);y2n<=y(2);PROCESS(input)BEGINIF EN='1' THENy<="111";g1<='1';g2<='1';ELSIF input(7)='0' THENy<="000";g1<='0';g2<='1';ELSIF input(6)='0' THENy<="001";g1<='0';g2<='1';ELSIF input(5)='0' THENy<="010";g1<='0';g2<='1';ELSIF input(4)='0' THENy<="011";g1<='0';g2<='1';ELSIF input(3)='0' THENy<="100";g1<='0';g2<='1';ELSIF input(2)='0' THENy<="101";g1<='0';g2<='1';ELSIF input(1)='0' THENy<="110";g1<='0';g2<='1';ELSIF input(0)='0' THENy<="111";g1<='0';g2<='1';ELSIF input="11111111" THENy<="111";g1<='1';g2<='0';END if;END PROCESS;END behav;2、对程序进行编译仿真,观察是否符合要求3、选择恰当的芯片CPLD FPGA芯片,并锁定引脚。