设计二选一多路选择器--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设计
- 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程序的基本结构和设计特点。
掌握固定表达句式。