任务2 基于原理图实现的2选1数据选择器设计
任务分析
数据选择器是常用的数字电路之一。如图1.35所示,它有两个数据输入端(P0和P1)、一个输出端F,通过控制选择端S从两个数据输入中选择一个作为输出,即控制选择端的状态确定哪个输入被连接到输出,真值表如表1.3所示。
由表1.3可以得出2选1数据选择器的逻辑表达式为:F=P0+SP1,电路原理图如图1.35所示。
表1.3 2选1数据选择器真值表
图1.35 2选1数据选择器
小经验
数据选择器也称为多路选择器,有的书上2选1数据选择器用符号MUX2∶1表示,是一个十分有用的器件,它除了作为多路开关、并行输入变串行输出或者与多路分配器配合完成多路信号的分时传输以外,通常还可以用它来实现逻辑函数,即用数据选择器设计逻辑电路。
除了2选1数据选择器之外,常用的还有4选1、8选1多路选择器等,其HDL设计方法参见第2章任务4。
与数据选择器功能相反的电路是数据分配器,例如,1对2数据分配器,有的书上用符号DEMUX1∶2表示。
任务实现
采用原理图输入法的2选1数据选择器可按以下步骤进行设计。
1.新建工程
启动Quartus Ⅱ 软件,在“File”下拉菜单中选取“New Project Wizard”,新建工程MUX2_1。
小提示
如果读者对设计步骤仍然不太熟练,可以参考任务1中的详细设计步骤描述。由于篇幅所限,在后面的任务中省略了与任务1中相同的细节及图示。另外,本任务中选择的器件是MAX Ⅱ系列EPM1270GT144C3芯片。
2.设计输入
(1)在“File”下拉菜单中选取“New”选项,选择设计输入类型为“Block Diagram/Schematic”,进入图形编辑界面。
(2)引入逻辑门,在原理图输入窗口中双击鼠标左键,在符号窗口中选取AND2(2输入与门)、NOT(非门)和OR2(2输入或门)。
(3)引入3个输入引脚、一个输出引脚,并将输入引脚更名为S、P0、P1,输出引脚更名为F。
(4)连接电路,如图1.36所示。
图1.36 2选1选择器原理图
(5)选择“File”菜单下的“Save”选项,保存原理图文件,文件名为“MUX2_1.bdf”,将“Add file to current project”前的选项选中,该原理图文件自动添加到当前工程中。
3.工程编译
选择“Processing”菜单下的“Start Compilation”选项,或者单击位于工具栏的编译按钮,完成工程的编译。
如果工程编译出现错误提示,则编译不成功,需根据Message窗口中所提供的错误信息修改电路设计,再重新进行编译,直到没有错误为止。
4.设计仿真
(1)建立波形文件。执行“File”菜单下的“New”命令,在弹出的窗口中选择“Other Files”下的“Vector Waveform File”选项,新建仿真波形文件。在波形文件编辑窗口,单击“File”菜单下的“Save as”选项,将该波形文件另存为“MUX2_1.vwf”。
(2)添加观察信号。在波形文件编辑窗口的左边空白处单击鼠标右键,选择“Insert”选项下的“Insert Node or Bus”命令,在该窗口下单击“Node Finder”按钮,在“Node Finder”窗口中单击“List”按钮,设计的4个引脚出现在左边的空白窗口处,选中所有引脚,单击窗口中间的“》”按钮,4个引脚出现在窗口的右边空白处,再单击“OK”按钮回到波形编辑窗口。
(3)添加激励。通过拖曳波形,产生想要的激励输入信号。
(4)功能仿真。添加完激励信号后,保存波形文件。选择“Processing”菜单下的“Simulator Tool”选项, 在“Simulation mode”选项框中选择“Functional”,再单击“Generate Functional Simulation Netlist”按钮,产生仿真需要的网表文件,然后选中“Overwrite simulation input file with simulation result”,单击“Start”按钮进行仿真。
仿真完成后,单击“Open”按钮打开仿真结果,如图1.37所示,2选1数据选择器的输入/输出逻辑功能正确。
图1.37 2选1数据选择器功能仿真结果
(5)时序仿真。在仿真工具对话框中的“Simulation mode”选为“Timing”模式,进行时序仿真,仿真结果如图1.38所示。
图1.38 2选1数据选择器时序仿真结果
小知识
分析时序仿真波形时,需考虑输入信号与输出信号之间的传输延时。
在图1.38中,电路的输出信号没有出现毛刺。如果输出信号出现毛刺,还要考虑电路是否存在竞争冒险现象。
任务小结
通过2选1数据选择器的设计,使读者更加熟悉Quartus Ⅱ软件进行数字系统设计的步骤,并掌握2选1数据选择器的逻辑功能和设计原理,逐步理解功能仿真波形和时序仿真波形。
自己做
按照任务2中的实现步骤,自行完成基于原理图实现的1对2数据分配器设计。
提示:1对2数据分配器的输入/输出如图1.39所示,其真值表如表1.4所示。
图1.39 1对2数据分配器
表1.4 1对2数据分配器真值表
1对2数据分配器电路原理图如图1.40所示。
图1.40 1对2数据分配器原理图