设计二选一多路选择器--FPGA实验设计
实验三4位2选1多路选择器的设计与实现
实验三 4位2选1多路选择器的设计与实现一.实验目的1.使用ISE软件设计并仿真;2.学会程序下载。
二.实验内容使用ISE软件进行4位2选1多路选择器的设计与实现。
三.实验步骤1. 编写文本文件并编译2. 软件仿真3. 进行硬件配置四.实验原理1. ISE软件是一个支持数字系统设计的开发平台。
2. 用ISE软件进行设计开发时基于相应器件型号的。
注意:软件设计时选择的器件型号是与实际下载板上的器件型号相同。
3. 图3-1所示为4位2选1多路选择器的原理图,本实验中用Verilog语句来描述。
图3-1 4位2选1多路选择器的原理图(1)新建工程双击桌面上“ISE Design Suite 14.7”图标,启动ISE软件(也可从开始菜单启动)。
每次打开ISE都会默认恢复到最近使用过的工程界面。
当第一次使用时,由于还没有历史工程记录,所以工程管理区显示空白。
选择File New--Project 选项,在弹出的对话框中输入工程名称并指定工程路径。
点击Next按钮进入下一页,选择所使用的芯片及综合、仿真工具。
计算机上安装的所有用于仿真和综合的第三方EDA工具都可以在下拉菜单中找到。
在图中我们选用了Spartan6 XC6SLX16芯片,采用CSG324封装,这是NEXYS3开发板所用的芯片。
另外,我们选择Verilog作为默认的硬件描述语言。
再点击Next按钮进入下一页,这里显示了新建工程的信息,确认无误后,点击Finish就可以建立一个完整的工程了。
(2)设计输入和代码仿真在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择New Source命令,选择Verilog Module输入,并输入Verilog文件名。
单击Next按钮进入端口定义对话框。
其中Module Name栏用于输入模块名,这里是mux24a,下面的列表框用于端口的定义。
Port Name表示端口名称,Direction表示端口方向(可选择为input、output或inout),MSB表示信号最高位,LSB表示信号最低位,对于单信号的MSB和LSB不用填写。
基于FPGA的2选1多路选择器设计
基于FPGA的2选1多路选择器设计1. 项⽬介绍 多路选择器,也叫数据选择器或多路开关,在多路数据传送过程中,能够根据需要将其中任意⼀路选出来的电路。
数据选择器⽤于控制有效数据的输出,能够通过地址选择线来选定相应的通道作为输出,提⾼了数据的传输效率。
(数据分配器⽤于数据的传输途径,在信号传输过程中能够通过地址选择线选择传输信道)。
2. 设计要求 设计⼀个2选1多路选择器,输⼊有两个单bit信号,和⼀个单bit的选择信号。
当选择信号为低电平时,将第⼀路信号输出,当选择信号为⾼电平时,将第⼆路信号输出。
3. 设计原理 该设计命名为mux2_1,第⼀路信号命名为dataa,第⼆路信号命名为datab,选择信号命名为sel,输出信号命名为odata,系统框图如下图所⽰。
根据设计要求,得真值表:dataa datab sel odata00000010010001111001101011011111 根据真值表,得到逻辑表达式: 转化为Verilog表达式为Odata = datab&sel | dataa&(~sel);4. 设计实现1module mux2_1(23input wire dataa,4input wire datab,5input wire sel,67output wire odata8 );910assign odata = (datab & sel) | (dataa & (~sel));1112endmodule5. 仿真验证1 `timescale 1ns/1ps23module mux2_1_tb();45reg dataa;6reg datab;7reg sel;89wire odata;1011 mux2_1 mux2_1_inst(12 .dataa (dataa),13 .datab (datab),14 .sel (sel),15 .odata (odata)16 );1718initial begin19 dataa = 1'b0; datab = 1'b0; sel = 1'b0; #20;20 dataa = 1'b0; datab = 1'b0; sel = 1'b1; #20;21 dataa = 1'b0; datab = 1'b1; sel = 1'b0; #20;22 dataa = 1'b0; datab = 1'b1; sel = 1'b1; #20;23 dataa = 1'b1; datab = 1'b0; sel = 1'b0; #20;24 dataa = 1'b1; datab = 1'b0; sel = 1'b1; #20;25 dataa = 1'b1; datab = 1'b1; sel = 1'b0; #20;26 dataa = 1'b1; datab = 1'b1; sel = 1'b1; #20; 27end2829endmodule参考资料: (1);。
fpga逻辑设计方案报告
fpga逻辑设计方案报告FPGA逻辑设计方案报告一、引言FPGA(Field-Programmable Gate Array,现场可编程门阵列)是一种可编程数字逻辑器件,具有灵活性和可重构性。
FPGA的设计涉及到逻辑电路设计、时序设计和综合优化等方面。
本报告旨在介绍FPGA逻辑设计方案的基本原理和方法。
二、FPGA逻辑设计基础1. FPGA架构:FPGA由可编程逻辑单元(CLB)、输入输出模块(IOB)和可编程互连资源(Interconnect)构成。
CLB是FPGA 中最基本的逻辑单元,包含查找表(LUT)、寄存器和多路选择器等。
IOB用于与外部设备进行数据交换。
Interconnect用于连接CLB和IOB,实现不同逻辑单元之间的互连。
2. FPGA编程语言:常见的FPGA编程语言包括VHDL和Verilog。
这些语言提供了描述数字逻辑电路的方式,可以通过编写代码来实现逻辑功能。
三、FPGA逻辑设计流程1. 需求分析:明确设计的功能和性能要求,确定逻辑电路的输入输出接口。
2. 模块划分:将整个设计任务划分为多个模块,每个模块负责实现一个特定的功能。
3. 逻辑设计:使用FPGA编程语言编写每个模块的逻辑电路描述。
在描述中使用逻辑门、寄存器、多路选择器等基本元件,通过组合和时序逻辑的方式实现所需功能。
4. 综合优化:对逻辑电路进行综合,将高级语言描述转化为逻辑门级的电路描述。
综合优化包括逻辑优化、时序优化和面积优化等。
5. 时序设计:对逻辑电路进行时序约束的设置,确保信号的传输满足时序要求。
时序设计包括时钟频率、时钟分频、时钟延迟等方面的考虑。
6. 布局布线:将逻辑电路映射到FPGA的物理资源上。
布局布线包括逻辑单元的位置分配和信号线的路径规划。
7. 静态时序分析:对布局布线后的电路进行时序分析,检查是否满足时序要求。
8. 配置生成:将逻辑电路的配置位流生成,用于配置FPGA芯片。
9. 下载与验证:将配置位流下载到FPGA芯片中,通过验证测试确保设计满足功能和性能要求。
Verilog入门训练3—二选一数据选择器
得到:F=AS + BS
A S
0
&
0
0
F
&
0 0
B
0
3. 使用 Quartus 8.0 建立项目, 建立过程和注意事项见前两周的实验指导, 选择器件时随便 指定一个。这里的项目名称为 mux21。 (切记项目保存路径和实验过程中新建的文件保 存路径都不要出现中文) 4. 项目建好后,新建 Verilog 选择“File”——“New”——“Verilog HDL file” 。输入以下代码
仿真成功后,回到波形文件,会弹出提示如下:
选择“是”来更新仿真结果,如下图所示:
根据仿真结果分析,例如在红线所在位置,S=1,因此 F 应该等于 B。这时候 B 的值为 0,因 此 F=0,结果正确。也可以从其他任意位置分析,看电路是否符合要求。 7. 指定引脚 点击“File”——“Save Project” ,然后关闭 quartus 8.0。打开 Quartus 11.0,选择“Open Project” ,找到上面保存的项目。项目打开后,首先更换器件,方法如下:点击项目中 器件(刚才随便指定的) ,右键,选择“Device”
在出现的编辑界面左侧右键,选择如下:
在“Insert Node or Bus”里选择“Node Finder…”
在弹出来的 “Node Finder” 中 ,首先 在“Filter” 中 选择 “Pins: Unassigned” , 然 后点 击“list” ,
在“Nodes Found”中会列出所有的引脚,第三步选择全部引脚(鼠标拉) ,点击“>>” , 最 后点击“OK”即可。在回到的“Insert Node or Bus”界面点击“OK” 。
2选1多路选择器数选器muxverilog
2 实验22.1 实验内容题目:设计一个1位的二选一多路选择器要求:1.使用门级描述实现 2.使用逻辑表达式实现 3.使用if条件语句实现4.出现正确的仿真波形,无需板子上验证。
2.2 实验步骤1.系统设计设计1位2选1选通器需要三个输入一个输出,其中中输入需要1根地址线两根数据线。
设输入一位数据a,b,地址为addr,输出为Out,根据2to1选通器的特_______点,可得其逻辑表达式为:out=a·addr+b·addr(1)门级描述需要两个与门一个非门一个或门,其中所有变量均为wire类型,且需要三个wire类型中间变量储存信号。
(2)逻辑表达式源代码中用assign out=sel?a:b;或assign out=(a&sel)|(b&~sel);(3)If条件语句If语句在always语句中进行判断。
2.RTL原理图(1)门级结构(2)逻辑语句使用两种逻辑语句进行RTL分析结果略有不同,out=sel?a:b;会分析出来一个2选1选通器而out=(a&sel)|(b&~sel);分析结果与门级结构类似1)out=sel?a:b;2)out=(a&sel)|(b&~sel);(3)if语句3.重要源代码及注释(1)门级结构module mux2_1(a,b,out,addr);input a,b,addr;output out;wire naddr,a1,b1;//定义中间变量not (naddr,addr);and (b1,b,naddr);and (a1,a,addr);or (out,a1,b1);endmodule(2)逻辑语句module luoji(input a,input b,input sel,output out);assign out=(a&sel)|(b&~sel);endmodule(3)if语句module mux2_1if(a,b,sel,out);input a,b,sel;output out;reg out;always@(a or b or sel)beginif(sel) out=a;else out=b;end2.3 结果分析1.Testbench代码(3种方式testbench 中代码类似,此处以if语句为例)module mux2_1if_tb();reg a,b,sel;mux2_1if m1(a,b,sel,out);initialbegina=0;b=0;sel=0;endalwaysbegin#10 a<=~a;endalwaysbegin#20 b<=~b;endalwaysbegin#15 sel<=1;#8 sel<=0;endendmodule2.仿真波形图(1)门级结构(2)逻辑语句(3)If语句3.说明三种方式均定义当选择端值为1时输出a,选择端值为0输出b;其中逻辑语句与if语句testbench部分代码相同,门级结构咯有不同,三种波形仿真图像均正确,符合2选1选通器功能。
实验二 四选一多路选择器的设计
实验二四选一多路选择器的设计姓名:庞啟明学号:1112120110 专业:自动化一、实验目的进一步熟悉QuartusⅡ的Verilog HDL文本设计流程,学习组合电路的设计、仿真和硬件测试。
二、实验原理if_else条件语句描述方式,以过程语句引导的顺序语句,适合描述复杂逻辑系统的行为描述语句。
(1)以模块定义语句关键词module_endmodule引导完整的电路模块。
(2)以input和output语句引导模块的外部端口。
(3)以reg等关键词定义模块内将出现的相关信息的特征和数据类型。
(4)以always @ 等关键词引导对模块逻辑功能描述的语句。
负责描述电路器件的内部逻辑功能和电路结构。
三、实验设备与软件平台实验设备:计算机、FPGA硬件平台是Cyclone系列FPGA软件平台:Quartus II 9.1 (32-Bit)、5E+系统四、实验内容编写Verilog程序描述一个电路,实现以下功能:具有6个输入端口 A、B、C、D、S1、SO,A、B、C、D均为输入端口,位宽为1;Sl、S0为通道选择控制信号端,位宽为1;Y为输出端口,位宽为1。
当S1S0为“00”时,A的数据从Y输出,S1S0为“01”时,B的数据从Y输出,S1S0为“10”时,C的数据从Y输出,S1S0为“11”时,D的数据从Y输出。
五、实验步骤设计流程:1、编辑和输入设计文件(1)、新建一个文件夹如D:\MUX41 ,本工程所有文件将存放在此目录中。
1)输入VHDL源程序打开QuartusII,选择菜单File->New。
选择Verilog HDL File,输入源程序。
2)文件存盘选择File->Save As命令,找到已设立的文件夹D:\MUX41,存盘文件名应与实体名一致,存盘为MUX41.v。
当出现语句“do you want to create…..”的对话框,选择“是”自动创建工程。
这里先选择“否”,即暂时不创建工程流程。
EDA---多路选择器的设计实验
多路选择器的设计实验一.实验项目多路选择器的设计二.实验目的1.进一步熟悉Quartus II的VHDL文本设计流程,组合电路的设计仿真和硬件测试。
2.通过用VHDL设计一个4选1的多路选择器,掌握使用VHDL输入方式,进行FPGA/CPLD电路设计的方法。
3.熟悉多路选择器的功能。
三.实验设备及工具Quartus II 18.1四.实验内容与步骤1.准备工作:创建Quartus II项目。
2.设计输入:采用HDL输入方式。
新建文件(菜单File/ New...)选择VHDL文件类型(VHDL File),扩展名*.vhd,输入VHDL设计的代码,文件存盘。
3.编译、综合:在Processing菜单选择Start Compilation 项自动进行编译。
4.进行仿真:功能仿真、时序仿真。
新建“激励信号”的波形文件:(菜单File/New...)选择波形文件类型(Wector Waveform File)选择要仿真的节点:在“Name”列空白处,右键菜单,如上图所示。
选择菜单“Insert Node or Bus...”,在对话框选择“Nodes Finder”按钮根据过滤条件,列出节点名称:List选择节点 OK根据需要编辑输入端口“激励信号”的波形注意:保存波形文件,默认文件名即可。
运行仿真工具:如果仿真没有错误,则完成后自动打开仿真结果的波形窗口(仿真报告窗口)。
检查仿真波形是否正确:注意,需要人工判定结果,是否跟设计要求相符。
5. 器件编程:把设计下载到目标电路上,用实际器件验证设计是否正确。
正确连接下载线(电脑和目标电路板之间)在Tools 菜单内选择Programmer项(或者按钮),出现编程器窗口。
指定下载电缆类型:Byte Blaster、USB Blaster等。
选择下载(配置、烧录)方式:JTAG、AS等下载的目标文件:*.sof、*.pof勾选“Program/Configure”,CPLD器件可以选择加密器件点击Start按钮,开始下载五. 实验结果及结果分析多路选择器的代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY A ISPORT(h,i,j,k : IN STD_LOGIC;x,y : IN STD_LOGIC;z : OUT STD_LOGIC);END ENTITY A;ARCHITECTURE BHV OF A ISSIGNAL S :STD_LOGIC_VECTOR(1 DOWNTO 0); BEGINS <= x & y ;PROCESS(x,y)BEGINCASE (S) ISWHEN"00"=> z<=h;WHEN"01"=> z<=i;WHEN"10"=> z<=j;WHEN"11"=> z<=k;when OTHERS => NULL ;END CASE;END PROCESS;END ARCHITECTURE BHV ;多路选择器的编译:多路选择器的仿真:结果分析:a,b,c,d是4个输入端口,s1和s0为通道选择控制信号端,y为输出端。
2选1多路选择器的VerilogHDL设计
三、实验HDL描述:
四、仿真结果:
由上图可见,当输入的s为高电平时,输出的y和a的波形一致;而当输入的s为低电平时,输出的y和b一致。
五、引脚锁定:
六、硬件测试结果:
上图为通过JTAG接口下载程序
实验效果:按下和松开键1,SPEAKER会发出不同的尖叫声,证明电路运行正确。
七、实验心得:
通过本次实验,初步了解了QuartusII的基本操作方法,根据PPT和老师的详细讲解,熟悉了2选1多路选择器的文本编辑输入和仿真设置及测试。有了这次入门实验的经验,为后续实验打下了良好的基础。
2、学习简单组合电路的设计、仿真和硬件测试。
二、实验内容:
按照PPT文件“Quartus II 9.0基本设计流程-VerilogHDL.ppt”所讲述的步骤,利用QuartusII完成2选1多路选择器的文本编辑输入(mux21a.v)和仿真测试等步骤,给出仿真波形。
若目标器件是EP3C40Q240C8N,建议选实验电路模式5,用键1作为控制端s;a和b分别接clock5、clock0,输出信号y接扬声器speaker。通过短路帽选择clock0接256Hz信号,clock5接1024Hz。最后进行编译、下载和硬件测试实验。
附表1:
广州大学学生实验报告
开课学院及实验室:物理与电子工程学院-电子楼317室2016年4月18日
学院
物电
年级、专业、班
姓名
Jason.P
学号
实验课程名称
EDA技术实验
成绩
实验项目名称
2选1多路选择器的VerilogHDL设计
2选1数据选择器
信息学院上机实验报告学号:094100135 姓名:汤亚萍班级:09级B班课程名称:EDA设计与SOPC技术上机内容:2选1数据选择器上机实验性质:□综合性实验√设计性实验□验证实验实验时间:2012 年11 月14 日实验地点:睿智楼4幢415 实验设备:见下实验报告:(包括:目的、方法、原理、结果或实验小结等)。
一、实验目的:设计并实验一个2选1数据选择器。
二、实验原理2选1数据选择器的电路符号如图1所示。
输入信号:两个数据源a和b;选择端sel。
输出信号:选择输出端out。
利用选择端sel对输出端进行控制。
达到2选1数据选择器的效果。
a outbsel图1(mux2_1a)三、实验方法及步骤:1.根据实验要求,采用文本编辑法,利用verilog HDL语言描述2选1数据选择器,代码如下。
2.对写好的代码进行编译,编译成功后进行保存。
3.编译完成后在Quartus II软件中对其进行编译和引脚分配,最后把编译正确后得到的.sof文件下载到实验箱。
如图2所示:图24.实验结果验证:把生成的.sof文件下载到实验箱后,对应于自己分配的引脚与小灯连接好线。
观察小灯的亮、灭是否符合2选1数据选择器。
观察实验结果如下:当控制端sel=0时,a输出,当a=0时,小灯不亮,当a=1时,小灯亮;当控制端sel=1时,b输出,当b=0时,小灯不亮,当b=1时,小灯亮。
四、实验小结:通过这次实验让我学会了如何分析问题,并能根据问题的具体要求运用Verilog HDL语言进行描述。
写出相应的代码,实现要到达的实验结果。
同时还让我对Quartus II软件的一些基本属性和功能掌握得更加熟练和完整。
但仍存在着不足,运用Verilog HDL语言进行功能描述是非常的灵活的,有多种设计方法。
要真正熟练的掌握和运用并不是件容易的事。
还需要多加练习。
任课教师评语:教师签字:年月日注:每学期至少有一次设计性实验。
每学期结束请任课教师按时按量统一交到实验中心处。
EDA实验报告8位二选一多路选择器
学号:201400800093 姓名:胡玲专业:电子信息科学与技术科目:电子设计自动化EDA 实验名称:8位二选一多路选择器
一.实验要求
实验要求:1通过有限状态机的VHDL设计初步了解VHDL表达和设计电路的方法2根据学过的一位二选一选择器改进VHDL语言而掌握8位二选一多路选择器
三.RTL图
四.波形仿真图:
由源代码可知a_fin=a_dis,b_fin=b_dis,但由波形仿真图可知在同一时刻它们并不一定相等,而是存在延迟,结果s_fin也是和对应的输入值存在延迟,如果不考虑延迟,结果正确。
例:t=40ns时输入是1010+0001结果是1011,无进位。
五:实验结果
1.用开关sw17-14表示输入的四位二进制A(17-14分别表示A0-A3),并用LEDR17-14显示。
sw13-10表示输入四位二进制B(13-10分别表示B3-B0)并用LEDR13-10显示。
KEY0用于复位KEY1用于做时钟信号LEDR3-0表示输出的四位二进制数LEDG8(绿灯)显示进位输出。
2.按下复位键—用开关确定输入值(例如输入为1111+1000)—按下时钟信号键—可显示红灯为0111以及绿灯亮有进位。
3.可知结果正确。
六.实验体会及心得
1.做实验前先预习实验内容,学以致用和大胆改进很重要。
2.代码写错没关系,几十个错误也没关系,不能复制粘贴那样学不到东西,与同学探讨很有意义,最后结果出来再回过头研究代码会觉得更了解每一步代码。
3.实验过程中切记避免心浮气躁,急于出结果,如果实在没思路可以看同学代码但一定要看懂在之上进行改变看结果。
基础项目(2)二选一数据选择器的设计
基础项⽬(2)⼆选⼀数据选择器的设计写在前⾯的话数据选择器在数字电路设计中的应⽤尤为⼴泛。
同时,作为基础的电路功能单元,也⽐较适合作为初学者的⼊门实验。
现在梦翼师兄陪⼤家⼀起来设计⼀个最基础的数据选择器。
项⽬需求设计⼀个⼆选⼀数据选择器,然后⽤⼀路控制信号选择输出数据选通哪⼀路输⼊的数据信号。
系统架构模块功能介绍模块名功能描述mux2通过Data_sel 选择输出结果的值顶层模块端⼝描述端⼝名端⼝说明Data_a A通道数据输⼊Data_b B通道数据输⼊Data_out数据输出端Data_sel数据选通控制代码解释mux2代码解释/***************************************************** Engineer : 梦翼师兄* QQ : 761664056* The module function:⼆选⼀多路器*****************************************************/00 module mux2(01 data_a, //A通道数据输⼊02 data_b, //B通道数据输⼊03 data_sel, //输出数据选通信号04 data_out //数据输出05 );06 //系统输⼊07 input data_a; //A通道数据输⼊08 input data_b; //B通道数据输⼊09 input data_sel; //输出数据选通信号10 //系统输出11 output reg data_out;//数据输出12 //⼆选⼀多路器控制逻辑13 always@(*)14 begin14 begin15 if(data_sel)//选通信号为⾼电平16 data_out=data_a;//输出结果为A通道数据17 else //选通信号为低电平18 data_out=data_b;//输出结果为B通道数据19 end20 endmodule01~05⾏列出了多路器所有输⼊/输出接⼝,07~11⾏定义了端⼝属性,13~19⾏描述了⼆选⼀多路器的逻辑功能。
西北工业大学-数字电子技术基础-实验报告-实验2
西北⼯业⼤学-数字电⼦技术基础-实验报告-实验2数字电⼦技术基础第⼆次实验报告⼀、题⽬代码以及波形分析1. 设计⼀款可综合的2选1多路选择器①编写模块源码module multiplexer(x1,x2,s,f);input x1,x2,s;output f;assign f=(~s&x1)|(s&x2);endmodule②测试模块`timescale 1ns/1psmodule tb_multiplexer;reg x1_test;reg x2_test;reg s_test;wire f_test;initials_test=0;always #80 s_test=~s_test;initialbeginx1_test=0;x2_test=0;#20x1_test=1;x2_test=0;#20x1_test=0;x2_test=1;#20x1_test=1;x2_test=1;#20x1_test=0;x2_test=0;#20x1_test=1;x2_test=0;#20x1_test=0;x2_test=1;#20x1_test=1;x2_test=1;endmultiplexer UUT_multiplexer(.x1(x1_test),.x2(x2_test),.s(s_test),.f(f_test));endmodule③仿真后的波形截图④对波形的分析本例⽬的是令s为控制信号,实现⼆选⼀多路选择器。
分析波形图可以知道,s为0时,f 输出x1信号;s为1时,f输出x2信号。
所以实现了⽬标功能。
2. 设计⼀款可综合的2-4译码器①编写模块源码module dec2to4(W,En,Y);input [1:0]W;input En;output reg [0:3]Y;always@(W,En)case({En,W})3'b100:Y=4'b1000;3'b101:Y=4'b0100;3'b110:Y=4'b0010;3'b111:Y=4'b0001;default:Y=4'b0000;endcaseendmodule②测试模块`timescale 1ns/1psmodule tb_dec2to4;reg [1:0]W_test;reg En_test;wire [0:3]Y_test;initialEn_test=0;always #80 En_test=~En_test;initialbeginW_test=2'b00;#20W_test=2'b01;#20W_test=2'b11;#20W_test=2'b10;#20W_test=2'b00;#20W_test=2'b01;#20W_test=2'b11;#20W_test=2'b10;#20W_test=2'b00;enddec2to4 UUT_dec2to4(.W(W_test),.En(En_test),.Y(Y_test));endmodule③仿真后的波形截图④对波形的分析本例⽬的是实现可综合的2-4译码器,其中数组W是输⼊信号,共有两个值,输⼊⼀个两位⼆进制数据,⽬的是通过译码器将它转换成独热码,数组Y是输出信号,输出四个⼆进制数据,构成独热码。
组合逻辑最终版
组合逻辑实验报告实验一多路选择器设计实验目的:掌握组合逻辑的基本设计方法;掌握多路选择器的基本原理实验内容:设计一个二选一多路选择器,要求将两个开关作为多路选择器的输入信号,一个拨码开关作为控制信号,同时将所有输入和输出信号连接到LED 发光二极管。
通过开关改变输入控制信号和输入信号取值,观测L ED 验证多路选择器的正确性。
(1)设计一个二选一多路选择器,采用卡诺图方法设计电路逻辑。
(2)分析二选一多路选择器的竞争冒险现象,并提出解决方法。
(3)采用上述二选一多路选择器构建四选一多路选择器。
(4)采用拨码开关作为多路选择器的控制信号和输入信号,同时,将所有输入和输出信号连接到L ED 发光二极管,以便观察。
实验原理和设计方案:二选一多路选择器:逻辑方程为四选一多路选择器可由三个二选一多路选择器构成,其中两个的输入为s0,输出为y1,y2,再将y1,y2作为第三个二路选择器的选择端,其输入为s1.文件代码清单:二选一:2_1.v四选一:4_1.v仿真结果及分析:(1)二选一多路选择器:(2)四选一多路选择器:(3)分析二路选择器竞争冒险现象的分析:给各个逻辑门设置相同的延时,使a0,a1同时改变,然后仿真看现象:可看到在a0,a1,s同时改变时出现了冒险现象。
改进方案:用时钟信号对输出采样即可。
综合情况及硬件调试:(1)二选一:资源占用:========================================================================= * Design Summary * =========================================================================Top Level Output File Name : multiplexer2_1.ngcPrimitive and Black Box Usage:------------------------------# BELS : 1# LUT3 : 1# IO Buffers : 7# IBUF : 3# OBUF : 4Device utilization summary:---------------------------Selected Device : 6slx16csg324-3Slice Logic Utilization:Number of Slice LUTs: 1 out of 9112 0% Number used as Logic: 1 out of 9112 0%Slice Logic Distribution:Number of LUT Flip Flop pairs used: 1Number with an unused Flip Flop: 1 out of 1 100% Number with an unused LUT: 0 out of 1 0% Number of fully used LUT-FF pairs: 0 out of 1 0%Number of unique control sets: 0IO Utilization:Number of IOs: 7Number of bonded IOBs: 7 out of 232 3%Specific Feature Utilization:---------------------------Partition Resource Summary:---------------------------No Partitions were found in this design.---------------------------时序性能:========================================================================= Timing ReportNOTE: THESE TIMING NUMBERS ARE ONLY A SYNTHESIS ESTIMATE.FOR ACCURATE TIMING INFORMATION PLEASE REFER TO THE TRACE REPORTGENERATED AFTER PLACE-and-ROUTE.Clock Information:------------------No clock signals found in this designAsynchronous Control Signals Information:----------------------------------------No asynchronous control signals found in this designTiming Summary:---------------Speed Grade: -3Minimum period: No path foundMinimum input arrival time before clock: No path foundMaximum output required time after clock: No path foundMaximum combinational path delay: 5.602nsTiming Details:---------------All values displayed in nanoseconds (ns)========================================================================= Timing constraint: Default path analysisTotal number of paths / destination ports: 6 / 4-------------------------------------------------------------------------Delay: 5.602ns (Levels of Logic = 3)Source: s (PAD)Destination: out (PAD)Data Path: s to outGate NetCell:in->out fanout Delay Delay Logical Name (Net Name)---------------------------------------- ------------IBUF:I->O 2 1.228 0.845 s_IBUF (led2_OBUF)LUT3:I0->O 1 0.235 0.579 out1 (out_OBUF)OBUF:I->O 2.715 out_OBUF (out)----------------------------------------Total 5.602ns (4.178ns logic, 1.424ns route)(74.6% logic, 25.4% route)=========================================================================Cross Clock Domains Report:--------------------------=========================================================================Total REAL time to Xst completion: 5.00 secsTotal CPU time to Xst completion: 4.20 secs-->Total memory usage is 145604 kilobytesNumber of errors : 0 ( 0 filtered)Number of warnings : 0 ( 0 filtered)Number of infos : 0 ( 0 filtered)硬件调试:管脚绑定:NET "a0" LOC=T10;NET "a1" LOC=T9;NET "s" LOC=N8;NET "out" LOC=V15;NET "led0" LOC=U16;NET "led1" LOC=V16;NET "led2" LOC=U15;测试通过。
2选1多路选择器的VHDL描述[整理版]
一、实验目的01.学会使用VHDL语言并熟悉;0用VHDL语言完成2选1多路选择器设计和8位硬件加法器VHDL设计;02.二.实验设备:0名称规格数量0计算机586及以上1台0Quartus II软件 6.0以上0三、实验内容及步骤01.利用VHDL语言完成2选1多路选择器的设计01).打开Quartus II新建打开VHDL界面,输入程序,并保存名为mux21a.vhdl,程序如图3-1:0图3-1VHDL语言描述0在窗口中点击compile,编译成功如图3-2:0图3-202). 编译成功后,新建波形文件。
将上述描述语言进行波形仿真。
编译成功如图3-3,仿真波形如下图3-40图3-30图3-4仿真波形图0由此可得到结构图,如图3-50图3-508位硬件加法器的VHDL设计01.如同2选1多路选择器的设计类似,输入VHDL描述语言,保存到adder8b 工程中。
描述语言如下图3-60图3-602.编译成功后,新建波形文件。
将上述描述语言进行波形仿真。
仿真波形如下图3-7图3-70通过对波形的分析可知,达到设计目的。
0四、实验小结0,1.多路选择器是典型的组合电路,应该熟悉它们。
0,2.通过此次实验,可知主要考察通过VHDL语言编译器件的能力,因此对语言的描述一定要到位。
0,3.通过本次实验对VHDL描述语言的语法又有了更进一步的认识和熟悉,从整体上把握VHDL程序的基本结构和设计特点,为以后编辑大型器件奠定了厚实的基础。
0。
实验二 组合逻辑电路的设计 fpga
实验二组合逻辑电路的设计一、实验目的:1、掌握用VHDL语言和EPLD进行组合逻辑电路的设计方法。
2、加深对EPLD设计全过程的理解。
3、掌握组合逻辑电路的静态测试方法。
二、实验设备:PC机三、实验内容:1、用VHDL语言输入法设计三人表决器,其输入为8421码,要求当输入1的个数大于等于2时,判别电路输出为1;反之为0。
2、用VHDL语言输入法设计8-3编码器。
四、实验步骤:(一)三人表决器1、采用文本编辑器输入三人表决器VHDL语言源程序,建立工程。
VHDL语言源程序如下所示:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity bj isport (m:in std_logic_vector(2 downto 0);y:out std_logic);end;architecture one of bj isbeginprocess (m)beginif m="000" then y<='0';elsif m="001"then y<='0';elsif m="010"then y<='0';elsif m="011"then y<='1';elsif m="100"then y<='0';elsif m="101"then y<='1';elsif m="110"then y<='1';elsif m="111"then y<='1';end if;end process;end;2、编译并进行仿真,仿真结果如下所示:由仿真结果可以验证当输入1的个数大于等于2时,判别电路输出为1;反之为0。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
课程名称:FPGA设计及应用
实验项目:设计二选一多路选择器
实验时间:2014年4月1号
实验班级:12电子信息工程X班
指导教师:李XX
二〇〇四年四月十三日
广东技术师范学院实验报告
学院:电子与信息学
院
专业:电子信息工程班级:
12电
本X 班
成绩:
姓名:学号:20120442430 组别:组员:
实验地点:工业中心实验日期: 4.01 指导教师签名:
实验七项目名称:设计二选一多路选择器
一、实验目的和要求
设计二选一多路选择器:通过简单完整而典型的VHDL设计,初步了解VHDL表达和设计电路的方法并对由此而引出的语言对象和语言规则加以有针对性的说明。
二、实验步骤
预习情况操作情况考勤情况数据处理情况
1、创建新的工程,步骤如下:
2、创建新的文件
3、用VHDL语言根据实验要求的功能编写代码
4、编译
5、引脚分配
6、链接数据线,下载程序
三、实验源代码
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY mux21a IS
PORT(a,b:IN BIT;
s:IN BIT;
y:OUT BIT);
END;
ARCHITECTURE one OF mux21a IS
BEGIN
y<=a WHEN s='0' ELSE b;
END ARCHITECTURE one;
四、实验结果与总结
1、通过本节上机实验,加深了解了VHDL语言现象和语句规律。
2、程序很简单,按照示例程序输入没有什么错误。
主要是通过这个简单程序了解了仿真的全过程。
3、实验后基本能从整体上把握VHDL程序的基本结构和设计特点。
掌握固定表达句式。