Verilog入门训练 —二选一数据选择器

合集下载

二选一数据选择器

二选一数据选择器

二选一数据选择器目录一:数据选择器的基本原理 (3)二电路逻辑功能 (2)2.1 电路逻辑图 (2)2.2真值表与表达式 (3)2.3电路设计及仿真 (3)三版图设计 (5)3.1总体版图设计及DRC验证 (5)3.1.1数据选择器版图设计步骤 (5)3.1.2版图验证 (8)3.2版图仿真 (9)四数据选择器版图LVS对比 (10)五结论及体会 (12)一:数据选择器的基本原理数据选择器是指经过选择,把多个通道的数据传送到唯一的公共数据通道上去,实现数据选择功能的逻辑电路称为数据选择器。

它的作用相当于多个输入的单刀多掷开关,其示意图如下:图1 n位通道选择信号数据选择器除了可以实现一些组合逻辑功能以外,还可以做分时多路传输电路、函数发生器及数码比较器等。

常见的数据选择器有4选1、8选1、16选1电路。

在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,叫做数据选择器数据选择器(MUX)的逻辑功能是在地址选择信号的控制下,从多路数据中选择一路数据作为输出信号下图所示为二选一数据选择器原理图,a,b为输入端,sel为控制端,out为输出端图1-1数据选择器原理图二电路逻辑功能2.1 电路逻辑图=+(S是数据选择控制端,S为0时选择A,为1时选S择B)Y SA SB要实现2选1选择器,逻辑电路图如下所示图2-1数据选择器逻辑电路图2.2真值表与表达式二选一数据选择器逻辑表达式为:Y SA SB =+根据逻辑表达式所列真值表如下图所示图2-2数据选择器真值表图2.3电路设计及仿真根据原理电路图并使用S-Edit 软件设计出数据选择器的电路图及对应符号图如下:S A B Y 01 1 1 1 0 1 0 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0图2-3数据选择器符号图根据符号图并使用S-Edit软件设计出的数据选择器电路图如下所示图2-4数据选择器电路图导出的SPICE文件,如下图所示图2-5 spice文件加载包含文件,如下图所示图2-6 加载后的SPICE文件在其基础上进行仿真:下图从上到下依次为Y. S B A,结合逻辑表达式及真值表可知,电路为正确的图2-7 模拟波形仿真图三版图设计3.1总体版图设计及DRC验证3.1.1数据选择器版图设计步骤(1)新建文件夹:在电脑本地磁盘新建文件夹,文件夹名为shuju。

基于FPGA二选一数据选择器

基于FPGA二选一数据选择器
三个输入变量:a,b和s
一个输出变量:y
当s等于0时,a赋值给y;)
见附件A
5.程序运行结果
6.出现的问题及解决方法
在设置输入波形时对高低电平时间及周期设置掌握不牢固。
附件A
实验步骤或程序:
程序:
entity mux2 is
port(a,b,s:in bit;
y:out bit);
end mux2;
architecture rtl of mux2 is
begin
process(a,b,s)
begin
if s<='0' then
y<=a;
else
y<=b;
end if;
end process;
end rtl;
管脚设置:
出现的问题及解决方法在设置输入波形时对高低电平时间及周期设置掌握不牢固
实验名称:二选一数据选择器
1.实验目的:
了解二选一数据选择器的原理。
熟悉Quartus II的使用,熟练掌握程序的编译,波形的仿真及下载的过程。
2实验内容:
编写二选一数据选择器的程序,并编译,下载到试验箱中查看结果。
3.实验方案(程序设计说明)

【免费下载】二选一数据选择器

【免费下载】二选一数据选择器
2.1 电路逻辑图....................................................................................................3 2.2 真值表与表达式...................................................................3 电路设计及仿真.............................................................................................4
集成电路 CAD 课程设计
图 2-3 数据选择器符号图
根据符号图并使用 S-Edit 软件设计出的数据选择器电路图如下所示
图 2-4 数据选择器电路图
导出的 SPICE 文件,如下图所示
图 2-5 spice 文件
加载包含文件,如下图所示
4
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

EDA实验1lxm二选一数据选择器

EDA实验1lxm二选一数据选择器

实验一二选一数据选择器VHDL设计Quartus II 6.0开发环境与EDA实验箱使用一实验目的1.熟悉在Quartus II 6.0环境下原理图输入方法。

2.熟悉Quartus II 6.0环境下编辑、编译综合、仿真的操作方法。

3、掌握利用EDA软件进行电路设计的详细流程;4、熟悉EDA实验箱的基本使用方法。

学会对实验板上的FPGA/CPLD进行编程下载,硬件验证自己的设计项目。

二实验仪器PC机、Quartus II 6.0软件三实验内容1.详细解读教材117页。

2.在QuartusⅡ上输入该设计的原理图,并进行编辑、编译、综合、适配、仿真。

3.给出其所有信号的时序仿真波形。

四实验原理及步骤1.启动Quartus II 6.0软件在桌面上双击Quartus II 6.0图标或者在开始—>所有程序—>Altera—> Quartus II 6.0,如下图2.建立工作库文件夹及工程任何一次设计都是一项工程(Project),所有此工程相关的所有设计文件都需要放在同一个文件夹里。

不同的设计放在不同的文件夹中。

在E盘下建立一个存放本次设计的工程文件夹,比如“shiyan1”。

注意不要使用中文文件夹,文件夹的存放路径也不要包含中文。

注意本实验室计算机C盘和D盘是重启后复原,不要将任何文件和文件夹放置在桌面或者C、D盘下。

初次打开Quartus II 6.0,会有如图提示:选择是的情况下,首先是新工程向导:介绍下一步下一步下一步,选择目标芯片,首先在Family栏选择ACEX1K系列,然后选择此系列的具体芯片:EP1K30TC144-3。

注意不要选成了EP1K30TC144-3。

下一步就点完成。

3.建立文本程序文件选择File菜单下的New或者直接点击工具栏中的新建图标,选择新建文件类型为VHDL File。

接下来另存文件:保存时需更改文件名与项目名称一样,注意保存在同一个工程文件夹下面。

数据选择器1

数据选择器1

L=0,故D0=0 , L=1,故D1=1 ,
用数据选择器实现函数: 例2: 用数据选择器实现函数: L ( X , Y , Z ) = X ⊕ Y ⊕ Z = ∑ m (1, 2, 4,7 )
数据选择器74LS151 ①选用8选1数据选择器 选用 选 数据选择器 ②设A2=X、A1=Y、A0=Z 、 、 ③求Di D0=0, D1=1, D2=1, D3=0 , , , D4=1, D5=0 Байду номын сангаас D6=0 , D7=1 ,
Y=A1A0D0 + A1A0D1 + A1A0D2 + A1A0D3
Y=A1A0D0 + A1A0D1 + A1A0D2 + A1A0D3
Y ≥ 1 & & & &
A1 A0
1 1
DO
D1
D2
D3
4.3.2 集成电路数据选择器
型号:74LS153(国产T1153--T4153) 型号:74LS153(国产T1153--T4153)双4选1数据选择器 :74LS153 T1153-电源 2S
3
2D 2 2D1 2D0 2Y
12 11 10 9
15
13
7 4 L S1 5 3 1 2 3 4 5 6 7 8
1S
A1 1D
3
1D
2
1D
1
1D
0
1Y G N D
选通控制端S为低电平有效, S=0时芯片被选 选通控制端S为低电平有效,即S=0时芯片被选 中,处于工作状态;S=1时芯片被禁止,Y≡0。 处于工作状态;S=1时芯片被禁止,Y≡0。 时芯片被禁止
其功能类似一 个多投开关, 个多投开关, 是一个多输入、 是一个多输入、 单输出的组合 逻辑电路。 逻辑电路。

EDA实验1lxm二选一数据选择器

EDA实验1lxm二选一数据选择器

实验一二选一数据选择器VHDL设计Quartus II 6.0开发环境与EDA实验箱使用一实验目的1.熟悉在Quartus II 6.0环境下原理图输入方法。

2.熟悉Quartus II 6.0环境下编辑、编译综合、仿真的操作方法。

3、掌握利用EDA软件进行电路设计的详细流程;4、熟悉EDA实验箱的基本使用方法。

学会对实验板上的FPGA/CPLD进行编程下载,硬件验证自己的设计项目。

二实验仪器PC机、Quartus II 6.0软件三实验内容1.详细解读教材117页。

2.在QuartusⅡ上输入该设计的原理图,并进行编辑、编译、综合、适配、仿真。

3.给出其所有信号的时序仿真波形。

四实验原理及步骤1.启动Quartus II 6.0软件在桌面上双击Quartus II 6.0图标或者在开始—>所有程序—>Altera—> Quartus II 6.0,如下图2.建立工作库文件夹及工程任何一次设计都是一项工程(Project),所有此工程相关的所有设计文件都需要放在同一个文件夹里。

不同的设计放在不同的文件夹中。

在E盘下建立一个存放本次设计的工程文件夹,比如“shiyan1”。

注意不要使用中文文件夹,文件夹的存放路径也不要包含中文。

注意本实验室计算机C盘和D盘是重启后复原,不要将任何文件和文件夹放置在桌面或者C、D盘下。

初次打开Quartus II 6.0,会有如图提示:选择是的情况下,首先是新工程向导:介绍下一步下一步下一步,选择目标芯片,首先在Family栏选择ACEX1K系列,然后选择此系列的具体芯片:EP1K30TC144-3。

注意不要选成了EP1K30TC144-3。

下一步就点完成。

3.建立文本程序文件选择File菜单下的New或者直接点击工具栏中的新建图标,选择新建文件类型为VHDL File。

接下来另存文件:保存时需更改文件名与项目名称一样,注意保存在同一个工程文件夹下面。

实验1:全加器及二选一数据选择器设计

实验1:全加器及二选一数据选择器设计
GEXIN EDAPRO/240H 超级万能实验仪
实验1: 实验 :全加器及二选一数据选择器设计
一、实验前准备
• 本实验例子使用独立扩展下载板 EP1K10_30_50_100QC208(芯片为 EP1K100QC208)。EDAPRO/240H实验仪主板的 VCCINT跳线器右跳设定为3.3V; EDAPRO/240H实验仪主板的VCCIO跳线器组中 “VCCIO3.3V”应短接,其余VCCIO均断开;独 立扩展下载板“EP1K10_30_50_100QC208”的 VCCINT跳线器组设定为2.5V;独立扩展下载板 “EP1K10_30_50_100QC208”的VCCIO跳线器 组设定为3.3V。
(2)实验步骤 ) • 1)半加器图形设计文件输入(后缀为.gdf) →保存→建立设计项目→编译→创建默认 符号; • 2)顶层文件设计: • 全加器图形设计文件输入→保存→建立设 计项目→编译→引脚分配及锁定→功能仿 真→时序分析;
H_adder
F_adder
引脚对应情况
实验板位置 多路选择器信号 ain 通用目标器件引脚名 I/O 目标器件EP1K30TC144引脚号 目标器件 引脚号 85 86 87 88 1、数字开关SW9: 、数字开关 : 2、数字开关 、 开关SW10 3、数字开关 、 开关SW11 4、信号指示灯 、
bincin L9I/O I/O I/O I/O
5、信号指示灯 、
L10
89
四、实验内容
• 把全加器的输入接到拨码开关,输出端接2个LED 灯,通过拨码开关改变输入的逻辑电平变化来观 察LED输出情况,验证全加器的工作状态
多路选择器的VHDL设计 ,熟悉使 (2)通过完成 选1多路选择器的 )通过完成2选 多路选择器的 设计 语言在Max+Plus II环境下设计简单的数字逻 用VHDL语言在 语言在 环境 输入设计流程。 辑电路 输入设计流程。

2选1多路选择器的VerilogHDL设计

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设计

第5讲基于HDL实现的2选1数据选择器设计

第5讲基于HDL实现的2选1数据选择器设计

程序代码---数据流描述方式

/*2选1数据选择器,方法二:数据流描述方式*/
module mux2_1_ex2(P0,P1,S,F); input P0,P1,S; output F; assign F=~S&P0|S&P1; endmodule

程序代码---行为描述方式

2、 “?:”语句
条件操作符的语法格式如下: 条件表达式?表达式1:表达式2 如果条件表达式为1(即为真),则运算后结果取 表达式1的值,否则取表达式2的值。 如:assign F=(s==1’b0)?P0:P1;

三、运算符

(1)算术运算符 (+、-、×、/、%) (2)关系运算符 (<、>) (3)等式运算符 (== 、!=) (4)逻辑运算符 (&&、||、!) (5)位运算符 (~、&、|) (6)缩位运算符 (7)移位运算符 (>>、<<) (8)条件运算符 (?:) (9)位拼接运算符
3、变量以及数据类型

reg寄存器型
reg类型定义的是一种能暂存数据的变量。 reg 信号名1,信号2,……;//定义一位reg型数据 reg [n-1:0]信号名1,信号2,……; //定义n位reg型数据 用reg数据类型定义的信号必须放在过程块 (如always,initial)中通过过程赋值语句赋值。
3、变量以及数据类型

Memory寄存器型 Verilog 可通过reg变量来建立数组,用来表示一组 存储器,称为memory寄存器。 定义格式:reg[n-1:0] 存储器名[m-1:0]; 如:reg[7:0] memory1[255:0];//定义了256个 8位的存储器,名字叫memory1。该存储器的地址 范围为0~255.

实验3 多路选择器的设计

实验3 多路选择器的设计

实验3 多路选择器的设计
一、实验目的
1.熟练掌握多路选择器的设计方法
2.熟悉门级描述的编程方法;
二、实验内容
1.编写程序实现2选1的多路选择器
2.编写程序实现8选1的数据选择器
三、实验要求
1.根据参考内容,用Verilog HDL语言设计多路选择器。

2.用Quartus II或Modelsim 对其进行功能或时序进行波形仿真验证;
3.下载到FPGA开发板验证;
四、实验环境
Quartus Ⅱ
五、实验原理
数据选择是指经过选择,把多个通道的数据传送到唯一的公共数据通道上去。

实现数据选择功能的逻辑电路称为数据选择器,它的作用相当于多个输入的单刀多掷开关。

二选一数据选择器的原理框图如图1,真值表见图2。

六、 实验步骤
(1)打开Quartus II 新建工程,并进行相关配置; (2)添加Verilog HDL 文件,编辑代码; (3)编译、代码综合与波形仿真; (4)下载程序至FPGA 开发板。

图2 选1数据选择器真值表
图1 2选1数据选择器原理图
图3 8选1数据选择器原理图
七、实验程序(或者电路图)
八、实验结果
2选1数据选择器RTL
8选1数据选择器RTL
2选1数据选择器波形图仿真
8选1数据选择器波形图仿真
九、实验结果讨论
(结合实验过程、实验结果或老师的提出问题自行讨论)。

Verilog组合逻辑设计

Verilog组合逻辑设计

电子科技大学实验报告学生姓名:ZYZ 学号:2014060103026 指导教师:DJ一、实验项目名称:Verilog组合逻辑设计二、实验目的:使用ISE软件和Verilog语言进行组合逻辑的设计与实现。

三、实验内容:1.3-8译码器的设计和实现。

2.4位并行进位加法器的设计和实现。

3.两输入4位多路选择器的设计和实现。

实验要求如下:1.采用Verilog语言设计,使用门级方式进行描述。

2.编写仿真测试代码。

3.编写约束文件,使输入、输出信号与开发板的引脚对应。

4.下载到FPGA开发板,拨动输入开关,观察Led灯的显示是否符合真值表。

四、实验原理:1.74x138译码器是输出低有效的3-8译码器。

表1所示为74x138译码器的真值表。

表1 74x138译码器的真值表根据3-8译码器的真值表,可得输出的函数表达式为12_2_0_1_2_3_4_5_6_7_G G G A L G B L Y L C B A G Y L C B A G Y L C B A G Y L C B A G Y L C B A G Y L C B A G Y L C B A G Y L C B A G=⋅⋅=⋅⋅⋅=⋅⋅⋅=⋅⋅⋅=⋅⋅⋅=⋅⋅⋅=⋅⋅⋅=⋅⋅⋅=⋅⋅⋅根据上述函数表达式,可画出逻辑电路图为。

图1 3-8译码器的逻辑电路图2. 数据选择器的逻辑功能是根据地址选择端的控制,从多路输入数据中选择一路数据输出。

因此,它可实现时分多路传输电路中发送端电子开关的功能,故又称为复用器(Multiplexer),并用MUX来表示。

表2 2输入1位多路选择器的真值表数据输入选择控制S 输出Y D0 D10 0 0 02选1数据选择器的真值表如表1所示,其中,D 0、D 1是2路数据输入,S 为选择控制端,Y 为数据选择器的输出,根据真值表可写出它的输出函数表达式为:01Y SD SD =+如果输入再加上低有效的输入使能端,则输出的表达式变为0101_()__Y EN L SD SD EN L S D EN L S D =⋅+=⋅⋅+⋅⋅根据上述函数表达式,可画出2输入4位多路选择器的逻辑电路图为。

数据选择器

数据选择器

实验名称:组合逻辑VHDL设计--数据选择器班级:学号:姓名:一、2选1数据选择器的VHDL设计1.实体框图2.程序设计①编译的程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX21A ISPORT(D1,D0,A,EN:IN STD_LOGIC;Y: OUT STD_LOGIC);END ENTITY MUX21A;ARCHITECTURE ONE OF MUIX21A ISBEGINY<=D0 WHEN A=‘0’ AND EN=‘1’ELSE D1 WHEN A=‘1’ AND EN=‘1’ELSE ‘Z’;END ARCHITECTURE ONE;3.仿真波形图4.仿真波形分析(1)EN为高电平使能端口即当高电平时有效,低电平时无效,当高电平有效时A如果为高电平则Y输出D1的波形,反之A为低电平时输出D0的波形。

(2)为区分波形图,A,D1,D0的周期应该设置不一样的周期,明显一点可以是倍数关系二、4选1数据选择器的VHDL设计1.实体框图2.程序设计①编译的程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX41A ISPORT(A1,A0,D0,D1,D2,D3:IN STD_LOGIC;Y:OUT STD_LOGIC);END ENTITY MUX41A;ARCHITECTURE ONE OF MUX41A ISBEGINY<=D0 WHEN A1=‘0’ AND A0=‘0’ELSE D1 WHEN A1=‘0’ AND A0=‘1’ELSE D2 WHEN A1=‘1’ AND A0=‘0’ELSE D3 WHEN A1=‘1’ AND A0=‘1’ELSE ‘Z’;END ARCHITECTURE ONE;3.仿真波形图4.仿真波形分析(1)当a1=‘0’,a0=‘0’时输出d0的波形当a1=‘0’,a0=‘1’时输出d1的波形当a1=‘1’,a0=‘0’时输出d2的波形当a1=‘1’,a0=‘1’时输出d3的波形(2)为便于分析图形,可以设置不一样的周期,倍数关系,看的清晰一点。

verilog语言编写八选一数据选择器

verilog语言编写八选一数据选择器

verilog语⾔编写⼋选⼀数据选择器⼋选⼀选择器⼀、实验⽬的编写⼀个⼋选⼀的选择器,并在verilog软件上进⾏仿真。

⼆、代码1、源代码(1)⽤数据流描述的⼋选⼀多路选择器模块,采⽤了逻辑⽅程module mux8_to_1(out,i0,i1,i2,i3,i4,i5,i6,i7,s2,s1,s0); output out;input i0,i1,i2,i3,i4,i5,i6,i7;input s2,s1,s0;assign out=s2?(s1?(s0?i7:i6):(s0?i5:i4)):(s1?(s0?i3:i2):(s0?i1:i0));endmodule(2)⽤数据流描述的⼋选⼀多路选择器模块,采⽤了条件操作语句module mux8_to_1(out,i0,i1,i2,i3,i4,i5,i6,i7,s2,s1,s0); output out;input i0,i1,i2,i3,i4,i5,i6,i7;input s2,s1,s0;assign out=(~s2&~s1&~s0&i0)|(~s2&~s1&s0&i1)|(~s2&s1&~s0&i2)|(~s2&s1&s0&i3)|(s2&~s1&~s0&i4)|(s2&~s1&s0&i5)|(s2&s1&~s0&i6)|(s2&s1&s0&i7);endmodule(3)⽤⾏为及描述的⼋选⼀多路选择器模块可描述为:module mux8_to_1(out,i0,i1,i2,i3,i4,i5,i6,i7,s2,s1,s0);output out;input i0,i1,i2,i3,i4,i5,i6,i7;input s2,s1,s0;reg out;always @(s2 or s1 or s0 or i0 or i1 or i2 or i3 or i4 or i5 or i6 or i7)begincase({s2,s1,s0})3'b000:out=i0;3'b001:out=i1;3'b010:out=i2;3'b011:out=i3;3'b100:out=i4;3'b101:out=i5;3'b110:out=i6;3'b111:out=i7;defult:$dispiay("Invalid control signals");endcaseendendmodule或者是:module mux8_to_1(out,i0,i1,i2,i3,i4,i5,i6,i7,s2,s1,s0);output out;input i0,i1,i2,i3,i4,i5,i6,i7;input s2,s1,s0;reg out;always @(s2 or s1 or s0 or i0 or i1 or i2 or i3 or i4 or i5 or i6 or i7) begincase({s2,s1,s0})3'd1:out=i0;3'd2:out=i1;3'd3:out=i2;3'd4:out=i3;3'd5:out=i4;3'd6:out=i5;3'd7:out=i6;3'd8:out=i7;defult:$dispiay("Invalid control signals");endcaseendendmodule2、激励模块`timescale 1ns/100psmodule mux8_to_1_tb;reg I0,I1,I2,I3,I4,I5,I6,I7;reg S2,S1,S0;wire OUT;mux8_to_1 ul(.out(OUT),.i0(I0),.i1(I1),.i2(I2),.i3(I3),.i4(I4),.i5(I5),.i6(I6),.i7(I7),.s2(S2),.s1(S1),.s0(S0));initialbeginI0=1;I1=0;I2=0;I3=1;I4=1;I5=1;I6=0;I7=0;S2=0;S1=0;S0=0;#10 S2=0;S1=0;S0=1;#10 S2=0;S1=1;S0=0;#10 S2=0;S1=1;S0=1;#10 S2=1;S1=0;S0=0;#10 S2=1;S1=0;S0=1;#10 S2=1;S1=1;S0=0;#10 S2=1;S1=1;S0=1;endendmodule三、仿真波形四、波形说明波形图中,从上⾄下依次为:输⼊数据I0,I1,I2,I3,I4,I5,I6,I7,选择端⼝S2,S1,S0,输出COUT。

Verilog入门训练3—二选一数据选择器

Verilog入门训练3—二选一数据选择器

在出现的编辑界面左侧右键,选择如下:
在“Insert Node or Bus”里选择“Node Finder…”
在弹出来的 “Node Finder” 中 ,首先 在“Filter” 中 选择 “Pins: Unassigned” , 然 后点 击“list” ,
在“Nodes Found”中会列出所有的引脚,第三步选择全部引脚(鼠标拉) ,点击“>>” , 最 后点击“OK”即可。在回到的“Insert Node or Bus”界面点击“OK” 。
得到: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” 。输入以下代码
A S
not_s
0
&
0
andcntrl1
0
F
&
0 0
B
0
andcntrl2
其他设置全部不要改变,回到 Verilog 代码,将原来的代码改写为下述代码:
代码主体部分中的 not、and 和 or 是 quartus 中已经定义好的基本门电路,代码相当于直接 调用。这点非常重要,意味着写好了一个电路的代码,如果它可以作为其他更复杂电路的一 部分, 直接调用即可。 这样不管怎么复杂的电路,都可以由一个一个的小电路 “堆砌” 而成, 这就是 Verilog 的核心思想, “建模” !更复杂的用法将在后面的学习中接触,这里不必深究。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在弹出来的器件选择界面中,在 Family 栏选择 Cyclone IV E,右边 Package 处选择“FPGA”, 然后在列表中找到需要的 EP4CE30F23C08 器件,点击 OK。
器件选择后,需要重新编译程序:“Processing”——“Start Compilation”。 编译通过后,查看开发板使用手册,指定引脚。A、B、S 对应 SW0 至 SW2,引脚分别为: C2、F1、F2,。LED_OUT 对应 LEDG0,引脚为 J2。“Assignments”—“Pin Planner”。
代码主体部分中的 not、and 和 or 是 quartus 中已经定义好的基本门电路,代码相当于直接 调用。这点非常重要,意味着写好了一个电路的代码,如果它可以作为其他更复杂电路的一 部分,直接调用即可。这样不管怎么复杂的电路,都可以由一个一个的小电路“堆砌”而成, 这就是 Verilog 的核心思想,“建模”!更复杂的用法将在后面的学习中接触,这里不必深究。
实训 2:数据选择器的 FPGA 设计与实现
问题提出:数据选择器是一种可以从多个输入信号中选择一个信号作为输出的器件。最简单 的电路为二选一。使用 Verilog 设计实现二选一数据选择器,使用软件仿真验证代码的正确 性,并使用 FPGA 验证结果。
1. 逻辑抽象 假设 A、B 为输入,控制信号为 S,输出为 F。当 S=0 时,F=A;当 S=1 时,F=B。FPGA 实现时,使用 3 个按键分别代表 A、B 和 S,一个 LED 灯代表 F,利用不同的组合即可验 证代码的正确性。
在出现的编辑界面左侧右键,选择如下:
在“Insert Node or Bus”里选择“Node Finder…” 在弹出来的“Node Finder”中,首先在“Filter”中选 择“Pins: Unassigned”,然后 点击“list”,
在“Nodes Found”中会列出所有的引脚,第三步选择全部引脚(鼠标拉),点击“>>”,最 后点击“OK”即可。在回到的“Insert Node or Bus”界面点击“OK”。
8. 设置其他没有使用的引脚为接地状态 第一步,在项目导航栏中选择器件名称,右键选择“Device”;第二步,在弹出框中选择 “Device and Pin Options”
在“Category”中选择“Unused Pins”,将所 有“Reserve all unused pins”设置为“As output driving ground”,点击“OK”。
扩展实验部分: 1. 使用行为描述实现二选一电路。
所谓行为级描述,就是使用 always 或者 initial 过程块实现电路功能。 其他设置全部不要改变,回到 Verilog 代码,将原来的代码改写为下述代码:
重新编译代码:“Processing”——“Start Compilation”。 下载代码到 FPGA,看电路是否按照要求工作。 思考以下几点:reg 是什么关键词?always 的用法、格式?
这时候会看到所有的引脚会列出来,如下所示,四个输入默认为低电平,输出状态未知。 由实验原理可知,为了得到 A、B、S 三个信号不同的组合,设置 A 为 10ns 周期信号,B 为 20ns 周期信号,S 为 40ns 周期信号。设置方法如下: 选择输入“A”,点击右键,选择“Value”——“Clock”。
仿真成功后,回到波形文件,会弹出提示如下:
选择“是”来更新仿真结果,如下图所示:
根据仿真结果分析,例如在红线所在位置,S=1,因此 F 应该等于 B。这时候 B 的值为 0,因 此 F=0,结果正确。也可以从其他任意位置分析,看电路是否符合要求。 7. 指定引脚
点击“File”——“Save Project”,然后关闭 quartus 8.0。打开 Quartus 11.0,选择“Open Project”,找到上面保存的项目。项目打开后,首先更换器件,方法如下:点击项目中 器件(刚才随便指定的),右键,选择“Device”
在 Clock 中设置周期为 10ns。如下所示:
按设置完成后,如下所示:
保存波形文件,路径不要有中文! 添加完激励信号后,选择“Processing”—“Simulator Tool”,在 “Simulation mode”中选择 “Functional”,再点击“Generate Functional Simulation Netlist”。然后 选择“Overwrite simulation input file with simulation result”,点击“Start”开始仿真。
2. 列出真值表
SAΒιβλιοθήκη BF0X
X
A
1
X
X
B
得到:F=AS + BS
A
0
&
0
0
S
F
0
&
B
0
0
3. 使用 Quartus 8.0 建立项目,建立过程和注意事项见前两周的实验指导,选择器件时随便 指定一个。这里的项目名称为 mux21。(切记项目保存路径和实验过程中新建的文件保 存路径都不要出现中文)
4. 项目建好后,新建 Verilog 选择“File”——“New”——“Verilog HDL file”。输入以下代码
最后编译项目。“Processing”——“Start Compilation”。
9. 烧写程序。“Tools”——“Programor”。检查是否有编程器 USBBlaster,然后按“Start” 开始烧写程序。
10. 在开发板上检验实验结果,拨动开关至不同状态,查看 LED 灯是否符合设计要求。拍照, 记录实验结果。未能得到预期实验结果的同学思考各个步骤,排除错误。
2. 使用结构描述方式完成数据二选一电路。 由于 F 的表达式为:F=AS + BS 实现上述电路一共需要 1 个非门、2 个与门和 1 个或门,电路图如下:
A
0 & 0 andcntrl1
0
S
not_s
F
0
&
B
0
0
andcntrl2
其他设置全部不要改变,回到 Verilog 代码,将原来的代码改写为下述代码:
保存 verilog 文件,并命名为 mux21。上述方式为数据流描述方式。思考:为什么叫数据流 标书方式?
5. 编译项目。“Processing”——“Start Compilation”
6. 功能仿真 编译通过后,新建波形仿真文件:“File”——“New”,选 择“Vector Waveform File”,如 下 图所示:
相关文档
最新文档