欢迎来到我的范文网!

设计一个1位的四选一多路选择器,使用二选一多路选择器模块进行搭建

个人简历下载 时间:2020-07-08

【www.myl5520.com--个人简历下载】

实验三4位2选1多路选择器的设计与实现
篇一:设计一个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不用填写。当然,端口定义这一步我们也可以略过,在源程序中再行添加。

定义了模块的端口后,单击Next进入下一步,点击Finish完成创建。这样,

ISE就会自动创建一个Verilog模块的模板,并且在源代码编辑区打开。简单的注释、模块和端口定义已经自动生成,接下来的工作就是将代码编写完整。

输入代码后,我们还需要对模块进行测试。在工程管理区将view设置为Simulation,在任意位置单击鼠标右键,并在弹出的菜单中选择New Source,在类型中选择Verilog Test Fixture,输入测试文件名,单击下一步。这时所有工程中的模块名都会显示出来,我们选择要进行测试的模块。点击Next ,再单击Finish按钮,ISE会在源代码编辑区自动生成测试模块的代码。我们看到,ISE已经自动生成了基本的信号并对被测模块做了例化。我们的工作就是在initial?end块中的“//Add stimulus here”后面添加测试向量。

完成测试文件编辑后,确认工程管理区中view选项设置为Simulation,这时在过程管理区会显示与仿真有关的进程。右键单击其中的Simulate Behavioral Model项,选择弹出菜单中的Process Properties项,会弹出属性设置对话框,其中Simulation Run Time就是仿真时间的设置,可将其修改为任意时长。

仿真参数设置完后,就可以进行仿真。首先在工程管理区选中测试代码,然后在过程管理区双击Simulate Behavioral Model,ISE将启动ISE Simulator,可以得到仿真结果,如图3-2所示。

图3-2

(3) 综合与实现

在工程管理区的view中选择Implementation,然后在过程管理区双击

Synthesize-XST,就可以开始综合过程。

另外,要实现设计,还需要为模块中的输入输出信号添加管脚约束,这就需要在工程中添加UCF文件。在工程管理区单击鼠标右键,点击New Source,选择Implementation- Constraints File,出现一个空白的约束文件,我们就可以为设计添加各种约束。如果综合步骤没有语法错误,XST能够给出初步的资源消耗情况,点击Design Summary,即可查看。

在过程管理区双击Implementation Design选项,就可以自动完成实现步骤。如果设计没有经过综合,就会启动XST完成综合,在综合后完成实现过程。经过实现后能够得到精确的资源占用情况。在Design Summary即可看到具体的资源占用情况。

(4) 器件配置

硬件配置是FPGA开发最关键的一步,只有将HDL代码下载到FPGA芯片中,才能进行调试并最终实现相应的功能。首先我们必须生成能下载到硬件中的二进制比特文件。双击过程管理区的Generate Programming File,ISE就会为设计生成相应的二进制比特文件。

然后利用USB-MiniUSB缆线,来为开发板提供电源和数据下载。我们只需上网下载免费的Digilent Adept软件,即可快速实现Nexys3开发板上FPGA的配置。用USB-MiniUSB缆线连接开发板和PC,打开开发板的电源开关,然后启动Digilent Adept软件。系统开始自动连接FPGA设备,成功检测到设备后,会显示出JTAG链

上所用芯片。

界面上将显示检测到NEXYS3开发板上的器件FPGA(XC6SLX16)。这里我们对FPGA进行配置。在Browse中找到之前生成的设计的二进制比特文件,并点击旁边的Program按钮,软件就开始对FPGA进行配置。配置成功后,下面的状态栏会显示Programming Successful。至此,器件配置成功,我们就可以在器件上验证预期的设计有没有很好的得以实现。

五.实验结论

补充:(仅供参考)

1. 4位2选1多路选择器的verilog源代码

module mux24a(

input wire [3:0] a,

input wire [3:0] b,

input wire s,

output wire [3:0] y

);

assign y = {4{~s}} & a | {4{s}} & b;

endmodule

2.4位2选1多路选择器的约束文件

NET "a[0]" LOC = "T5";

NET "a[1]" LOC = "V8";

NET "a[2]" LOC = "U8";

NET "a[3]" LOC = "N8";

NET "b[0]" LOC = "M8";

NET "b[1]" LOC = "V9";

NET "b[2]" LOC = "T9";

NET "b[3]" LOC = "T10";

NET "s" LOC = "C9";

NET "y[0]" LOC = "T11";

NET "y[1]" LOC = "R11";

NET "y[2]" LOC = "N11";

NET "y[3]" LOC = "M11";

VLSI设计基础(二选一多路选择器)
篇二:设计一个1位的四选一多路选择器,使用二选一多路选择器模块进行搭建

《VLSI设计基础》课程设计报告

班 级: 学 号: 姓 名:指导教师:

电子科学与技术09级2班 0906040216 穆加林 李 蕾

1. 摘要

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

有2选1数据选择器、4选1数据选择器、8选1数据选择器、16选1数据选择器等之分

二路选择器具有一个选择控制变量,当用来实现二变量函数功能时,应该首先输入选择控制变量来确定选择器的数据输入。

根据题目设计要求,完成二选一多路选择器设计。我设计的是一个基于VHDL语言设计一个二选一多路选择器。

2. 综述

二选一多路选择器功能描述:

输入端口a,b输入信号,在通道选择控制输入端口s输入低电频时,输出端口y输出a输入端口信号;在通道选择控制输入端口s输入高电频时,输出端口y输出b输入端口信号。

二选一多路选择器的电路图,如下图

其中a,b是输入信号,s是通道选择信号,y是输出信号。 当s=0时,y=a; 当s=1时,y=b。

三.方案设计与分析

1.设计目的

1)熟悉MAXPLUS2/Quartus II软件,掌握软件的VHDL程序输入、程序编译 和程序仿真操作;

2)学习利用VHDL语言设计二选一多路选择器电路程序; 3)了解可多路选择器的工作方式。 2.设计要求

采用Modelsim、Quartus II、Altium designer 中的任一种软件,基于Verilog或VHDL语言实现设计题目的功能仿真,完成设计;

课程设计完成后,提交课程设计报告,要求提供编写的代码以及输出波形图 3.设计的源程序及仿真

1)、二选一多路选择器程序录入:

LIBRARY IEEE; --IEEE 库使用说明 USE IEEE.STD_LOGIC_1164.ALL;

ENTITY mux21 IS --器件mux21 的外部接口信号说明

--PORT相当于器件的引脚,这一部分称为实体 PORT ( a b : IN STD_LOGIC;

s : IN STD_LOGIC; y : OUT STD_LOGIC );

END ENTITY mux21; --器件mux21 的内部工作逻辑描述即

--为实体描述的器件功能结构称为结构体

ARCHITECTURE one OF mux21 IS

BEGIN

y <= a WHEN s = '0' ELSE b WHEN s = '1' ;

END ARCHITECTURE one;--器件mux21 的内部工作逻辑描述即

--为实体描述的器件功能结构称为结构体

ARCHITECTURE one OF mux21 IS

BEGIN

y <= a WHEN s = '0' ELSE b WHEN s = '1' ;

END ARCHITECTURE one;

2)、系统设计仿真及分析 a.系统功能仿真结果:

图为二选一多路选择器功能仿真图

b.仿真分析 由上图可以看出

1)当sel=0时,y=a,即当s=0时输出波形就是a输入端的输入波形。

2)当sel=1时,y=b,即当s=1时输出波形就是b输入端的输入波形。

有仿真分析可以看出,sel完成二选一多路选择器的选择功能,本系统符合设计要求。

四.方案综合评价与结论

我做的就是简单的二选一多路选择器,设计很简单,所以设计电路、程序、仿真结果都很快完成,而且结果一次性正确完成。但是中途也有点小挫折,就是仿真软件用着不是很熟悉,有点吃力,但是问过同学之后还是很快完成了设计。虽然很简单,但这个设计也是本人自己动手去做,亲自完成的,有那么一点小成就感,也让我对相关知识了解的更多,印象更深刻。设计后基本能从整体上把握VHDL程序的基本结构和设计特点。掌握固定表达句式,实体内容还是跟C语言语法相似,算是入门了。

五.参考文献

【1】 郭斌林 童家榕 《电子学报》 2002 第2期 【2】 乔双 《微型机与应用》 2002 第1期 【3】 潘松 EDA技术及其应用(第2版) 科学出版社

【4】 帕尔尼卡 数字设计与综合[M],电子工业出版社 2004

EDA实验二 4选1多路选择器设计实验
篇三:设计一个1位的四选一多路选择器,使用二选一多路选择器模块进行搭建

EDA实验二 4选1多路选择器设计实验

一、实验目的

进一步熟悉QuartusII的VHDL文本设计流程、组合电路的设计仿真和测试。

二、实验内容

实验内容一:根据以下流程,利用QuartusII完成四选一多路选择器的文本编辑输入和仿真测试等步骤,给出仿真波形。

实验内容二:在试验系统上硬件测试,验证此设计的功能。对于引脚锁定以及硬件下载测试。输出信号接蜂鸣器。最后进行编译、下载和硬件测试实验(通过选择键1、键2,控制S0,S1,可使蜂鸣器输出不同音调)。

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

三、程序设计

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY mux41a IS

PORT (a,b,c,d,s0,s1:IN STD_LOGIC; --输入信号设计一个1位的四选一多路选择器,使用二选一多路选择器模块进行搭建。

y:OUT STD_LOGIC); --输出信号

END ENTITY mux41a;

ARCHITECTURE one OF mux41a IS

SIGNAL S:STD_LOGIC_VECTOR(1 DOWNTO 0);

BEGIN

S<=s0&s1; --并置操作,获得二维矢量数据类型

PROCESS(s0,s1,a,b,c,d) --敏感信号

BEGIN

CASE S IS

WHEN"00"=> y<=a;

WHEN"01"=> y<=b;

WHEN"10"=> y<=c;

WHEN"11"=> y<=d;

WHEN OTHERS=>NULL; --其它情况为空值

END CASE; --CASE语句结束

END PROCESS; --PROCESS进程语句结束

END ARCHITECTURE one;

四、程序分析

设计一个1位的四选一多路选择器,使用二选一多路选择器模块进行搭建。

程序分析:四选一多路选择器设计时,定义输入S为标准以内漏记为STD_LOGIC,输出的信号y的数据类型定义为2位标准逻辑矢量位STD_LOGIC_VECTOR( 1 DOWNTO 0 ).使用LIBRATY语句和USE语句,来打开IEEE库的程序包STD_LOGIC_1164.ALL。当输入信号时,程序按照输入的指令来选择输出,例如输入信号为“00”时,将a的值给y,进而输出y的值,输入信号为“11”是,将a的值给y,进而输出y的值。若输入信号是已经定义的四个信号之外的值时(即当IF条件语句不满足时),输出值为x,并将x的值给输出信号z。这样即可实现四选一数据选择的功能。

五、波形仿真

分析: 从上图时序仿真可以看出:

s1s2=“00”时,输出Y=a; s1s2=“01”时,输出Y=b;

s1s2=“10”时,输出Y=c;

s1s2=“11’ 时,输出Y=d;

四音频输出选择器的VHDL设计与实现
篇四:设计一个1位的四选一多路选择器,使用二选一多路选择器模块进行搭建

实验三 四音频输出选择器的VHDL设计与实现

[实验目的]

1. 熟悉QuartusⅡ的VHDL文本设计流程;

2. 学习简单组合电路设计、多层次电路设计;

3. 锻炼采用VHDL语言进行系统设计的能力。

[实验仪器]

Pentium PC机 、 EDA实验箱 各一台 Quartus II 6.0软件

[实验内容]

Quartus II 6.0软件平台不仅有图形编辑器,还包含一个文本编辑器,该编辑器接受用硬件描述HDL编写的文本设计文件。

要求采用VHDL语言设计四音频输出选择器并在EP1C3T144C8芯片上实现其功能。 1 在QuartusⅡ平台下完成四音频输出选择器底层VHDL设计、输入、编译综合及仿真, 波形验证。

四音频输出选择器原理图参见图5.1.

1) 反相器,触发器,divider8分频器模块,2)二选一多路选择器,mux4to1四选一多路选择器模块

2 完成四音频输出选择器顶层VHDL源程序设计、编辑、编译综合、仿真工作及引脚锁定(此文件与已设计好的底层文件应在同一文件夹中),并在EDA实验系统上进行下载及硬件测 试,验证设计功能。

[实验原理]

图5.1给出了四音频输出选择器原理图。

图5.1 四音频输出选择器原理图

根据系统设计要求,采用层次化的VHDL的结构描述设计方法。

系统顶层定义分频模块和四选一多路开关模块两个元件,采用元件例化语句完成结构描述。分频器产生四个音频信号由四选一多路开关的控制信号S1 S0的编码选择输出。分频器模块由三个D触发器和三个反相器组成,可采用生成语句描述;四选一多路开关由三个二选设计一个1位的四选一多路选择器,使用二选一多路选择器模块进行搭建。

一多路开关组成,可用元件例化语句完成结构描述。

下面给出了反相器、触发器、分频器、2选一多路选择器及4选一多路选择器的元件图。

图5.2 反相器 图5.3 触发器 图5.4 分频器

图5.5 2选一多路选择器 图5.6 4选一多路选择器内部结构 图5.7 4选一多路选择器

[实验步骤]

一、设计反相器

(一) 建立工作库文件夹和编辑设计文件

1. 建立工作库文件夹

利用Windows资源管理器新建一个文件夹,该文件夹建于D盘中,注意:文件夹名不能用中文,也最好不要用数字。

2. 编辑VHDL源文件

打开Quartus II,选择菜单File→New。在New窗口中的Device Design Files中选择编译文件的语言类型 “VHDL File”,单击OK按钮,进入VHDL文本编辑窗口。输入反相器VHDL源程序。 library ieee;

use ieee.std_logic_1164.all;

entity inv is

port(a:in std_logic;

y:out std_logic);

end inv ;设计一个1位的四选一多路选择器,使用二选一多路选择器模块进行搭建。

architecture one of inv is

begin

y<=not a;

end one;

3. 文件存盘

完成输入后,选择File→SaveAs命令, 找到新建立的文件夹,将该VHDL文件存盘,存盘文件名应与实体名一致。假如我们设置的文件夹为D:\quar\sy5(此为路径与文件夹名), 反相器的文件名为inv (与程序实体名一致).

4. 创建工程

(1)当出现问句”Do you want to create?”时,若单击“是”按钮,则直接进入创建工

程流程,弹出New Project Wizard对话框。或选择菜单”File→New Project Wizard, 弹出New Project Wizard对话框。第一栏已自动选定,第二栏输入inv的当前工程名字;第三栏同时显示inv。

(2) 将设计文件加入工程中,单击下方的Next按钮,弹出Add Files对话框,单击Add All

按钮,将有关设计文件加入到当前工程中,在此,只须将源文件inv.vhd加入即可。

(3) 选择目标芯片。单击Next按钮,选择目标芯片为: Cyclone系列 EP1C3T144C8。

(4) 工具设置(选择综合器和仿真器)。单击当前对话框中的Next按钮,在弹出的EDA

工具设置窗口EDA Tool Settings,有三个选择项,都选择设置为“NONE”(即不作任何打钩选择),表示都选Quartus II中自带的所有设计工具。

(5) 结束设置。点击Next按钮后,弹出“工程设置统计”窗口,上面列出了此基本内容

工程相关设置情况。点击Finish按钮,即完成了当前工程的创建。在左上边的Project Navigator窗口显示本工程项目的层次结构和各层次的实体名。

(二) 编译

(1) 选择FPGA目标芯片。目标芯片的选择也可以这样来实现:选择Assignments →Settings

项,在弹出的对话框中Category →Device栏。首先选择目标芯片Cyclone系列,再选具体芯片 EP1C3T144C8。

⑵ 选择配置器件的工作方式。单击Device器件选择窗口中的Device&Pin Options按钮,

进入选择窗口在弹出的Device&Pin Options窗口, 首先选择General选项(见图5.8)。在General页的Options栏内选中Auto-restart configuration after error(在此项前的方格内打钩), 使对目标芯片的配置失败后能自动重新配置,并加入JTAG用户编码。

⑶ 选择配置器件和编程方式。如果希望对编程配置文件能在压缩后下载进配置器件中(当

配置器件向Cyclone器件配置时, Cyclone器件能识别压缩过的配置文件,并能对其进行实时解压), 可在编译前做好设置。

在Device&Pin Options窗口, 选择configuration选项(见图5.8),

① 在该页的Generate compressed bitstreans栏处选择打钩, 就能产生用于EPCS的POF压

缩配置文件。

② 在该页的Configuration Scheme栏内选择Active Serial(AS)配置模式, 这种方式只对专

用的Flash技术的配置器件进行编程;

③ 选择配置器件为EPCS1:选择Use configuration Device栏(在该栏左边的方格内打钩),

并在右边栏内选择EPCS1

图5。8 选择配置器件的工作方式 图5。9 选择配置器件和编程模式

(4) 编译

选择主窗口的Processing菜单→Start Compilation项,启动全程编译。

注意观察工程管理窗口下方的Processing处理栏中的编译信息,双击该栏中的错误提示行,在弹出的VHDL文件中加以修改,反复如此,直到编译成功为止。

(三) 仿 真

详细操作方法参考实验一、二。

1 打开波形编辑器;

2 设置仿真时间区域;

3 将工程项目的信号节点加入波形编辑器中;

4 激励信号设置;

5 波形文件存盘;

6 启动仿真器。点击主菜单Processin→Start Simulation项开始仿真; 7 观察仿真结果。

(四)、 应用RTL观察图

二、触发器设计

步骤同上,要求编译通过。

library ieee;

use ieee.std_logic_1164.all;

entity df is

port(clk,d:in std_logic;

q:out std_logic);

end df;

architecture rt1 of df is

begin

process(clk)

begin

if(clk'event and clk='1')then

q<=d;

end if;

end process;

end rt1;

三、分频器设计

步骤同上,要求编译通过。divider8分频器模

library ieee;

use ieee.std_logic_1164.all;

entity divider8 is

port(clk0: inout std_logic;

clk1,clk2,clk3:buffer std_logic);

end divider8 ;

architecture arc of divider8 is

component inv

port(a:in std_logic;

y: out std_logic);

end component;

component df

port(clk,d:in std_logic;

q:out std_logic);

end component;

signal c:std_logic_vector(0 to 3); signal z:std_logic_vector(0 to 3); begin

g1:for i in 1 to 3 generate

invx:inv port map(c(i),z(i));

dffx:df port map (c(i-1),z(i),c(i)); end generate;

c(0)<=clk0;

clk1<=c(1);

clk2<=c(2);

clk3<=c(3);

end arc;

四、2选一、4选一多路选择器设计 步骤同上,要求编译通过。

mux2to1二选一多路选择器模块

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY mux2to1 IS

PORT (a,b,s:IN STD_LOGIC;

y:OUT STD_LOGIC);

END mux2to1;

ARCHITECTURE ONE OF mux2to1 IS BEGIN

y<=a WHEN s='0' ELSE

b;

END ONE;

mux4to1四选一多路选择器模块

library ieee;

use ieee.std_logic_1164.all;

entity mux4to1 is

port (i0,i1,i2,i3:IN STD_LOGIC; s0 :IN STD_LOGIC;

s1 :IN STD_LOGIC;

y :OUT STD_LOGIC);

END mux4to1;

ARCHITECTURE ART OF MUX4to1 IS COMPONENT MUX2to1

PORT (a,b,s:IN STD_LOGIC;

y:OUT STD_LOGIC);

END COMPONENT;

SIGNAL z:STD_LOGIC_vector(0 to 2); BEGIN

m1:MUX2to1 PORT MAP(i0,i1,s0,z(0)); m2:MUX2to1 PORT MAP(i2,i3,s0,z(1)); m3:MUX2to1 PORT MAP(z(0),z(1),s1,z(2)); y<=z(2);

END ART;

5)四音频输出信号选择器顶层模块 library ieee;

use ieee.std_logic_1164.all;

本文来源:http://www.myl5520.com/gerenjianli/113042.html

推荐内容