北邮 数电实验 VHDL 数据选择器

合集下载

组合逻辑VHDL设计——数据选择器 实验报告

组合逻辑VHDL设计——数据选择器 实验报告

实验名称:组合逻辑VHDL设计——数据选择器班级: 09电气2Z 学号: 09312213 姓名:钱雷一、4选1数据选择器的VHDL设计(低电使能端)1.实体框图2.程序设计①正确的程序library ieee;use ieee.std_logic_1164.all;entity mux41a isport(D3,D2,D1,D0,EN:in std_logic;A1,A0:in std_logic;y:out std_logic);end mux41a;architecture aaa of mux41a isbeginy<=D3 when A1='0' and A0='0' and EN='0' elseD2 when A1='0' and A0='1' and EN='0' elseD1 when A1='1' and A0='0' and EN='0' elseD0 when A1='1' and A0='1' and EN='0'else 'Z';end architecture aaa;3.仿真波形图4.仿真波形分析D0-D3是数据输入端,EN为使能端,低电平有效,S(A1和A0)是控制输入端,Y是数据输出端。

当A1、A0=‘11’时,D0数据被选中,输出Y=D0;当A1、A0=‘10’时,D1数据被选中,输出Y=D1,当A1、A0=‘01’时,D2数据被选中,输出Y=D2,当A1、A0=‘00’时,D3数据被选中,输出Y=D3。

二、8选1数据选择器的VHDL设计(低电使能端)1.实体框图2.程序设计①正确的程序library ieee;use ieee.std_logic_1164.all;entity mux81a isport(A0,A1,A2,D0,D1,D2,D3,D4,D5,D6,D7,EN:in std_logic;y:out std_logic);end mux81a;architecture bbb of mux81a issignal Q:std_logic_vector (2 downto 0);beginQ<=A2&A1&A0;y<=D0 when Q="000" and EN='0' elseD1 when Q="001" and EN='0' elseD2 when Q="010" and EN='0' elseD3 when Q="011" and EN='0' elseD4 when Q="100" and EN='0' elseD5 when Q="101" and EN='0' elseD6 when Q="110" and EN='0' elseD7 when Q="111" and EN='0'else 'Z';end architecture bbb;3.仿真波形图4.仿真波形分析D0-D7是数据输入端,EN为使能端,低电平有效,A2,A1,A0是控制输入端,Y是数据输出端。

【实验报告】北邮 - 电子线路设计与仿真 - 实验二 - 一位8421全加器设计(VHDL输入)

【实验报告】北邮 - 电子线路设计与仿真 - 实验二 - 一位8421全加器设计(VHDL输入)

实验名称:一位8421全加器设计(VHDL输入法)一、实验目的(1)学习用VHDL语言对计数器设计、仿真和硬件测试,进一步熟悉VHDL设计技术。

设计程序独立完成全加器的仿真。

全加器由两个半加器组合而成,原理类似。

半加器不考虑低位进位,但有高位进位;全加器要考虑低位的进位且该进位和求和的二进制相加,可能获得更高的进位。

(2)VHDL编程输入的设计步骤,设计方法等。

二、实验内容和原理1、系统构成·八段数码管显示模块·八段数码管扫描模块·BCD转换及加法计算模块·键盘输入数据读取模块·时钟分频模块2、矩阵键盘工作原理按键设置在行列线交叉点,行列线分别连接到按键开关的两端。

列线通过上拉电阻接5V电压,即列线的输出被钳位到高电平状态。

判断键盘中有无按键按下是通过行线送入扫描信号然后从列线读取状态得到的。

其方法是依次给行线送低电平,检查列线的输入。

如果列线全是高电平,则代表低电平信号所在的行中无按键按下;如果列线有输入为低电平,则代表低电平信号所在的行和出现低电平的列的交点处有按键按下无按键按下时,col0~col3输出分别为“1111”当输入扫描时,扫描第一行,即IN1<=’0’,当按下Button 1,那么输出col输出信号将发生变化,Out1变为’0’,则col0~col3输出分别为“1110”。

可通过行扫描码和列输出码来获得分时扫描的键盘按压信号。

只要扫描时间适当,就可得到按键的按压情况。

3、键盘输入一个完整的键盘控制程序应解决以下任务:(1)检测有无按键按下(2)有键按下,在无硬件去抖得情况下,应有软件延时除去抖动影响(3)键扫描程序(4)将键编码转换成相应键值整个设计程序包括三个模块:时钟分频、键盘扫描和键译码转换。

为了显示,还必须在顶层添加显示部分。

由于使用的外部时钟频率为50MHz,这个频率对扫描来说太高,所以这里需要一个分频器来分得适合键盘扫描使用的频率。

北邮数电VHDL实验报告

北邮数电VHDL实验报告

2009级数字电路实验报告实验名称:EDA基础实验学生姓名:班级:班内序号:学号:日期:1.实验要求【实验目的】1.熟悉用QuartusII原理图输入法进行电路设计和仿真;2.掌握QuartusII图形模块单元的生成与调用;3.熟悉用VHDL语言设计组合逻辑电路和时序电路的方法;4.熟悉用QuartusII文本输入法和图形输入法进行电路设计;5.熟悉不同的编码及其之间的转换;6.掌握触发器的逻辑功能及使用方法;7.熟悉计数器、寄存器、锁存器、分频器、移位寄存器的设计方法8.掌握VHDL语言的语法规范,掌握时序电路描述方法;9.掌握多个数码管动态扫描显示的原理及设计方法。

【实验所用仪器及元器件】1.计算机2.直流稳压电源3.数字系统与逻辑设计实验开发板【实验内容】1.用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块单元。

2.用实验内容1中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号。

3.用3线-8线译码器(74LS138)和逻辑门设计实现函数F,仿真验证其功能,并下载到实验板测试。

要求用拨码开关设定输入信号,发光二极管显示输出信号。

4.用VHDL语言设计实现一个3位二进制数值比较器,仿真验证其功能,并下载到实验板测试。

要求用拨码开关设定输入信号,发光二极管显示输出信号。

5.用VHDL语言设计实现一个4选1的数据选择器;一个8421码转换为格雷码的代码转换器;一个举重比赛裁判器;一个带同步置位和同步复位功能的D触发器;一个带异步复位的4位二进制减计数器;一个带异步复位的8421码十进制计数器;一个带异步复位的4位自启动环形计数器;一个带控制端的8位二进制寄存器,当控制端为‘1’时,电路正常工作,否则输出为高阻态;一个分频系数为12,分频输出信号占空比为50%的分频器。

仿真验证其功能,并下载到实验板测试。

(VHDL实验报告)四选一数据选择器的设计

(VHDL实验报告)四选一数据选择器的设计
3)点击 Add Hardware 按钮,出现 Add Hardware 对话框,在 Add Hardware 对话 框中,从 Hardware type 列表中选择所需要硬件类型,如果是 USB 接口的请参照用户使用手册 中的 USB 电缆的安装与使用,如果使用的是并口下载线则选取如下图 所示的硬件类型,点击 OK按钮,完成对硬件类型的设置。回到编程器硬件设置窗口, 点击 Close 按钮退出设置。则在 编程器对话框中的编程硬件类型会出现刚才选取的编程器硬件。 4)此次实验室所用的安装驱动的方式为:右键“我的电脑”--设备管理器--双击有 黄色问号通用USB--驱动程序--更新驱动程序--从列表或安装……--下一步--下一步--从磁盘安 装--浏览--在我的电脑D盘中选择找到USB bluster即可安装好驱动。 5)如果软件已运行一个工程,则在打开编程器的时候,编程器窗口会自动出现这个 工程文件要加载到目标器件的文件,如果要加载其它文件可以从其它地方进行添加更改。选好加 载文件后,再点选 Progam/Configure,编程模式选取 JTAG 模式,点击 STRAT进行文件加载, 直到加载进度变为 100%,文件成功加载完成。
五、实验步骤
2、建立文本设计文件
1)建立另一工程(注意不要和原来的图形设计文件工程重名), 在创建好设计工程后,选择 File--New--Device Design Files--VHDL File,点击OK按钮,打开进入文本编辑器对话框。 2)在文本编辑器中输入对应VHDL程序代码(本次实验则需输入 四选一数据选择器的代码,注意实体名与所建工程名的实体名的一致 性),本次实验我所用的VHDL顺序语句代码是CASE语句,其并行语句的 代码用的是条件信号赋值语句,具体代码如下图所示: 3)对文本文件进行编译。选择processing--compiler tool-start或直接点快捷栏上的三角形则会出现编译器窗口。需要说明的是在 进行设计文件的综合和分析,也可以单独打开某个分析综 合过程不必进 行全编译界面。当完成上述窗口的设定后,点击 START 按钮进行设计文 件的全编译。如果文件有错,在软件的下方则会提示错误的原因和位置, 以便于使用者进行修改直到设计文件无错。整个编译完成,软件会提示 编译成功。

组合逻辑VHDL设计——数据选择器 实验报告

组合逻辑VHDL设计——数据选择器 实验报告

实验名称:组合逻辑VHDL设计——数据选择器班级: 09电气2Z 学号: 09312213 姓名:钱雷一、4选1数据选择器的VHDL设计(低电使能端)1.实体框图2.程序设计①正确的程序library ieee;use ieee.std_logic_1164.all;entity mux41a isport(D3,D2,D1,D0,EN:in std_logic;A1,A0:in std_logic;y:out std_logic);end mux41a;architecture aaa of mux41a isbeginy<=D3 when A1='0' and A0='0' and EN='0' elseD2 when A1='0' and A0='1' and EN='0' elseD1 when A1='1' and A0='0' and EN='0' elseD0 when A1='1' and A0='1' and EN='0'else 'Z';end architecture aaa;3.仿真波形图4.仿真波形分析D0-D3是数据输入端,EN为使能端,低电平有效,S(A1和A0)是控制输入端,Y是数据输出端。

当A1、A0=‘11’时,D0数据被选中,输出Y=D0;当A1、A0=‘10’时,D1数据被选中,输出Y=D1,当A1、A0=‘01’时,D2数据被选中,输出Y=D2,当A1、A0=‘00’时,D3数据被选中,输出Y=D3。

二、8选1数据选择器的VHDL设计(低电使能端)1.实体框图2.程序设计①正确的程序library ieee;use ieee.std_logic_1164.all;entity mux81a isport(A0,A1,A2,D0,D1,D2,D3,D4,D5,D6,D7,EN:in std_logic;y:out std_logic);end mux81a;architecture bbb of mux81a issignal Q:std_logic_vector (2 downto 0);beginQ<=A2&A1&A0;y<=D0 when Q="000" and EN='0' elseD1 when Q="001" and EN='0' elseD2 when Q="010" and EN='0' elseD3 when Q="011" and EN='0' elseD4 when Q="100" and EN='0' elseD5 when Q="101" and EN='0' elseD6 when Q="110" and EN='0' elseD7 when Q="111" and EN='0'else 'Z';end architecture bbb;3.仿真波形图4.仿真波形分析D0-D7是数据输入端,EN为使能端,低电平有效,A2,A1,A0是控制输入端,Y是数据输出端。

采用VHDL的数据选择器/分配器设计

采用VHDL的数据选择器/分配器设计

i rn b e ’’ n d rc= l t e o t = ( E ; f e a l 0) d r i t ’’ h n b u< a P ) = a e )
e s o t =’ : n f l e b u < Z’ e d i: b b u; <= o t
Hi h S e d I tg ae r utHa d r s rp i n g — p e ne r td Cic i r wae De c i t o
a u t lx ro e s a m l p e e ra d mu tp e e n o c a g h u i li l x ra d t h n e t e n mb ro li l x r s i p t r d mul p e e ’ o t u s Fi ly e f mu t e e ’ n u s o e p t lx rs u p t i na l ,
和 n m e 的值 以把 可编 辑 逻辑 器 件用 作数 据 选择 器或分 配器 并改 变相 应 输入 或 输 出的路数 。 后通 过时序 仿 真 对其 u br 最
进 行 了验 证 。
关键 词 :复 用 器/ 用 : VHDL; ip VER5 1 分 器 s LE .
中图 分 类号 :T 3 9 P 1
20 0 6年 第 2 5卷 第 1 1期
文 章 编 号 : 10 I7 ( 0 6 I 0 卜 0 0 6 6 2 0 ) 卜0 9 2 5
采用 V D H L的数据 选择 器/ 配器 设 计 分
陈维 ’ ,崔 少辉 ,刘 瑾
( .军械 J 学 院 导弹 工 程 系 ,河北 石 家序 0 0 0 ;2 1 : 5 0 3 .北京 军 区 6 1 5部 队 , 北京 10 9 ) 13 00 4 摘要 : 用 VHD 运 L设 计数 据 选择 器/ 配嚣 , 在 i L VE . 开发 环境 中编 写 VHD 分 先 s E R5 1 p L源 代码 , 再设 置参 数、iet drc

北邮数电实验报告

北邮数电实验报告

北京邮电大学实验报告实验名称: 数电电路与逻辑设计实验学院:信息与通信工程学院班 级: 姓 名: 学 号: 班内序号:日期:一. 实验一:QuartusII 原理图输入法设计1. 实验名称和实验任务要求(1)用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块 元。

(2)用(1)中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号入信号。

(3)用3线-8线译码器(74LS138)和逻辑门设计实现函数F=A B C +A B C +AB C +A B C 。

2.实验原理图及波形图(1)半加器(2)全加器(3)74LS383.仿真波形图分析(1)半加器:输入为a,b,输出S,CO(进位)。

当ab都为0时,半加和s=0,进位端co=0。

当ab都为1时,半加和s=0,进位端co=1。

当a=1,b=0或a=0,b=1时,半加和s=1,进位端co=0。

(2)全加器:输入a,b,输出S,CO(进位),ci(低进位)。

当a=0,b=0,ci=0,输出s=0,co=0。

当a=0,b=1或a=1,b=0又ci=0,输出s=1,co=0。

当a=0,b=0,ci=1,输出s=1,co=0。

(3)74LS138输入A,B,C,输出为3。

四个输出对应F中的四个最小项,Y0、Y2、Y4、Y7,以实现函数功能。

二.实验二:用VHDL设计与实现组合逻辑电路1.实验名称和实验任务要求(1)用VHDL语言设计实现一个共阴极7段数码管译码器,仿真验证其功能。

要求用拨码开关设定输入信号,7段数码管显示输出信号。

(2)用VHDL语言设计实现一个8421码转换为余3码的代码转换器,仿真验证其功能。

要求用拨码开关设定输入信号,发光二极管显示输出信号。

(3)用VHDL语言设计实现一个4位二进制奇校验器,输入奇数个’1’时,输出为’1’,否则输出’0’,仿真验证其功能。

VHDL实验报告

VHDL实验报告

项目一数据选择器一、实验与设计要求1.熟悉MAX+PLUS II的编译环境,掌握该集成环境各个菜单项的使用;2.了解MAX+PLUSII的VHDL程序设计输入方法,初步了解该软件的仿真环境;3.初步运用VHDL编程,体会硬件描述语言的先进性;4.理解VHDL语言的并发执行的特点;5.熟悉VHDL语法6. 按照如下图示,设计一个四路的数据选择器,该电路能将四组不同的数据有选择的输出,每一组数据的宽度为4,输出那一组数据由选择开关决定,如下表:辑图如下:S0S1二、实验与设计方法1.进入MAX+PLUSII软件之前,在E盘上新建一个工作目录\lyung。

2.进入MAX+PLUSII文本编辑器,编写VHDL程序,并保存文件至\lyung\ mux41.vhd:3. 将工程指向当前文件并编译当前文件。

4. 建立波形仿真文件,设置输入、输出端口及输入端口的信号波形,保存波形仿真文件。

5. 进入仿真器工作环境,查看波形仿真结果。

6. 选择器件, 为电路端口分配FPGA器件引脚。

7. 进行第二次编译(包括逻辑综合和器件工艺映射),生成目标文件(*.sof等)。

8.将目标文件下载至FPGA器件。

9.在实验台上进行实际操作,验证设计的正确性。

三、实验与设计结果通过实验,初步熟悉了MAX+PLUS II的编译环境,并掌握该集成环境各个菜单项的使用。

实验过程中,了解了MAX+PLUSII的VHDL程序设计输入方法,初步运用VHDL编程,成功的按照实验要求设计了程序的VHDL源码(见附件1),熟悉了VHDL语法,理解了VHDL语言的并发执行的特点;并进行了仿真实验(仿真实验截图见图4-1),初步了解该软件的仿真环境,并成功的将文件烧入实验平台,成功通过了测试(实验平台截图见图4-2)。

四、程序源码及实验截图4-0、VHDL源码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux41 ISPORT (a,b,c,d: IN STD_LOGIC_VECTOR (3 DOWNTO 0);s1,s0: IN STD_LOGIC;q: OUT STD_LOGIC_VECTOR (3 DOWNTO 0));END mux41;ARCHITECTURE behave OF mux41 ISSIGNAL sel: STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINsel <= s1 & s0;q<= a WHEN sel="00" ELSEb WHEN sel="01" ELSEc WHEN sel="10" ELSEd WHEN sel="11" ELSE"XXXX";END behave ;图 4-2 实验平台实验项目二三—八译码器一、实验与设计要求1.掌握组合逻辑电路的设计的一般步骤和方法;2.掌握一般电路设计要求及其设计知识;3. 设计一个3-8译码器,此电路有三个输入端(A,B,C),八个输出端D[7·0];当输入为为不同的值(0~7)时,只有对应的输Y7二、实验与设计方法2. 编写VHDL语言程序3. 将工程指向当前文件并编译当前文件。

北邮数字电路实验报告——交通灯控制器(VHDL)(最全的)

北邮数字电路实验报告——交通灯控制器(VHDL)(最全的)

课题三:交通灯控制器学院:信息与通信工程学院专业:通信工程姓名:***学号:********课题三:交通灯控制器一.设计课题的任务要求(一)、实验目的1. 熟练掌握 VHDL 语言和QuartusII 软件的使用;2. 理解状态机的工作原理和设计方法;3. 掌握利用 EDA 工具进行自顶向下的电子系统设计方法;(二)、相关知识本实验要利用 CPLD 设计实现一个十字路口的交通灯控制系统,与其他控制系统一样,本系统划分为控制器和受控电路两部分。

控制器使整个系统按设定的工作方式交替指挥车辆及行人的通行,并接收受控部分的反馈信号,决定其状态转换方向及输出信号,控制整个系统的工作过程。

路口交通灯控制系统的有东西路和南北路交通灯 R(红)、Y(黄)、G(绿)三色,所有灯均为高电平点亮。

设置20s 的通行时间和5s 转换时间的变模定时电路,用数码管显示剩余时间。

提供系统正常工作/复位和紧急情况两种工作模式。

(三)、实验任务1.基本任务:设计制作一个用于十字路口的交通灯控制器。

1). 南北和东西方向各有一组绿、黄、红灯用于指挥交通,绿灯、黄灯和红灯的持续时间分别为20 秒、5 秒和25 秒;2). 当有特殊情况(如消防车、救护车等)时,两个方向均为红灯亮,计时停止,当特殊情况结束后,控制器恢复原来状态,继续正常运行;3). 用两组数码管,以倒计时方式显示两个方向允许通行或禁止通行的时间;2.提高要求:1). 增加左、右转弯显示控制功能;2). 紧急状况时增加声光警告功能;3). 自拟其它功能。

二.系统设计(包括设计思路、总体框图、分块设计)(一)设计思路利用有限状态机描绘出交通灯的状态转移图,并设置记录东西和南北路口可通行时间的全局变量count,共设置四个正常状态,状态间的转移以count的值作为判断条件。

对于两种特殊情况:当复位信号reset为高电平时,则回到最初状态;当紧急输入信号emergency 为高电平时,则转移到一特殊状态。

北邮电子-数电综合实验报告

北邮电子-数电综合实验报告

数字电路综合实验设计简易出租车计价器的设计与实现学院:电子工程学院班级: 2011211203学号: 2011210876姓名:孙月鹏班内序号: 04摘要本文介绍了利用Quartus II综合性PLD/FPGA开发软件,在MAXII数字逻辑实验开发板上实现简易出租车计价器功能的设计与实现方法.本方案采用自上而下的设计理念,将整体电路按照功能划分为分频、计数、控制、数码管显示电路、点阵显示电路等若干模块,模块内用VHDL语言完成逻辑设计,模块间用原理图进行连接,使整体可实现计费、计时等功能。

关键字:可编程器件模块化设计出租车计价器VHDL语言一、设计任务要求➢设计一台出租车计价器,不同情况下具有不同的收费标准。

基本要求:1.行驶公里:用时钟2秒钟表示出租车匀速行驶1公里。

在行车5公里以内,按起步价13元收费,超过5公里部分,以每公里2元收费。

燃油附加费每运次1元。

2.途中等待:用按键控制中途等待,等待少于(包括)5秒不收费,超过5秒后没等待3秒钟加收1元。

3.用数码管分时显示计费金额、行驶里程和等候时间.字母A表示当前处于显示计费金额状态,字母B表示当前处于显示行驶里程状态,字母C表示当前处于显示等候时间状态。

4.用按键控制出租车空驶、载客状态。

提高要求:1.用点阵滚动显示收费单据.2.具有夜间模式,基本单价加收20%的费用.出租车收费以元为单位,元以下四舍五入。

3.出租车行驶速度可调可控.4.多人乘车,分段计价。

5.自拟其他功能。

二、设计思路与结构框图1。

设计思路图1 结构框图由结构框图可以分析得出,该系统的的主体是计数控制器。

该系统由外部控制载客控制信号和等待控制信号,以时钟信号的翻转为计数依据,完成对时间、里程和费用的计数,并将结果通过数码管译码电路显示出来。

该系统的控制信号可由拨码或按键输入,时钟由开发板内部时钟分频得出,输出有点阵输出和数码管输出.因此,可将系统分为分频器、计数控制器、数码管译码和显示以及点阵显示四部分。

北邮数电组合逻辑电路VHDL源代码

北邮数电组合逻辑电路VHDL源代码

表决器:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY BIAOJUEQI ISPORT(A:IN STD_LOGIC;B:IN STD_LOGIC;C:IN STD_LOGIC;D:IN STD_LOGIC;F:OUT STD_LOGIC);END BIAOJUEQI;ARCHITECTURE one OF BIAOJUEQI IS SIGNAL n1,n2,n3,n4: STD_LOGIC; BEGINn1<=A AND B AND D;n2<=B AND C AND D;n3<=A AND C AND D;n4<=A AND B AND C;F<=n1 OR n2 OR n3 OR n4;END one;奇校验器:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY JIJIAOYAN ISPORT( A:STD_LOGIC;B:STD_LOGIC;C:STD_LOGIC;D:STD_LOGIC;F:OUT STD_LOGIC);END JIJIAOYAN;ARCHITECTURE one OF JIJIAOY AN IS SIGNAL n1,n2 : STD_LOGIC; BEGINn1<=A XOR B;n2<=n1 XOR C;F<=n2 XOR D;END one;3位比较器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY comp3 ISPORT (A:IN STD_LOGIC_VECTOR(2 DOWNTO 0);B:IN STD_LOGIC_VECTOR(2 DOWNTO 0);YA,YB,YC:OUT STD_LOGIC);END comp3;ARCHITECTURE behave OF comp3 ISBEGINPROCESS(A,B)BEGINIF (A>B) THENYA<='1';YB<='0';YC<='0';ELSIF(A<B) THENYA<='0';YB<='1';YC<='0';ELSEYA<='0';YB<='0';YC<='1';END IF;END PROCESS;END behave;4选1 数据选择器:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4 ISPORT(G,A1,A0:IN STD_LOGIC;D0,D1,D2,D3:IN STD_LOGIC;Y,YB:OUT STD_LOGIC);END mux4;ARCHITECTURE behave OF mux4 ISSIGNAL comb:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGINcomb<=A1&A0;PROCESS(G,comb,D0,D1,D2,D3)BEGINIF G='0' THENCASE comb ISWHEN "00"=>Y<=D0;YB<=NOT D0;WHEN "01"=>Y<=D1;YB<=NOT D1;WHEN "10"=>Y<=D2;YB<=NOT D2;WHEN "11"=>Y<=D3;YB<=NOT D3;WHEN OTHERS=>Y<='0';YB<='1';END CASE;END IF;END PROCESS;END behave;。

VHDL实验报告

VHDL实验报告

班级:2009211411 学号:09211999 姓名:陈东东四选一数据选择器1.实验目的:利用数据选择器的原理,即在地址选择信号的控制下从输入的四路数据中选择一路数据作为输出。

2.实验内容和实验原理:四选一数据选择器有4条输入数据线,2条地址选择线和一条数据输出线,通过控制2条地址选择线实现数据输出线从4条输入线中选择一条输出。

3.试验程序:LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY MUX4 ISPORT(D0:IN std_logic;D1:IN std_logic;D2:IN std_logic;D3:IN std_logic;S0:IN std_logic;S1:IN std_logic;Q :OUT std_logic);END mux4;ARCHITECTURE RTL OF mux4 ISBEGINPROCESS(D0,D1,D2,D3,S0,S1)BEGINIF(S1='0' AND S0='0')THENQ<=D0;ELSIF(S1='0' AND S0='1')THENQ<=D1;ELSIF(S1='1' AND S0='0')THENQ<=D2;ELSIF(S1='1' AND S0='1')THENQ<=D3;ELSEQ<='Z';END IF;END PROCESS;END RTL;4.波形仿真:S1和S0表示地址选择线,D3,D2,D1,D0表示输入数据线,Q表示输出数据线。

5.试验中遇到的问题及解决方法:实验较为简单,无问题。

组合逻辑电路之加法器设计1.实验目的:利用计算机组成原理中介绍的修正函数,编程实现一个任意位进位的1位BCD码加法器。

【实验】VHDL实验报告

【实验】VHDL实验报告

【关键字】实验项目一数据选择器一、实验与设计要求1.熟悉MAX+PLUS II的编译环境,掌握该集成环境各个菜单项的使用;2.了解MAX+PLUSII的VHDL程序设计输入方法,初步了解该软件的仿真环境;3.初步运用VHDL编程,体会硬件描述语言的先进性;4.理解VHDL语言的并发执行的特点;5.熟悉VHDL语法6. 按照如下图示,设计一个四路的数据选择器,该电路能将四组不同的数据有选择的输出,每一组数据的宽度为4,输出那一组数据由选择开关决定,如下表:AB QCDS0S1二、实验与设计方法1.加入MAX+PLUSII软件之前,在E盘上新建一个工作目录\lyung。

2.加入MAX+PLUSII文本编辑器,编写VHDL程序,并保存文件至\lyung\mux41.vhd:3. 将工程指向当前文件并编译当前文件。

4. 建立波形仿真文件,设置输入、输出端口及输入端口的信号波形,保存波形仿真文件。

5. 加入仿真器工作环境,查看波形仿真结果。

6. 选择器件, 为电路端口分配FPGA器件引脚。

7. 进行第二次编译(包括逻辑综合和器件工艺映射),生成目标文件(*.sof等)。

8.将目标文件下载至FPGA器件。

9.在实验台上进行实际操作,验证设计的正确性。

三、实验与设计结果通过实验,初步熟悉了MAX+PLUS II的编译环境,并掌握该集成环境各个菜单项的使用。

实验过程中,了解了MAX+PLUSII的VHDL程序设计输入方法,初步运用VHDL编程,成功的按照实验要求设计了程序的VHDL源码(见附件1),熟悉了VHDL语法,理解了VHDL语言的并发执行的特点;并进行了仿真实验(仿真实验截图见图4-1),初步了解该软件的仿真环境,并成功的将文件烧入实验平台,成功通过了测试(实验平台截图见图4-2)。

四、程序源码及实验截图4-0、VHDL源码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux41 ISPORT (a,b,c,d: IN STD_LOGIC_VECTOR (3 DOWNTO 0);s1,s0: IN STD_LOGIC;q: OUT STD_LOGIC_VECTOR (3 DOWNTO 0));END mux41;ARCHITECTURE behave OF mux41 ISSIGNAL sel: STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINsel <= s1 & s0;q<= a WHEN sel="00" ELSEb WHEN sel="01" ELSEc WHEN sel="10" ELSEd WHEN sel="11" ELSE"XXXX";END behave ;图 4-2 实验平台实验项目二三—八译码器一、实验与设计要求1.掌握组合逻辑电路的设计的一般步骤和方法;2.掌握一般电路设计要求及其设计知识;3. 设计一个3-8译码器,此电路有三个输入端(A,B,C),八个输出端D[7··0];当输入为为不同的值(0~7)时,只有对应的输出端才有输出;如下图所示:Y7二、实验与设计方法1.建立真值表2. 编写VHDL语言程序3. 将工程指向当前文件并编译当前文件。

VHDL实验报告一2选1多路选择器

VHDL实验报告一2选1多路选择器

实验一实验目的:熟悉quartus的vhdl文本设计流程全过程,学习简单的组合电路的设计,多层次的电路设计,仿真和硬件测试二、实验内容内容(一)用vhdl语言设计2选1多路选择器参考例3-1程序设计如下:library ieee;use ieee.std_logic_1164.all;entity mux21a isport (a,b,s:in bit;y: out bit);end entity mux21a;architecture one of mux21a isbeginy<=a when s='0' else b;end architecture one全程编译后软件提示0错误,3警告,可以继续下面仿真操作。

程序分析:这是一个2选1多路选择器,a和b分别为两个数字输入端的端口名,s为通道选择控制信号输入端的端口名,y为输出端的端口名。

时序仿真及分析:时序仿真输入图:时序仿真输出图:时序分析:由上面两图可以得知:当s=0时,y口输出a,当s=1时,y口输出b下载和硬件测试:引脚锁定图:程序下载完成后,选择实验电路模式5,通过短路帽选择clock0接256Hz 信号,clock2接8Hz信号。

通过键一控制s,当键一进行切换时,明显能听到扬声器发出两种不同音调的声音。

实验内容(二)双二选一多路选择器设计程序设计:library ieee;use ieee.std_logic_1164.all;entity mux21a isport (a,b,s:in bit;y: out bit);end entity mux21a;architecture one of mux21a isbeginy<=a when s='0' else b;end architecture one;entity muxk isport (a1,a2,a3,s0,s1:in bit;outy:out bit);end entity muxk;architecture bhv of muxk iscomponent mux21aport (a,b,s:in bit;y:out bit);end component;signal tmp: bit;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;全程编译后软件提示0错误,2警告程序分析:这是一个双2选1多路选择器,a1、a2和a3分别为两个数字输入端的端口名,s0、s1为通道选择控制信号输入端的端口名,outy为输出端的端口名。

实验三、VHDL数据选择器的设计

实验三、VHDL数据选择器的设计

实验三、VHDL数据选择器的设计一、实验目的通过VHDL语言设计4选1数据选择器,掌握4选1数据选择器的设计方案;掌握软件工具的使用方法,并设计8选1数据选择器的VHDL语言。

二、实验原理图1为4选1数据选择器管脚图。

当S=0时工作,S=1时禁止工作。

A0与A1为4选1数据选择器的控制信号。

图 1 4选1数据选择器管脚图图2为8选1数据选择器管脚图。

当S=0时工作,S=1时禁止工作。

A0与A1,A2为8选1数据选择器的控制信号。

图 2 8选1数据选择器管脚图三、实验内容1.用VHDL语言设计4选1数据选择器,进行编译、波形仿真及器件的编程。

代码一详见附录。

MAX+plusII功能仿真图如下图3 4选1数据选择器功能仿真图2.用VHDL语言设计8选1数据选择器进行编译、波形仿真及器件的编程。

代码二详见附录。

MAX+plusII功能仿真图如下图4 8选1数据选择器功能仿真图四、实验心得在实验中通过4选1数据选择器VHDL语言结合4选1数据选择器工作原理。

对4选1数据选择器VHDL语言进行修改成8选1数据选择器VHDL语言。

将VHDL 语言中控制信号增加A2,对CASE代码中输入输出信号进行相对应的修改。

本次实验同时学会了对单独输入信号的设置。

以及使用软件生成器件管脚图。

附录代码一4选1数据选择器VHDL语言library ieee;use ieee.std_logic_1164.all;entity sxy isport(d0,d1,d2,d3,a0,a1,s:in std_logic;y:out std_logic);end sxy;architecture zhang of sxy issignal a:std_logic_vector (1 downto 0);beginprocess (a0,a1)begina<=a1&a0;if(s='0') thencase a iswhen"00"=>y<=d0;when"01"=>y<=d1;when"10"=>y<=d2;when others=>y<=d3;end case;end if;end process;end zhang;代码二8选1数据选择器VHDL语言library ieee;use ieee.std_logic_1164.all;entity sxy isport(d0,d1,d2,d3,d4,d5,d6,d7,a0,a1,a2,s:in std_logic;y:out std_logic);end sxy;architecture zhang of sxy issignal a:std_logic_vector (2 downto 0);beginprocess (a0,a1,a2) begina<=a2&a1&a0;if(s='0') thencase a is when"000"=>y<=d0; when"001"=>y<=d1; when"010"=>y<=d2; when"011"=>y<=d3; when"100"=>y<=d4; when"101"=>y<=d5; when"110"=>y<=d6; when others=>y<=d7; end case;end if;end process;end zhang;。

VHDL实验 4选1多路选择器

VHDL实验  4选1多路选择器

VHDL实验报告学院: 理学院专业:电子信息科学与技术班级:电科091END IF;END PROCESS; PROCESS进程语句结束END ARCHITECTURE rtl;1.实验源程序如下:实验步骤与数据82. 创建文件夹,保存文件。

3.选择芯片为‘EP1C6Q240C8’。

4. 完成设置,显示文件信息。

从显示中我们看到项目和实体名为:MUX4A1,其中只有一个文件,芯片为Cyclone系列的EP1C6Q240C8。

5.运行通过6.运行后的RTL视图7.波形分析(1)添加文件和引脚。

(2)设置输入信号。

可以对输入进行设置.结果分析:①当b='0',a='0'时候,选择出input(0),②当b='0',a='1',时候,选择出input(1)③当b='1',a='0'时候,选择出input(2),④当b='1',a='1'时候,选择出input(3),符合程序结果8.配置引脚⑴选择“Assignments”菜单的“Pins”命令,打开引脚编辑窗口。

四选一数据选择器的引脚分配如下:(2)在设置完引脚后,再次对程序进行编译。

这样就把程序与FPGA的引脚联系起来,这样才能将程序下载到FPGA 开发系统中进行运行仿真。

下载到FPGA中,并验证程序的运行结果。

(3)配置硬件驱动为“ByteBlassterMV[LPT1]”,然后“start”下载,到下载为100%即可完成和对程序进行试验。

9.实验结果。

EDA与VHDL实验-四选一数据选择器

EDA与VHDL实验-四选一数据选择器

1.QuartusII软件的具体设计步骤1.1建立文件夹在这个文件夹里创建二级文件夹my4s1存放相应项目、程序文件;在一级文件夹里存放RTL电路和仿真波形文件。

1.2创建工程通过 File => New Project Wizard为工程指定工作目录、分配工程名称以及指定最高层设计实体的名称为my4s1。

1.3设计输入通过 File => New 菜单命令,在随后弹出的对话框中选择 VHDL File选项,点击 OK 按钮。

通过File => Save As 命令,将其保存,并加入到项目中。

在VHDL界面输入两输入与门程序,然后通过 File => Save As 命令保存。

1.4综合和编译选择Processing =>Start Compilation,检查程序语法错误,并生成RTL图。

执行Tools =>Netlist Viewer =>RTL Viewr, 生成RTL图。

1.5模拟仿真在 File 菜单下,点击 New 命令。

在随后弹出的对话框中,选中 Vector Waveform File 选项。

进入波形编辑器窗口工具条。

指定模拟终止时间。

Edit => Node Finder,点击 List 按钮,列出电路所有的端子,全部拉入波形区。

编辑输入激励信号波形.分别选中 a,b,c,d,s1,s2信号,指定为不同的clock,en分高低电平测试。

功能仿真:Processing=>Generate Functional Simulation Netlist,使用命令Processing=>Simulator Tool ,选择fundamatol,开始仿真。

【注】本设计使用QuartusII 9.1版本,内有仿真器。

2.程序设计library IEEE;use IEEE.std_logic_1164.all;entity my4s1 isport(a:in std_logic;b:in std_logic;c:in std_logic;d:in std_logic;en:in std_logic;s1:in std_logic;s2:in std_logic;y:out std_logic);end my4s1;architecture Behavioral of my4s1 issignal s:std_logic_vector(1downto0);signal y1:std_logic;beginprocess(en,y1)beginif(en='0')theny<=y1;elsey<='1';end if;end process;s<=s2&s1;y1<=a when s="00"elseb when s="01"elsec when s="10"elsed;end Behavioral;3.RTL电路四选一数据选择器RTL电路4.功能仿真波形图:en=0四选一数据选择题仿真结果(1) en=1四选一数据选择题仿真结果(2)波形分析:当en=1时,不论a~c的输入状态如何,均无输出(y=1),多路开关被禁止;使能端en=0时,多路开关正常工作,根据地址码s2,s1的状态选择a~c输入信号中某一个通道的数据输送到输出端y。

北邮数电实验VHDL

北邮数电实验VHDL

LIBRARY IEEE;--二进制比较器USE IEEE.STD_LOGIC_1164.ALL;ENTTTY COMPARE ISPORT(A:IN STD_LOGIC_VECTOR(3DOWNTO 0);B:IN STD_LOGIC_VECTOR(3 DOWNTO 0);YA,YB,YC:OUT_LOGIC);END COMPARE;ARCHITECTURE COM OF COMPARE ISBEGINPROCESS(A,B)BEGINIF(A>B)THENYA<=’1’;YB<=’0’;YC<=’0’;ELSIF(A<B)THENYA<=’0’;YB<=’1’;YC<=’0’;ELSEYA<=’0’;YB<=’0’;YC<=’1’;END IF;END PROCESS;END COM;LIBRARY IEEE;--四选一数据选择器USE IEEE.STD_LOGIC_1164.ALL;Entity MUX4 ISPort(G,A1,A0:IN STD_LOGIC;D3,D2,D1,D0:IN STD_LOGIC;Y,YB:OUT STD_LOGIC);END MUX4;ARCHITECTURE BEHAV OF MUX4 ISSIGNAL COMB:STD_LOGIC_VECTOR(3DOWNTO 0); BEGINCOMB<=A1&A0;PROCESS(G,COMB,D0,D1,D2,D3)BEGINIF G=’0’THENCASE COMB ISWHEN “00”=>Y<=D0;YB<=NOT D0;WHEN “01”=>Y<=D1;YB<=NOT D1;WHEN “10”=>Y<=D2;YB<=NOT D2;WHEN “11”=>Y<=D3;YB<=NOT D3;WHEN OTHERS=>Y<=’0’;YB<=’1’;END CASE;ELSEY<=’0’;YB<=’1’;END IF;END PROCESS;END BEHAV;LIBRARY IEEE;--四人投票表决器USE IEEE.STD_LOGIC_1164.ALL;Entity MUX16 ISPort(G,A3,A2,A1,A0:IN STD_LOGIC;D15,D14,D13,D12,D11,D10,D9,D8,D7,D6,D5,D4,D3,D2,D1,D0:IN STD_LOGIC;Y,YB:OUT STD_LOGIC);END MUX16;ARCHITECTURE BEHAV OF MUX16 ISSIGNAL COMB:STD_LOGIC_VECTOR(3DOWNTO 0);BEGINCOMB<=A1&A0;PROCESS(G,COMB,D15,D14,D13,D12,D11,D10,D9,D8,D7,D6,D5,D4,D3,D2,D1,D0) BEGINIF G=’0’THENCASE COMB ISWHEN “0000”=>Y<=D0;YB<=NOT D0;WHEN “0001”=>Y<=D1;YB<=NOT D1;WHEN “0010”=>Y<=D2;YB<=NOT D2;WHEN “0011”=>Y<=D3;YB<=NOT D3;WHEN “0100”=>Y<=D0;YB<=NOT D4;WHEN “0101”=>Y<=D0;YB<=NOT D5;WHEN “0110”=>Y<=D0;YB<=NOT D6;WHEN “0111”=>Y<=D0;YB<=NOT D7;WHEN “1000”=>Y<=D0;YB<=NOT D8;WHEN “1001”=>Y<=D0;YB<=NOT D9;WHEN “1010”=>Y<=D0;YB<=NOT D10;WHEN “1011”=>Y<=D0;YB<=NOT D11;WHEN “1100”=>Y<=D0;YB<=NOT D12;WHEN “1101”=>Y<=D0;YB<=NOT D13;WHEN “1110”=>Y<=D0;YB<=NOT D14;WHEN “1111”=>Y<=D0;YB<=NOT D15;WHEN OTHERS=>Y<=’0’;YB<=’1’;END CASE;ELSEY<=’0’;YB<=’1’;END IF;END PROCESS;END BEHAV;LIBRARY IEEE;--四位二进制奇数个数USE IEEE.STD_LOGIC_1164.ALL;Entity MUX16 ISPort(G,A3,A2,A1,A0:IN STD_LOGIC;D15,D14,D13,D12,D11,D10,D9,D8,D7,D6,D5,D4,D3,D2,D1,D0:IN STD_LOGIC;Y,YB:OUT STD_LOGIC);END MUX16;ARCHITECTURE BEHAV OF MUX16 ISSIGNAL COMB:STD_LOGIC_VECTOR(3DOWNTO 0);BEGINCOMB<=A1&A0;PROCESS(G,COMB,D15,D14,D13,D12,D11,D10,D9,D8,D7,D6,D5,D4,D3,D2,D1,D0) BEGINIF G=’0’THENCASE COMB ISWHEN “0000”=>Y<=D0;YB<=NOT D0;WHEN “0001”=>Y<=D1;YB<=NOT D1;WHEN “0010”=>Y<=D2;YB<=NOT D2;WHEN “0011”=>Y<=D3;YB<=NOT D3;WHEN “0100”=>Y<=D0;YB<=NOT D4;WHEN “0101”=>Y<=D0;YB<=NOT D5;WHEN “0110”=>Y<=D0;YB<=NOT D6;WHEN “0111”=>Y<=D0;YB<=NOT D7;WHEN “1000”=>Y<=D0;YB<=NOT D8;WHEN “1001”=>Y<=D0;YB<=NOT D9;WHEN “1010”=>Y<=D0;YB<=NOT D10;WHEN “1011”=>Y<=D0;YB<=NOT D11;WHEN “1100”=>Y<=D0;YB<=NOT D12;WHEN “1101”=>Y<=D0;YB<=NOT D13;WHEN “1110”=>Y<=D0;YB<=NOT D14;WHEN “1111”=>Y<=D0;YB<=NOT D15;WHEN OTHERS=>Y<=’0’;YB<=’1’;END CASE;ELSEY<=’0’;YB<=’1’;END IF;END PROCESS;END BEHAV;library ieee;--共阴极led灯use ieee.std_logic_1164.all;entity decl7s isport(a:instd_logic_vector(3 downto 0);led7s:out std_logic_vector(6 downto 0));end decl7s;--结束实体定义architecture one of decl7s is--结构体描述begin--结构体描述开始process(a)--进程语句begin--进程描述开始case a is --case结构when "0000"=>led7s<="0111111";--当输入信号量a为0000时--将0111111赋给led7s,即7断led数码管显示0.when "0001"=>led7s<="0000110";--同上when "0010"=>led7s<="1011011";when "0011"=>led7s<="1001111";when "0100"=>led7s<="1100110";when "0101"=>led7s<="1101101";when "0110"=>led7s<="1111101";when "0111"=>led7s<="0000111";when "1000"=>led7s<="1111111";when "1001"=>led7s<="1101111"; --//when "1010"=>led7s<="1110111";when "1011"=>led7s<="0111100";when "1100"=>led7s<="0111001";when "1101"=>led7s<="1011110";when "1110"=>led7s<="1111011";when "1111"=>led7s<="1110001";when others=>null;--当输入的数超过9时,数码管不显示。

采用VHDL的数据选择器_分配器设计

采用VHDL的数据选择器_分配器设计

采用VHDL的数据选择器/分配器设计陈维1,崔少辉1,刘瑾2(1. 军械工程学院导弹工程系,河北石家庄 050003; 2. 北京军区 61135部队,北京 100094)摘要:运用VHDL设计数据选择器/分配器,先在ispLEVER5.1开发环境中编写VHDL源代码,再设置参数direct 和number的值以把可编辑逻辑器件用作数据选择器或分配器并改变相应输入或输出的路数。

最后通过时序仿真对其进行了验证。

关键词:复用器/分用器;VHDL;ispLEVER5.1中图分类号:TP319 文献标识码:AMultiplexer and DeMultiplexer Design Based on VHDLCHEN Wei1, CUI Shao-hui1, LIU Jin2(1. Dept. of Missile Engineering, Ordnance Engineering College, Shijiazhuang 050003, China;2. No.61135 Unit of PLA, Beijing Military Area, Beijing 100094, China)Abstract: When designing multiplexer/demultiplexer based on VHDL, first wrote VHDL source codes in the development environment named ispLEVER5.1, then set the value of the parameter “direct” and “number” to use the PLD as a multiplexer or a demultiplexer and to change the number of multiplexer’s inputs or demultiplexer’s outputs. Finally, this design was proved to be correct by timing simulation. Finally, this design is proved to be correct by timing simulation.Keywords: Multiplexer/Demultiplexer; VHDL; ispLEVER5.10 引言高速集成电路硬件描述语言(VHDL:Very- High-Speed Integrated Circuit Hardware Description Language)是随着可编辑逻辑器件(PLD)的发展而发展起来的一种硬件描述语言。

北邮数电实验之组合逻辑电路、时序逻辑电路

北邮数电实验之组合逻辑电路、时序逻辑电路

北京邮电大学数字电路与逻辑设计实验报告(实验2)电子202-赵依然-2018212048摘要:本次数字电路与逻辑设计实验以初步掌握VHDL语言设计简单的数字电路,并且在QuartusⅡ上仿真为目的,加深组合逻辑电路和时序逻辑电路的基本原理、设计理念、运转方式。

关键词:组合逻辑电路时序逻辑电路VHDL QuartusⅡ仿真一:实验1实验内容11.1.1实验名称:VHDL组合逻辑电路设计-4选1数据选择器1.1.2实验任务要求:用VHDL语言设计实现一个4选1数据选择器,根据地址端的不同取值选择不同的数据端到输出端,仿真验证其功能。

1.2 电路设计及VHDL代码及注释1.2.1 设计原理:利用功能表进行判断。

设计数据输入端a3-a0和地址端s1-s0,输出端c,当地址端为11时c端输出a3的值,当地址端为10时c端输出a2的值,当地址端为01时c端输出a1的值,当地址端为00时c端输出a0的值。

这样就确定了电路的逻辑。

1.2.2 VHDL代码及注释:library ieee;use IEEE.STD_LOGIC_1164.all;use IEEE.STD_LOGIC_arith.all;use ieee.STD_LOGIC_unsigned.all;entity mux4 isport(a:in std_logic_vector(3 downto 0);s:in std_logic_vector(1 downto 0);c:out std_logic);end mux4;architecture mux4_arch of mux4 isbeginprocess(s)begincase s iswhen "00"=>c<=a(0);--当输入00,输出a(0)when "01"=>c<=a(1);when "10"=>c<=a(2);when "11"=>c<=a(3);end case;end process;end;1.3仿真波形图(请放大查看)1.4 仿真波形图分析由图可知,当s端地址端输入11,c端输出和a3一致,s端输入10,c端输出和a2一致,s端输入01,c端输出和a1一致,s端输入00,c端输出和a0一致。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档