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

合集下载

实验一 FPGA VHDL四选一数据选择器的设计

实验一 FPGA VHDL四选一数据选择器的设计
开发软件:QartusII 8.0
实验设备:FPGA实验箱
拟用芯片:Altera EP3C55F484C8
3.实验设计
1)系统原理
根据4选1数据选择器的工作原理,有公式:
Y= + B+ C+ D
可见,要实现功能,需要6个输入,一个输出。其中 是数据选择端,A,B,C,D是数据输入端。由 输出高低电平(开关信号)பைடு நூலகம்定数据的输出和传送。
实验二四选一数据选择器的设计
1实验目的
(1)进一步熟悉和掌握QartusII的使用方法;
(2)掌握FPGA实验箱使用方法;
(3)学习和掌握电路原理图的设计流程
1.实验内容
使用QartusII的元件库,通过元件图的方式设计具有4选1功能的数据选择器,并使用FPGA实验箱对程序进行硬件下载,验证。
2.实验条件
L7=1,L8=开
L7=开,L8=开
发声频率
很慢

较快

表2-1 开关不同位置时蜂鸣器发声状态
实验箱结果如图2-5所示
图2-5实验箱进行试验
5.心得体会
通过这次实验,让我学习到了如何在QartusII中使用原理图的方式做出所需要的功能器件。也学会了如何使用FPGA实验箱。
使用实验箱旁边的频率信号低的4个信号做输入信号,通过FPGA实验箱上的蜂鸣器发出的声音频率快慢来测试实验是否成功。
A输入接入1HZ信号B输入接入4HZ信号
C输入接入8HZ信号D输入接入16HZ
SO输入接入L8开关S1输入接入L7开关
Y输出接入蜂鸣器
可得实验结果如下表 表2-1所示
L7=关,L8=关
L7=关,L8=开
2)电路原理图

实验一四选一数据选择器的设计

实验一四选一数据选择器的设计

实验一四选一数据选择器的设计一、实验目的1、熟悉Quartus II软件的使用。

2、了解数据选择器的工作原理。

3、熟悉EDA开发的基本流程。

二、实验原理及内容实验原理数据选择器在实际中得到了广泛的应用,尤其是在通信中为了利用多路信号中的一路,可以采用数据选择器进行选择再对该路信号加以利用。

从多路输入信号中选择其中一路进行输出的电路称为数据选择器。

或:在地址信号控制下,从多路输入信息中选择其中的某一路信息作为输出的电路称为数据选择器。

数据选择器又叫多路选择器,简称MUX。

4选1数据选择器:(1)原理框图:如右图。

D0 、D1、D2、D3 :输入数据A1 、A0 :地址变量由地址码决定从4路输入中选择哪1路输出。

(2)真值表如下图:(3)逻辑图数据选择器的原理比较简单,首先必须设置一个选择标志信号,目的就是为了从多路信号中选择所需要的一路信号,选择标志信号的一种状态对应着一路信号。

在应用中,设置一定的选择标志信号状态即可得到相应的某一路信号。

这就是数据选择器的实现原理。

实验内容1、分别采用原理图和VHDL语言的形式设计4选1数据选择器2、对所涉及的电路进行编译及正确的仿真。

三、实验条件Quartus II实验环境四、实验与仿真原理图:D0 、D1、D2、D3 :输入数据A1 、A0 :地址变量由地址码决定从4路输入中选择哪1路输出。

(2)真值表如下图:仿真结果:St为功能端。

当st=1时y=0;当st=0时选择器才开始工作。

当a1a0=00时y=d0a1a0=01时y=d1a1a0=10 时y=d2a1a0=11时y=d3完成了四选一的功能。

Vhdl编码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity mux4 isport(a0,a1,a2,a3:in std_logic;s:in std_logic_vector(1 downto 0);y:out std_logic);end mux4;architecture archmux of mux4 isbeginy<=a0 when s="00" elsea1 when s="01" elsea2 when s="10" elsea3;end archmux;仿真:当s=0时y=a1;当s=1时y=a1;当s=2时y=a2;当s=3时y=a3 。

VHDL语言设计4选1多路选择器讲解学习

VHDL语言设计4选1多路选择器讲解学习

V H D L语言设计4选1多路选择器4选1多路选择器的VHDL描述要求:THEN语句和CASE语句实现4选1多路选择器,其中选择控制信号s1和s0的数据类型为STD_LOGIC_VECTOR;当s1=‟0‟,s0=‟0‟;s1=‟0‟,s0=‟1‟;s1=‟1‟,s0=‟0‟和s1=‟1‟,s0=‟1‟时,分别执行y<=a、y<=b、y<=c、y<=d。

一、解法1:用IF_THEN语句实现4选1多路选择器(1)程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux41 ISPORT (a,b,c,d: IN STD_LOGIC;s0: IN STD_LOGIC;s1: IN STD_LOGIC;y: OUT STD_LOGIC);END ENTITY mux41;ARCHITECTURE if_mux41 OF mux41 ISSIGNAL s0s1 : STD_LOGIC_VECTOR(1 DOWNTO 0);--定义标准逻辑位矢量数据BEGINs0s1<=s1&s0; --s1相并s0,即s1与s0并置操作PROCESS(s0s1,a,b,c,d)BEGINIF s0s1 = "00" THEN y <= a;ELSIF s0s1 = "01" THEN y <= b;ELSIF s0s1 = "10" THEN y <= c;ELSE y <= d;END IF;END PROCESS;END ARCHITECTURE if_mux41;(2)编译的结果如下:编译报告:二、解法2:用CASE语句实现4选1多路选择器(1)程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux41 ISPORT (a,b,c,d: IN STD_LOGIC;s0: IN STD_LOGIC;s1: IN STD_LOGIC;y: OUT STD_LOGIC);END ENTITY mux41;ARCHITECTURE case_mux41 OF mux41 ISSIGNAL s0s1 : STD_LOGIC_VECTOR(1 DOWNTO 0);--定义标准逻辑位矢量数据类型BEGINs0s1<=s1&s0; --s1相并s0,即s1与s0并置操作PROCESS(s0s1,a,b,c,d)BEGINCASE s0s1 IS --类似于真值表的case语句WHEN "00" => y <= a;WHEN "01" => y <= b;WHEN "10" => y <= c;WHEN "11" => y <= d;WHEN OTHERS =>NULL ;END CASE;END PROCESS;END case_mux41;(2)编译结果:编译报告:。

EDA实验报告(四选一、四位比较器、加法器、计数器、巴克码发生器)

EDA实验报告(四选一、四位比较器、加法器、计数器、巴克码发生器)

EDA实验报告(四选一、四位比较器、加法器、计数器、巴克码发生器)EDA实验报告实验14选1数据选择器的设计一、实验目的1.学习EDA软件的基本操作。

2.学习使用原理图进行设计输入。

3.初步掌握器件设计输入、编译、仿真和编程的过程。

4.学习实验开发系统的使用方法。

二、实验仪器与器材1.EDA开发软件一套2.微机一台3.实验开发系统一台4.打印机一台三、实验说明本实验通过使用基本门电路完成4选1数据选择器的设计,初步掌握EDA设计方法中的设计输入、编译、综合、仿真和编程的过程。

实验结果可通过实验开发系统验证,在实验开发系统上选择高、低电平开关作为输入,选择发光二极管显示输出电平值。

本实验使用Quartus II 软件作为设计工具,要求熟悉Quartus II 软件的使用环境和基本操作,如设计输入、编译和适配的过程等。

实验中的设计文件要求用原理图方法输入,实验时,注意原理图编辑器的使用方法。

例如,元件、连线、网络名的放置方法和放大、缩小、存盘、退出等命令的使用。

学会管脚锁定以及编程下载的方法等。

四、实验要求1.完成4选1数据选择器的原理图输入并进行编译;2.对设计的电路进行仿真验证;3.编程下载并在实验开发系统上验证设计结果。

五、实验结果4选1数据选择器的原理图:仿真波形图:管脚分配:实验2 四位比较器一、实验目的1.设计四位二进制码比较器,并在实验开发系统上验证。

2.学习层次化设计方法。

二、实验仪器与器材1.EDA 开发软件 一套 2.微机 一台 3.实验开发系统 一台 4.打印机 一台 5.其它器件与材料 若干 三、实验说明本实验实现两个4位二进制码的比较器,输入为两个4位二进制码0123A A A A 和0123B B B B ,输出为M(A=B ),G (A>B )和L (A<B )(如图所示)。

用高低电平开关作为输入,发光二极管作为输出,具体管脚安排可根据试验系统的实际情况自行定义。

EDA技术4选1多路选择器实验报告

EDA技术4选1多路选择器实验报告

EDA技术4选1多路选择器实验报告实验报告:EDA技术4选1多路选择器实验一、实验目的本实验旨在通过EDA(Electronic Design Automation)技术,利用4选1多路选择器实现数据选择功能,加深对数字电路设计基础知识的理解,掌握EDA技术的实际应用。

二、实验原理4选1多路选择器是一种数字逻辑电路,它有4个数据输入端,1个数据输出端和2个选择端。

通过控制选择端的状态,可以选择其中一个数据输入端的数据输出到输出端。

三、实验步骤1.实验准备在实验前,需要准备以下设备和软件:•数字逻辑实验箱•EDA软件(如Quartus II)•连接线若干•万用表•实验电路板•4选1多路选择器芯片(如74LS153)•发光二极管及限流电阻(用于显示输出结果)2.实验操作(1)将4选1多路选择器芯片连接到实验电路板上,并按照要求连接发光二极管及限流电阻。

(2)使用EDA软件创建新项目,并选择合适的FPGA芯片型号。

(3)在新项目中添加4选1多路选择器模块,并将其与FPGA芯片连接。

(4)根据实验要求,编写控制逻辑的VHDL或Verilog代码。

(5)将控制逻辑代码编译并下载到FPGA芯片中。

(6)使用万用表检查连接是否正确,发光二极管是否亮起。

(7)通过改变选择端的输入状态,观察发光二极管亮灭情况,验证4选1多路选择器的数据选择功能。

四、实验结果与分析通过本次实验,我们成功地利用4选1多路选择器实现了数据选择功能。

在EDA软件中,我们设计了合适的控制逻辑,将选择的输入数据传送到输出端,并通过发光二极管显示输出结果。

当改变选择端的输入状态时,观察到发光二极管的亮灭情况随之改变,证明了4选1多路选择器的数据选择功能。

通过本次实验,我们深入了解了数字电路设计的基本知识,掌握了EDA技术在实践中的应用。

通过使用EDA软件进行设计、编译和下载程序,我们能够更加便捷地进行数字电路实验。

此外,通过实际操作,我们学会了使用数字逻辑实验箱、万用表等实验设备,提高了实践操作能力。

VHDL语言设计4选1多路选择器演示教学

VHDL语言设计4选1多路选择器演示教学

VHDL 语言设计 4 选 1多路选择器4选1多路选择器的VHDL描述要求:THEN语句和CASE语句实现4选1多路选择器,其中选择控制信号 si和s0 的数据类型为STD_LOGIC_VECTORs仁?O?,sO=?O?; s仁?O?,sO=?1?; s1=? 1?,sO=?O?和s仁?1?,sO=?1?时,分别执行 y<=a、yv=b、yv=c、yv=d。

一、解法1:用IF_THEN语句实现4选1多路选择器(1)程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux41 ISPORT (a,b,c,d: IN STD_LOGIC;sO: IN STD_LOGIC;s1: IN STD_LOGIC;y: OUT STD_LOGIC);END ENTITY mux41;ARCHITECTURE if_mux41 OF mux41 ISSIGNAL sOs1 : STD_LOGIC_VECTOR(1 DOWNTO 0)定义标准逻辑位矢量数据 BEGINsOs1<=s1 &s0; --s1 相并sO,即s1与sO并置操作PROCESS(sOs1,a,b,c,d)BEGINIF sOs1 = "00" THEN y <= a;ELSIF s0s1 = "01" THEN y <= b;ELSIF s0s1 = "10" THEN y <= c;ELSE y <= d;END IF;END PROCESS;END ARCHITECTURE if_mux41;(2)编译的结果如下:_1 ―LIBRARYZ USE IEEE・2rTD_L0GTC_l.l石岂・ALL;3 3 EWTITY ttittK41lS3 SPORT (引4 6* IN 5TD_LOfJIC;55U;IN STP_LOGIC;631:IN ST^OGIC:7y:OUT 号T D I L OGM):a EMD ENTITY mux41;9: ■: ARCHITECTURE l£_mux41 OF ntux^a IS10SIGMAL sOsl : STD_LOGIC_VECTOR (1 DOUWTO 0);—定义标准逻辑位矢虽数据11 B BEGIN12gOsK^gltsO;——s 上相并即R与如并査操柞13PROCESS [s口sl r a.to^cr,d)148EGIN15S IF sOst = J|00»THEN y <= a;IS S!ELS IF sOsl = f,m rr THEN y «h;17 BELSIF sOsl = M10r,THEN y <= c;19. ELSE y <- d;3 EMb TF^20EHD PROCESS;21EWP ARCHITECTURE22编译报告:Flow Status.Succsssfiil - !lon Miy 23 2^:24:40 201&Quartus II Versi on90 Buili 132 02/25/2009 S5 Full VersicnRe^isiom Name mix4iTop-level Entity Name n*ux4iFamily FLEK1CKDevice ErF10KIQlJCa4-4Timing Finfcl用包七tim lug r equir eniexit Y esTot 1®番iu ents 2 / 7T6 ( < 1 )Total pins T F阴〔12慕〕Total memory bi Is0/6.144 ( D % )二、解法2:用CASEg句实现4选1多路选择器(1)程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux41 ISPORT (a,b,c,d: IN STD_LOGIC;sO: IN STD_LOGIC;s1: IN STD_LOGIC;y: OUT STD_LOGIC);END ENTITY mux41;ARCHITECTURE case_mux41 OF mux41 ISSIGNAL s0s1 : STD_LOGIC_VECTOR(1 DOWNTO 0)定义标准逻辑位矢量数据类型BEGINs0s1<=s1 &s0; --s1 相并s0,即s1与s0并置操作PROCESS(s0s1,a,b,c,d)BEGINCASE s0s1 IS --类似于真值表的case语句WHEN "00" => y <= a;WHEN "01" => y <= b;WHEN "10" => y <= c;WHEN "11" => y <= d;WHEN OTHERS =>NULL ;END CASE;END PROCESS;END case_mux41;(2)编译结果:1LTBRARV IEEE;2USE IEEE,STD LOGIC i 15^1 .ALL;3j ENTITY K1UK41IS4SPORT (a f to r c r d: IN STD_LOGIC;5sn:IN STD_LCX;IC;651;IN TTD^LOGTC;7y: OUT STD^LOGIC);8ENDENTITY-H1UX41;9□ARCHITECTURE case_wux4i OF I»LD<41IS10SIGNAL sosl : 5TD~LOGIC_VECTOR(1 DOWNTO 口心--定文标准逻辑位矢區数据类型11/:BEGIN122031<=Sl£sa;__ml相并"0r Wsl与兰□并萱燥件13H PROCESS(snsl r a r b r e f ri)BEGIM15□CASE sOsl IS —斐馆于克值恚的c*匕语旬ie WHEN f,ao if -> y 5 a;17WHEN f,0i,F=> y <- b;!□WHEN "1口“三A y <= c;19WHEN rr ll FT F y a= d;20WHEN OTHERS =AHULL ;21 EWD 匚ASE;22EMD PROCESS;END case_inux41;24编译报告:Flo* Status SucceKifvl ~ Mon fflfcy 23 22 31:55 20fEQuartus II Version9.0 Btiild 132 02/25/20M ST lull VersionRevi'sicin Name mux41T op^laval Inti ty Nwna wux-41F anally FmiOKD evi. c e E?PLOE1Dire4-4Timkiig Jftoifvli FinUMet timing re^uir畑Total lagi c el 2 / 5T6 ( < 1 )Total pins7 / 5S ( 12 )T otal memory bits0 / e, 144 ( D 囂)。

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

(VHDL实验报告)四选一数据选择器的设计
数字电路EDA设计与应 用
四选一数据选择器
乱弹的枇杷
二、实验目的
1、熟悉四选一数据选择器的工作原理。
2、进一步掌握VHDL顺序语句和并行语句的使用。
3、进一步熟悉QUARTUSⅡ软件的使用方法和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%,文件成功加载完成。
五、实验步骤

四选一数据选择器实验报告

四选一数据选择器实验报告

四选一数据选择器11微电子黄跃1117426021【实验目的】1.四选一数据选择器,2.学习V erilog HDL文本文件进行逻辑设计输入;3.学习设计仿真工具modelsim的使用方法;【实验内容】1. 实现四选一数据选择器的“V erilog ”语言设计。

2. 设计仿真文件,进行验证。

【实验原理】数据选择器又称为多路转换器或多路开关,它是数字系统中常用的一种典型电路。

其主要功能是从多路数据中选择其中一路信号发送出去。

所以它是一个多输入、单输出的组合逻辑电路。

4选1数据选择器的元件符号如图一所示,其中D0、D1、D2、D3是4位数据输入端,A0和A0是控制输入端,Y是数据输出端。

当A1A0=00时,输出Y=D1;A1A0=01时,Y=D1;A1A0=10时,Y=D2;A1A0=11,Y=D3。

由真值表写出输出逻辑表达式301201101001)()()()(D A A D A A D A A D A A F +++=由逻辑表达式做出逻辑电路图。

【程序源代码】module mux4_1(sel,in,out);input [1:0] sel;input [3:0] in;output out;reg out;always@(sel or in) begincase ({sel[1],sel[0]})2'b00: out=in[0];2'b01: out=in[1];2'b10: out=in[2];2'b11: out=in[3];default: out=1'bx;endcaseendEndmodule测试程序代码如下:module test_mux4_1;reg [1:0] S;reg [3:0] IN;wire Y;mux4_1 M1(.sel(S),.in(IN),.out(Y));always #10 IN[0]=~IN[0];always #20 IN[1]=~IN[1];always #40 IN[2]=~IN[2];always #80 IN[3]=~IN[3];initialbegin S=1'b0;IN=4'h0;#100 $stop;endalways #10 S=S+1;endmodule【仿真和测试结果】【实验心得和体会】这次实验与上次相比有明显的进步,通过这次实验我对modelsim的应用更加得心应手,深切的体会到了verilog是一种描述性语言,这次实验总的来说是比较顺利的,但在实验过程中还是遇到了一些问题,比如端口的匹配问题,在写程序的时候误将位宽写在了变量名的后面,虽然程序能够运行但有警告,仿真波形是错误的,可见在写程序时警告有时也是致命的,这要求我们在学习的过程中思想一定要严谨!其次在做实验时一定要多想,例如在学习这门课时,书上说在模块外部输入可以是wire型或reg型,但在写程序时激励模块往往要初始化数据,所以编程时其类型往往声明为reg型,通过这个例子我明白了书上所说的有时往往是一个比较笼统的,而更多的需要我们自己去实践、探索、勤思考,只有这样我们才能把书本上的知识转化为属于我们自己的知识,才能在学习的道路上走的更远!原文已完。

四选一数据选择器的设计

四选一数据选择器的设计

XX大学实习(实训)报告实习(实训)名称:电工电子实习学院:专业、班级:指导教师:报告人:学号:时间: 2011年7月1日至 2011年7月8日实习主要内容:(1)了解EDA技术的发展及应用(2)掌握VHDL语言的基础知识,熟悉在数字电路系统设计中VHDL程序设计(3)学习MAX+PLUSⅡ软件的应用方法(4)应用EDA技术的设计方法完成4选1数据选择器的设计(采用原理图和文本法两种方法实现),并在MAX+PLUSⅡ上仿真主要收获体会与存在的问题:通过课程设计,发现自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。

同时也体会到设计课的重要性和目的性所在。

同时这次实习也有很多收获,首先我们学会了MAX+PLUSⅡ软件的应用方法,并且能够独立设计出原理图,其次本次设计课培养了我们实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,独立自主的进行设计的能力。

指导教师意见:建议成绩:指导教师签字:年月日备注:实习报告1.目的(1)通过实习掌握maxplus2软件的使用和VHDL语言的基础知识(2)应用maxplus2完成四选一数据选择器的设计,并实现仿真。

2.内容2.1 maxplus2的认识(1)Max+plusⅡ是Altera公司提供的FPGA/CPLD开发集成环境,Altera 是世界上最大可编程逻辑器件的供应商之一。

Max+plusⅡ界面友好,使用便捷,被誉为业界最易用易学的EDA软件。

在Max+plusⅡ上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,是设计者能方便地进行设计输入、快速处理和器件编程。

(2)、Max+plusⅡ开发系统的特点很多,比如开放性的界面,编辑过程与结构无关,丰富的设计库,硬件描述语等。

(3)、Max+plusⅡ软件具有开放核的特点,允许设计人员添加自己认为有价值的宏函数。

EDA技术4选1多路选择器实验报告

EDA技术4选1多路选择器实验报告

EDA技术4选1多路选择器实验报告实验报告:EDA技术4选1多路选择器1.引言多路选择器是一种常见的组合电路,用于从多个输入信号中选择出一个输出信号。

在数字电路设计中,采用EDA(Electronic Design Automation)技术可以方便地进行多路选择器的设计、模拟和验证。

本实验旨在使用EDA技术设计、模拟和验证一个4选1多路选择器。

2.设计本实验采用Verilog HDL语言进行设计。

首先,我们定义一个4位的输入端口sel,用于选择4个输入信号in0、in1、in2和in3中的一个。

然后,我们定义一个输出端口out,用于输出被选择的信号。

接下来是设计的核心部分,根据4位选择信号sel的不同取值,选择相应的输入信号作为输出信号。

我们使用一个case语句来实现多路选择器的选择功能。

3.仿真为了验证设计的正确性,我们使用EDA技术对多路选择器进行了仿真。

在仿真中,我们可以输入不同的选择信号和输入信号组合,观察输出结果是否符合预期。

通过仿真,我们可以验证多路选择器在不同输入和选择信号组合下的正确性和稳定性。

如果输出结果与预期一致,那么我们可以得出结论:设计的多路选择器是正确的。

4.验证验证是设计过程中非常重要的一步,通过验证可以判断设计是否达到了预期的功能和性能要求。

我们使用EDA技术对多路选择器进行了验证。

在验证过程中,我们更加注重多路选择器的性能指标,如延迟和功耗等。

我们可以通过模拟分析和优化来改进多路选择器的性能。

5.总结本实验通过使用EDA技术设计、模拟和验证了一个4选1多路选择器。

通过实验我们学习了EDA技术在数字电路设计中的作用和应用。

同时,我们了解了多路选择器的基本原理和设计方法,掌握了Verilog HDL语言的设计和仿真技巧。

通过本实验,我们发现EDA技术能够极大地提高数字电路设计的效率和准确性。

通过合理应用EDA技术,我们可以设计出更加可靠、高效的数字电路,并且可以方便地对其进行仿真和验证。

EDA4选一数据选择器程序

EDA4选一数据选择器程序

4选一LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX41A_ZXT ISPORT (A1,A0: IN STD_LOGIC;EN: IN STD_LOGIC;D3,D2,D1,D0: IN STD_LOGIC;Y: OUT STD_LOGIC);END ENTITY MUX41A_ZXT;ARCHITECTURE BHV OF MUX41A_ZXT ISSIGNAL A :STD_LOGIC_VECTOR(2 DOWNTO 0); BEGINA <= EN & A1 & A0;Y <= D0 WHEN A="000" ELSED1 WHEN A="001" ELSED2 WHEN A="010" ELSED3 WHEN A="011" ELSE'Z';END ARCHITECTURE BHV;3—8译码器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DEC38A_ZXT ISPORT ( A2,A1,A0: IN STD_LOGIC;S1,S2,S3: IN STD_LOGIC;Y: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END ENTITY DEC38A_ZXT;ARCHITECTURE EX2 OF DEC38A_ZXT ISSIGNAL A: STD_LOGIC_VECTOR(5 DOWNTO 0); BEGINA <= S1 & S2 & S3 & A2 & A1 & A0;WITH A SELECTY <= "11111110" WHEN "100000","11111101" WHEN "100001","11111011" WHEN "100010","11110111" WHEN "100011","11101111" WHEN "100100","11011111" WHEN "100101","10111111" WHEN "100110","01111111" WHEN "100111","ZZZZZZZZ" WHEN OTHERS; END ARCHITECTURE EX2;8-3编码器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ENC83A_ZXT ISPORT(I7,I6,I5,I4,I3,I2,I1,I0:IN STD_LOGIC;Y2,Y1,Y0: OUT STD_LOGIC);END ENTITY ENC83A_ZXT; ARCHITECTURE EX4 OF ENC83A_ZXT IS SIGNAL I: STD_LOGIC_VECTOR (7 DOWNTO 0); SIGNAL Y: STD_LOGIC_VECTOR (2 DOWNTO 0); BEGINI <= I7&I6&I5&I4&I3&I2&I1&I0; WITH I 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","ZZZ" WHEN OTHERS;Y2 <= Y(2);Y1 <= Y(1);Y0 <= Y(0);END ARCHITECTURE EX4;共阴极数码管LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DEC_DISPLAY_ZXT ISPORT(EN:IN STD_LOGIC;A: IN STD_LOGIC_VECTOR(3 DOWNTO 0);Ya,Yb,Yc,Yd,Ye,Yf,Yg: OUT STD_LOGIC); END ENTITY DEC_DISPLAY_ZXT; ARCHITECTURE EX3 OF DEC_DISPLAY_ZXT IS SIGNAL S: STD_LOGIC_VECTOR(4 DOWNTO 0); SIGNAL Y: STD_LOGIC_VECTOR(6 DOWNTO 0); BEGINS <= EN&A;WITH S SELECTY <= "1111110" WHEN "10000","0110000" WHEN "10001","1101101" WHEN "10010","1111001" WHEN "10011","0110011" WHEN "10100","1011011" WHEN "10101","1011111" WHEN "10110","1110000" WHEN "10111","1111111" WHEN "11000","1111011" WHEN "11001","0000000" WHEN OTHERS;Ya <= Y(6);Yb <= Y(5);Yc <= Y(4);Yd <= Y(3);Ye <= Y(2);Yf <= Y(1);Yg <= Y(0);END ARCHITECTURE EX3;#include <reg51.h>sbit s1=P3^5;void delay(){ unsigned char i,j;for (i=0;i<255;i++)for(j=0;j<255;j++);}void main(){unsigned char i;unsigned char temp;P0=0xff;while(s1==1){temp=0x01;for(i=0;i<8;i++){P0=~temp;delay();temp=temp<<1;}}while(s1==0){temp=0x80;for(i=0;i<8;i++) {{unsigned char i; unsigned char temp; P0=0xff;while(s1==1) {temp=0x01;for(i=0;i<8;i++){P0=~temp;delay();temp=temp<<1;}}while(s1==0) {temp=0x80;for(i=0;i<8;i++) {P0=~temp;delay();temp=temp>>1; }}。

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论文4选1多路选择器的设计

EDA论文4选1多路选择器的设计

4选1多路选择器的设计班级xxxxx 姓名xxxxx 学号xxxxxx一、内容摘要多路选择器是数据选择器的别称。

在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,叫做数据选择器,也称多路选择器或多路开并。

数据选择器的电路结构一般由于活门阵列而成,也有用传输门开关和门电路混合而成的。

多路选择器可以从多组数据来源中选取一组送入目的地。

它有4选1数据选择器、8选1数据选择器(型号为74151、74LS151、74251、74LS151)、16选1数据选择器(可以用两片74151连接起来构成)等之分。

多路选择器还包括总线的多路选择,模拟信号的多路选择等,相应的器件也有不同的特性和使用方法它的应用范围相当广泛,从组合逻辑的执行到数据路径的选择,经常可以看到它的踪影。

另外在时钟、计数定时器等的输出显示电路中经常利用多路选择器制作扫描电路来分别驱动输出装置,以降低功率的消耗。

有时也希望把两组没有必要同时观察的数据,设置为共享一组显示电路,以降低成本。

二、关键词关键词:多路选择器,逻辑图,逻辑函数三、问题分析设计内容一:根据以下流程,利用QuartusII完成四选一多路选择器的文本编辑输入和仿真测试等步骤,给出仿真波形。

设计内容二:在试验系统上硬件测试,验证此设计的功能。

对于引脚锁定以及硬件下载测试。

设计内容三:对VHDL不同描述方式的四选一多路选择器进行硬件实验,比较他们的特性。

四选一选择器VHDL源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4a1 ISPORT (input:IN STD_LOGIC_VECTOR(3 DOWNTO 0);a,b:IN STD_LOGIC;y:OUT STD_LOGIC );END ENTITY mux4a1;ARCHITECTURE rtl OF mux4a1 ISSIGNAL sel:STD_LOGIC_VECTOR (1 DOWNTO 0);BEGINsel<=b&a;PROCESS (input,sel) IS BEGIN IF(sel="00") THEN y<=input(0); ELSIF(sel="01") THEN y<=input(1); ELSIF(sel="10") THEN y<=input(2); ELSE y<=input(3); END IF;END PROCESS;END ARCHITECTURE rtl;程序分析:四选一多路选择器设计时,定义输入S 为标准以内漏记为STD_LOGIC,输出的信号y 的数据类型定义为2位标准逻辑矢量位STD_LOGIC_VECTOR( 1 DOWNTO 0 ).使用LIBRATY 语句和USE 语句,来打开IEEE 库的程序包STD_LOGIC_1164.ALL 。

eda实验报告(全加器,四选一数据选择器,交通灯)

eda实验报告(全加器,四选一数据选择器,交通灯)

浙师大数理与信息工程学院学生实验报告实验一简单组合逻辑电路设计1、实验目的熟悉软件使用,了解CPLD设计的过程。

用画逻辑图和直接使用VHDL语言的两种方法进行逻辑设计。

2、实验内容用开关K7,K8作为输入设置,从输出指示LED观察OUT21,22,23,24等的变化。

3、实验条件EDA实验箱、QUARTUS2软件4、实验设计原理图VHDL源程序library ieee;use ieee.std_logic_1164.all;entity shier isPort( k7,k8:in std_logic;out20,out21,out22,out23,out24:out std_logic); end shier;architecture sr of shier isbeginout20<=k7;out21<=not k7;out22<=k7 and k8;out23<=k7 or k8;out24<=k7 xor k8;end sr;波形仿真实验二三八译码器电路设计1、实验目的熟悉软件使用,了解CPLD设计的过程。

用画逻辑图和直接使用VHDL语言的两种方法进行逻辑设计。

2、实验内容用开关K1,K2,K3,K4作为输入设置,组成一个高输出有效的三八译码器,从输出指示LED观察OUT1到OUT8随K1,K1,K3置值的改变而引起相应的变化。

3、实验条件EDA实验箱、QUARTUS2软件4、实验设计原理图VHDL源程序library ieee;use ieee.std_logic_1164.all;entity shisan isport( a,b,c:in std_logic;y:out std_logic_vector(7 downto 0));end shisan;architecture one of shisan isbeginprocess(a,b,c)variable d:std_logic_vector(2 downto 0);begind:=(c&b&a);if d<="000" theny<="00000001";elsif d<="001" theny<="00000010";elsif d<="010" theny<="00000100";elsif d<= "011"theny<="00001000";elsif d<= "100"theny<="00010000";elsif d<="101"theny<="00100000";elsif d<="110" theny<="01000000";elsif d<="111" theny<="10000000";else null;end if;end process;end one;波形仿真实验四四选一数据选择器电路设计1、实验目的熟悉和了解VHDL语言涉及数字电路的流程,掌握完整的EDA设计方法。

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。

EDA技术4选1多路选择器实验报告

EDA技术4选1多路选择器实验报告
Y
0
0
A
0
1
B
1
0
C
1
1
D
(三)实验仪器及器材
PC机一台;Quartus II软件一套;KHF-5型实验开发系统一套
(四)实验方法及步骤
实验方法及步骤与实验一各个步骤一致,按照实验一进行就行。
1,打开Quartus II开发环境;
2,新建项目;
注意:文件夹名不能用中文,也最好不要用数字;不要将文件夹设在计算机已有的安装目录中,更不要将工程文件直接放在安装目录中。
3、完成软件仿真,管脚配置后下载进行硬件测试。3、完成简单与非门电路的VHDL设计或原理图设计,仿真后下载到实验箱上进行硬件测试。
(二)实验原理:
4选1数据选择器有两个地址输入端:S1、S0;4个数据输入端:D、C、B、A;1个输出端Y。其真值表如表1示。
表14选1数据选择器真值表
地址输入
输出
S0
S1
(五)实验数据及分析处理
源程序
4选1数据选择器--用IF-THEN语句
波形仿真结果
RTL电路图
(六)实验结果体会
实验前熟悉数据选择器的工作原理,实验过程中结合理论进行分析;并且初步掌握了QuartusⅡ环境下4选1数据选择器的VHDL设计或原理图设计。波形仿真时仍遇到问题,通过老师指导解决了那个问题,其他方面基本没问题,达到了实验目的。
实验报告
学院:电子信息工程学院专业:dianzi
电子信息工程技术2014年12月20日星期六
姓名
康杰
学号
2013030341079
班级
2013电技二班
指导师
余华
课程名称
EDA技术与VHDL

四选一数据选择器

四选一数据选择器

实验一四选一数据选择器的设计一.实验目的:1.进一步熟悉Max--PlusⅡ软件的使用2.学习用VHDL语言设计数字电路二.实验内容与要求:1.熟知四选一数据选择器的原理2.按实验内容的要求,编写程序3.提交实验报告三.源程序:1.if语句library ieee;use ieee.std_logic_1164.all;entity MUX4_1 isport(a,b,c,d:in std_logic_vector(3 downto 0);sel :in bit_vector(1 downto 0);y :out std_logic_vector(3 downto 0));end MUX4_1;architecture arch of MUX4_1 isbeginprocess(sel)beginif sel="00" then y<=a;elsif sel="01" then y<=b;elsif sel="10" then y<=c;elsif sel="11" then y<=d;end if;end process;end arch;2.with—select--when语句library ieee;use ieee.std_logic_1164.all;entity bxytdf isport(a,b,c,d:in std_logic_vector(3 downto 0);s :in std_logic_vector(1 downto 0);y :out std_logic_vector(3 downto 0));end bxytdf;architecture arch of bxytdf isbeginwith s selecty<=a when "00",b when "01",c when "10",d when "11",NULL when others;end arch;3. case语句LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY sy1 ISport(a,b,c,d:in std_logic_vector(3 downto 0);sel : in std_logic_vector(1 downto 0);y : out std_logic_vector(3 downto 0));END sy1;ARCHITECTURE arch OF sy1 ISBEGINPROCESS(sel)BEGINCASE sel ISWHEN "00"=>y<=a;WHEN "01"=>y<=b;WHEN "10"=>y<=c;WHEN "11"=>y<=d;WHEN OTHERS=>NULL;END CASE;END PROCESS;END arch;4.when--else语句library ieee;use ieee.std_logic_1164.all;entity Q4_1 isport(a,b,c,d:in std_logic_vector(3 downto 0);sel :in std_logic_vector(1 downto 0);y :out std_logic_vector(3 downto 0));end Q4_1;architecture arch of Q4_1 isbeginy<=a when sel="00" elseb when sel="01" elsec when sel="10" elsed;end arch;四.仿真波形图:1. if语句2.with—select--when语句3. case语句4.when--else语句。

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

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 is
port(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 is
signal s:std_logic_vector(1downto0);
signal y1:std_logic;
begin
process(en,y1)
begin
if(en='0')then
y<=y1;
else
y<='1';
end if;
end process;
s<=s2&s1;
y1<=a when s="00"else
b when s="01"else
c when s="10"else
d;
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。

经检验,符合逻辑。

5.注意事项
一定要建立文件夹,否则项目的全部文件会分散。

设计文件名与实体名必须相符。

仿真时,注意要选择functional,而不是timing。

相关文档
最新文档