




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章组合逻辑电路设计5.1基本门电路的设计5.2数据选择器的设计5.31对2数据分配器的设计5.44位BCD译码器的设计5.5三态门的设计5.6半加器的设计5.7全加器的设计5.86位加法器的设计5.94位加减法器的设计
5.103位乘法器的设计习题5.1基本门电路的设计基本门电路主要用来实现基本的输入/输出之间的逻辑关系,包括与门、非门、或门、与非门、或非门、异或门、同或门等,下面以2输入端与非门为例讲解基本门电路的设计。1.实验原理表5-12输入端与非门的真值表2输入端与非门是组合逻辑电路中的基本逻辑器件,有2个输入端A、B和1个输出端C。其真值表如表5-1所示。2输入端与非门应具备的脚位:输入端:A、B;
输出端:C。表5-12输入端与非门的真值表
输入端输出端ABC0010111011102.原理图输入与非门原理图输入法的操作步骤介绍如下。(1)建立新文件:选取窗口菜单File→New,出现对话框,选择GraphicEditorfile选项,单击OK按钮,进入图形编辑画面。(2)保存:选取窗口菜单File→Save,出现对话框,键入文件名nand2.gdf,单击OK按钮。
(3)指定项目名称,要求与文件名相同:选取窗口菜单File→Project→Name,键入文件名nand2,单击OK按钮。(4)确定对象的输入位置:在图形窗口内单击鼠标左键。(5)引入逻辑门:选取窗口菜单Symbol→EnterSymbol,在\Maxplus2\max2lib\prim处双击,在SymbolFile菜单中选取NAND2逻辑门,单击OK按钮。(6)引入输入和输出脚:按步骤(5)选出2个输入脚和1个输出脚。(7)更改输入和输出脚的脚位名称:在PIN_NAME处双击鼠标左键,进行更名,输入脚为A、B,输出脚为C。(8)连接:将A、B脚连接到与非门的输入端,C脚连接到与非门的输出端,如图5-1所示。(9)选择实际编程器件型号:选取窗口菜单Assign→Device,出现对话框,选择ACEX1K系列的EP1K30TC144-1。(10)保存并查错:选取窗口菜单File→Project→Save&Check,即可针对电路文件进行检查。图5-12输入端与非门的原理图(11)修改错误:针对Massage-Compiler窗口所提供的信息修改电路设计,直到没有错误为止。(12)保存并编译:选取窗口菜单File→Project→Save&Compile,即可进行编译,产生nand2.sof烧写文件。(13)创建电路符号:选取窗口菜单File→CreateDefaultSymbol,可以产生nand2.sym文件,代表现在所设计的电路符号。选取File→EditSymbol,进入SymbolEdit画面,2输入端与非门的电路符号如图5-2所示。(14)创建电路包含文件:选取窗口菜单File→CreateDefaultIncludeFile,产生用来代表目前所设计电路的nand2.inc文件,供其他VHDL编译时使用,如图5-3所示。(15)时间分析:选取窗口菜单Utilities→AnalyzeTiming,再选取窗口菜单Analysis→DelayMatrix,可以产生如图5-4所示的时间分析结果。图5-22输入端与非门的电路符号图5-32输入端与非门的电路包含文件图5-42输入端与非门的时间分析3.文本输入(1)建立新文件:选取窗口菜单File→New,出现对话框,选择TextEditorfile选项,单击OK按钮,进入文本编辑画面。(2)保存:选取窗口菜单File→Save,出现对话框,键入文件名nand2.text,单击OK按钮。(3)指定项目名称,要求与文件名相同:选取窗口菜单File→Project→Name,键入文件名nand2,单击OK按钮。(4)选择实际编程器件型号:选取窗口菜单Assign→Device,出现对话框,选择ACEX1K系列的EP1K30TC144-1。(5)输入VHDL源程序:
ENTITYnand2IS
PORT(A,B :IN Bit;C :OUTBit
);ENDnand2;ARCHITECTUREaOFnand2ISBEGIN
C<=not(AANDB);ENDa;(6)保存并查错:选取窗口菜单File→Project→Save&Check,即可针对电路文件进行检查。(7)修改错误:针对Massage-Compiler窗口所提供的信息修改电路文件,直到没有错误为止。(8)保存并编译:选取窗口菜单File→Project→Save&Compile,即可进行编译,产生nand2.sof烧写文件。
(9)创建电路符号:选取窗口菜单File→CreateDefaultSymbol,可以产生nand2.sym文件,代表现在所设计的电路符号。选取File→EditSymbol,进入SymbolEdit画面。(10)创建电路包含文件:选取窗口菜单File→CreateDefaultIncludeFile,产生代表现在所设计电路的nand2.inc文件,供其他VHDL编译时使用。(11)时间分析:选取窗口菜单Utilities→AnalyzeTiming,再选取窗口菜单Analysis→DelayMatrix,产生时间分析结果。4.软件仿真(1)进入波形编辑窗口:选取窗口菜单MAX+plusⅡ→WaveformEditor,进入波形编辑窗口。(2)引入输入/输出脚:选取窗口菜单Node→EnterNodesfromSNF,出现对话框,单击list按钮,选择AvailableNodes中的输入与输出,按“=>”键将A、B、C移至右边,单击OK按钮进行波形编辑。(3)设定时钟的周期:选取窗口菜单Options→GrideSize,出现对话框,设定GrideSize为50ns,单击OK按钮。(4)设定初始值并保存:设定初始值,选取窗口菜单File→Save,出现对话框,单击OK按钮。(5)仿真:选取窗口菜单MAX+plusⅡ→Simulator,出现TimingSimulation对话框,单击Start按钮,出现Simulator对话框,单击“确定”按钮,出现2输入端与非门的波形图,如图5-5所示。(6)观察输入结果的正确性:单击按钮,可以在时序图中写字,并验证仿真结果的正确性。图5-52输入端与非门的波形图5.硬件仿真1)下载实验验证(1)选择器件:打开MAX+plusⅡ,选取窗口菜单Assign→Device,出现对话框,选择ACEX1K系列的EP1K30TC144-1,如图5-6所示。图5-6选择器件(2)锁定引脚:选取窗口菜单Assign→Pin/Location/Chip,出现对话框,在NodeName中分别键入引脚名称A、B、C,在Pin中键入引脚编号68、67、17。引脚68对应KEY1,信号灯为LED_KEY1;引脚67对应KEY2,信号灯为LED_KEY2;引脚17对应LED1。锁定引脚的界面如图5-7所示。
(3)编译:选取窗口菜单File→Project→Save&Compile,即可进行编译,编译完成后的提示信息如图5-8所示。(4)烧写:选取窗口菜单Programmer→Configure进行烧写,如图5-9所示。图5-7锁定引脚图5-8编译完成后的提示信息图5-9烧写2)实验结果设定输入信号为键按下时输入“1”信号,此时信号灯亮,否则输入“0”信号,信号灯灭。输出信号为信号灯亮时为“1”,信号灯灭时为“0”。按表5-2所示,按下KEY1、KEY2键,观察输出LED1的结果。表5-2与非门的实验结果LED_KEY2(B)LED_KEY1(A)LED1(C)灭灭亮灭亮亮亮灭亮亮亮灭3)实验解释信号输入键为KEY1、KEY2。按下KEY1键,信号灯LED_KEY1亮,即把“1”信号输入到68引脚(A),否则表示送入信号“0”。按下KEY2键,信号灯LED_KEY2亮,即把“1”信号输入到67引脚(B),否则表示送入信号“0”。信号输出由信号灯LED1来显示。LED1亮时表示输出信号为“1”,否则为信号“0”,以此表示17引脚(C)的信号。输出端的值由芯片EP1K30TC144-1通过程序所编的A和B之间的逻辑关系C<=not(AANDB)确定。5.2数据选择器的设计数据选择器的输入端包括地址输入端和数据输入端。由地址输入端给出地址,找出相应的数据输入端,把该数据输入端的数据送入输出端。数据选择器包括4选1数据选择器、8选1数据选择器等,下面以4选1数据选择器为例来介绍数据选择器的设计。1.实验原理4选1数据选择器有两个地址输入端:S1、S0;4个数据输入端:D、C、B、A;1个输出端Y。其真值表如表5-3所示。表5-34选1数据选择器真值表地址输入输出S0S1Y00A01B10C11D一个4选1数据选择器应具备的脚位:地址输入端:S0、S1;数据输入端:D、C、B、A;输出端:Y。2.原理图输入(1)建立文件:选取窗口菜单File→New,出现对话框,选GraphicEditorfile选项,单击OK按钮,进入图形编辑画面。(2)保存:选取窗口菜单File→Save,出现对话框,键入文件名multi_4v.gdf,单击OK按钮。(3)指定项目名称,要求与文件名相同:选取窗口菜单File→Project→Name,键入文件名multi_4v,单击OK按钮。
(4)确定对象的输入位置:在图形窗口内单击鼠标左键。(5)引入逻辑门:选取窗口菜单Symbol→EnterSymbol,在\Maxplus2\max2lib\prim处双击,在SymbolFile菜单中选取AND3、NOT、OR4逻辑门,单击OK按钮。(6)引入输入和输出脚:按步骤(5)选出输入脚和输出脚。(7)更改输入和输出脚的脚位名称:在PIN_NAME处双击鼠标左键,进行更名,输入脚为S1、S0、D、C、B、A,输出脚为Y。(8)连接:将S1、S0、A、B、C、D脚连接到输入端,Y脚连接到输出端,如图5-10所示。(9)选择实际编程器件型号:选取窗口菜单Assign→Device,出现对话框,选择ACEX1K系列的EP1K30TC144-1。(10)保存并查错:选取窗口菜单File→Project→Save&Check,即可针对电路文件进行检查。(11)修改错误:针对Massage-Compiler窗口所提供的信息修改电路文件,直到没有错误为止。(12)保存并编译:选取窗口菜单File→Project→Save&Compile,即可进行编译,产生multi_4v.sof烧写文件。图5-104选1数据选择器的原理图(13)创建电路符号:选取窗口菜单File→CreateDefaultSymbol,可以产生multi_4v.sym文件,代表现在所设计的电路符号。选取File→EditSymbol,进入SymbolEdit画面,4选1数据选择器的电路符号如图5-11所示。(14)创建电路包含文件:选取窗口菜单File→CreateDefaultIncludeFile,产生代表现在所设计电路的multi_4v.inc文件,供其他VHDL编译时使用,如图5-12所示。图5-114选1数据选择器的电路符号图5-124选1数据选择器的电路包含文件(15)时间分析:选取窗口菜单Utilities→AnalyzeTiming,再选取窗口菜单Analysis→DelayMatrix,可以产生如图5-13所示的时间分析结果。3.文本输入(1)建立新文件:选取窗口菜单File→New,出现对话框,选择TextEditorfile选项,单击OK按钮,进入文本编辑画面。(2)保存:选取窗口菜单File→Save,出现对话框,键入文件名multi_4v.text,单击OK按钮。图5-134选1数据选择器的时间分析结果(3)指定项目名称,要求与文件名相同:选取窗口菜单File→Project→Name,键入文件名multi_4v,单击OK按钮。(4)选择实际编程器件型号:选取窗口菜单Assign→Device,出现对话框,选择ACEX1K系列的EP1K30TC144-1。(5)输入VHDL源程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmulti_4vIS PORT(S:INSTD_LOGIC_VECTOR(1DOWNTO0);A,B,C,D:INSTD_LOGIC; Y:OUTSTD_LOGIC);ENDmulti_4v;ARCHITECTUREaOFmulti_4vISBEGIN--Y<=(NOTSANDD0)OR(SANDD1);PROCESSBEGINIF(S="00")THENY<=A;ELSIF(S="01")THENY<=B;ELSIF(S="10")THENY<=C;ELSIF(S="11")THENY<=D;ENDIF;ENDPROCESS;ENDa;(6)保存并查错:选取窗口菜单File→Project→Save&Check,即可针对电路文件进行检查。(7)修改错误:针对Massage-Compiler窗口所提供的信息修改电路文件,直到没有错误为止。(8)保存并编译:选取窗口菜单File→Project→Save&Compile,即可进行编译,产生nand2.sof烧写文件。(9)创建电路符号:选取窗口菜单File→CreateDefaultSymbol,可以产生multi_4v.sym文件,代表现在所设计的电路符号。选取File→EditSymbol,进入SymbolEdit画面。(10)创建电路包含文件:选取窗口菜单File→CreateDefaultIncludeFile,产生用来代表现在所设计电路的multi_4v.inc文件,供其他VHDL编译时使用。(11)时间分析:选取窗口菜单Utilities→AnalyzeTiming,再选取窗口菜单Analysis→DelayMatrix,产生时间分析结果。4.软件仿真(1)进入波形编辑窗口:选取窗口菜单MAX+plusⅡ→WaveformEditor,进入波形编辑窗口。(2)引入输入/输出脚:选取窗口菜单Node→EnterNodesfromSNF,出现对话框,单击list按钮,选择AvailableNodes中的输入与输出,按“=>”键将S1、S0、A、B、C、D、Y移至右边,单击OK按钮进行波形编辑。(3)设定时钟的周期:选取窗口菜单Options→GrideSize,出现对话框,设定GrideSize为50ns,单击OK按钮。(4)设定初始值并保存:设定初始值,选取窗口菜单File→Save,出现对话框,单击OK按钮。(5)仿真:选取窗口菜单MAX+plusⅡ→Simulator,出现TimingSimulation对话框,单击Start按钮,出现Simulator对话框,单击“确定”按钮,出现4选1数据选择器的波形图,如图5-14所示。(6)观察输入结果的正确性:单击按钮,可以在时序图中写字,并验证仿真结果的正确性。图5-144选1数据选择器的波形图5.硬件仿真1)下载实验验证(1)选择器件:打开MAX+plusⅡ,选取窗口菜单Assign→Device,出现对话框,选择ACEX1K系列的EP1K30TC144-1。(2)锁定引脚:选取窗口菜单Assign→Pin/Location/Chip,出现对话框,在NodeName中分别键入引脚名称S1、S0、D、C、B、A、Y,在Pin中键入引脚编号68、67、65、64、63、62、17。引脚68对应KEY1,信号灯为LED_KEY1;引脚67对应KEY2,信号灯为LED_KEY2;引脚65对应KEY3,信号灯为LED_KEY3;引脚64对应KEY4,信号灯为LED_KEY4;引脚63对应KEY5,信号灯为LED_KEY5;引脚62对应KEY6,信号灯为LED_KEY6;引脚17对应LED1。(3)编译:选取窗口菜单File→Project→Save&Compile,即可进行编译。(4)烧写:选取窗口菜单Programmer→Configure进行烧写。2)实验结果设定输入信号为键按下时输入“1”信号,此时信号灯亮;否则输入“0”信号,信号灯灭。输出信号为信号灯亮时为“1”,信号灯灭时为“0”。按表5-4所示,分别按下KEY1、KEY2、KEY3、KEY4、KEY5、KEY6键,观察输出LED1的结果。表5-44选1数据选择器的实验结果地址线输出LED_KEY1(S1)LED_KEY2(S0)LED1(Y)灭灭D灭亮C亮灭B亮亮A3)实验解释信号输入键为KEY1、KEY2、KEY3、KEY4、KEY5、KEY6。
按下KEY1键,信号灯LED_KEY1亮,即把“1”信号输入到68引脚(S1),否则表示送入信号“0”。按下KEY2键,信号灯LED_KEY2亮,即把“1”信号输入到67引脚(S0),否则表示送入信号“0”。按下KEY3键,信号灯LED_KEY3亮,即把“1”信号输入到65引脚(D),否则表示送入信号“0”。按下KEY4键,信号灯LED_KEY4亮,即把“1”信号输入到64引脚(C),否则表示送入信号“0”。按下KEY5键,信号灯LED_KEY5亮,即把“1”信号输入到63引脚(B),否则表示送入信号“0”。按下KEY6键,信号灯LED_KEY6亮,即把“1”信号输入到62引脚(A),否则表示送入信号“0”。信号输出由信号灯LED1来显示。LED1亮时表示输出信号为“1”,否则为信号“0”,以此表示17引脚(Y)的信号。输出端的值由芯片EP1K30TC144-1通过程序所编的输入和输出之间的逻辑关系来确定。5.31对2数据分配器的设计数据分配器是一种处理数据的逻辑电路,用来将一个输入信号输出(分配)到指定的输出端。数据分配器可分为1对2数据分配器、1对4数据分配器等,下面以1对2数据分配器为例来介绍数据分配器的设计。1.实验原理1对2数据分配器有1个控制端,2个输出端和1个数据输入端,根据控制端的值选取输入端的值送入到输出端。1对2数据分配器的真值表如表5-5所示。表5-51对2数据分配器真值表控制端输出SY0Y10D010D1对2数据分配器应具备的脚位:控制端:S;输出端:Y0,Y1;数据输入端:D。2.原理图输入(1)建立新文件:选取窗口菜单File→New,出现对话框,选GraphicEditorfile选项,单击OK按钮,进入图形编辑画面。(2)保存:选取窗口菜单File→Save,出现对话框,键入文件名demuti_2v.gdf,单击OK按钮。(3)指定项目名称,要求与文件名相同:选取窗口菜单File→Project→Name,键入文件名demuti_2v,单击OK按钮。(4)确定对象的输入位置:在图形窗口内单击鼠标左键。(5)引入逻辑门:选取窗口菜单Symbol→EnterSymbol,在\Maxplus2\max2lib\prim处双击,在SymbolFile菜单中选取所需的逻辑门,单击OK按钮。(6)引入输入和输出脚:按步骤(5)选出输入脚和输出脚。(7)更改输入和输出脚的脚位名称:在PIN_NAME处双击鼠标左键,进行更名,输入脚为S、D,输出脚为Y0、Y1。(8)连接:将S、D脚连接到输入端,Y0、Y1脚连接到输出端,如图5-15所示。(9)选择实际编程器件型号:选取窗口菜单Assign→Device,出现对话框,选择ACEX1K系列的EP1K30TC144-1。(10)保存并查错:选取窗口菜单File→Project→Save&Check,即可针对电路文件进行检查。(11)修改错误:针对Massage-Compiler窗口所提供的信息修改电路文件,直到没有错误为止。图5-151对2数据分配器的原理图(12)保存并编译:选取窗口菜单File→Project→Save&Compile,即可进行编译,产生demuti_2v.sof烧写文件。(13)创建电路符号:选取窗口菜单File→CreateDefaultSymbol,可以产生demuti_2v.sym文件,代表现在所设计的电路符号。选取File→EditSymbol,进入SymbolEdit画面,1对2多任务器的电路符号如图5-16所示。(14)创建电路包含文件:选取窗口菜单File→CreateDefaultIncludeFile,产生用来代表现在所设计电路的demuti_2v.inc文件,供其他VHDL编译时使用,如图5-17所示。(15)时间分析:选取窗口菜单Utilities→AnalyzeTiming,再选取窗口菜单Analysis→DelayMatrix,可以产生如图5-18所示的时间分析结果。图5-161对2数据分配器的电路符号图5-171对2数据分配器的电路包含文件图5-181对2多任务器的时间分析结果3.文本输入(1)建立新文件:选取窗口菜单File→New,出现对话框,选TextEditorfile选项,单击OK按钮,进入文本编辑画面。(2)保存:选取窗口菜单File→Save,出现对话框,键入文件名demuti_2v.text,单击OK按钮。(3)指定项目名称,要求与文件名相同:选取窗口菜单File→Project→Name,键入文件名demuti_2v,单击OK按钮。(4)选择实际编码器件型号:选取窗口菜单Assign→Device,出现对话框,选择ACEX1K系列的EP1K30TC144-1。(5)输入VHDL源程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYdemuti_2vIS PORT(D,S :IN STD_LOGIC;Y0,Y1:OUTSTD_LOGIC);ENDdemuti_2v;ARCHITECTUREaOFdemuti_2vISBEGINPROCESSBEGINIFS='0'THENY0<=D;ELSEY1<=D;ENDIF;ENDPROCESS;ENDa;(6)保存并查错:选取窗口菜单File→Project→Save&Check,即可针对电路文件进行检查。(7)修改错误:针对Massage-Compiler窗口所提供的信息修改电路文件,直到没有错误为止。(8)保存并编译:选取窗口菜单File→Project→Save&Compile,即可进行编译,产生demuti_2v.sof烧写文件。(9)创建电路符号:选取窗口菜单File→CreateDefaultSymbol,可以产生demuti_2v.sym文件,代表现在所设计的电路符号。选取File→EditSymbol,进入SymbolEdit画面。(10)创建电路包含文件:选取窗口菜单File→CreateDefaultIncludeFile,产生用来代表现在所设计电路的demuti_2v.inc文件,供其他VHDL编译时使用。(11)时间分析:选取窗口菜单Utilities→AnalyzeTiming,再选取窗口菜单Analysis→DelayMatrix,产生时间分析结果。4.软件仿真(1)进入波形编辑窗口:选取窗口菜单MAX+plusⅡ→WaveformEditor,进入波形编辑窗口。(2)引入输入和输出脚:选取窗口菜单Node→EnterNodesfromSNF,出现对话框,单击list按钮,选择AvailableNodes中的输入与输出,按“=>”键将S、Y0、Y1、D移至右边,单击OK按钮进行波形编辑。(3)设定时钟的周期:选取窗口菜单Options→GrideSize,出现对话框,设定GrideSize为50ns,单击OK按钮。(4)设定初始值并保存:设定初始值,选取窗口菜单File→Save,出现对话框,单击OK按钮。(5)仿真:选取窗口菜单MAX+plusⅡ→Simulator,出现TimingSimulation对话框,单击Start按钮,出现Simulator对话框,单击“确定”按钮,显示如图5-19所示的波形图。(6)观察输入结果的正确性:单击按钮,可以在时序图中写字,并验证仿真结果的正确性。图5-191对2数据分配器的波形图5.硬件仿真1)下载实验验证(1)选择器件:打开MAX+plusⅡ,选取窗口菜单Assign→Device,出现对话框,选择ACEX1K系列的EP1K30TC144-1。(2)锁定引脚:选取窗口菜单Assign→Pin/Location/Chip,出现对话框,在NodeName中分别键入引脚名称S、D、Y0、Y1。在Pin中键入引脚编号68、67、17、13。引脚68对应KEY1,信号灯为LED_KEY1;引脚67对应KEY2,信号灯为LED_KEY2;引脚17、13分别对应LED1、LED2。(3)编译:选取窗口菜单File→Project→Save&Compile,即可进行编译。(4)烧写:选取窗口菜单Programmer→Configure进行烧写。2)实验结果设定输入信号为键按下时输入“1”信号,此时信号灯亮;否则输入“0”信号,信号灯灭。输出信号为信号灯亮时为“1”,信号灯灭时为“0”。按表5-6所示,分别按下KEY1、KEY2、KEY3键,观察输出LED1和LED2的结果。表5-61对2数据分配器的实验结果地址线输入输出LED_KEY1(S)LED_KEY2(D)LED1(Y1)LED2(Y0)灭亮灭亮亮亮亮灭3)实验解释信号输入键为KEY1、KEY2。按下KEY1键,信号灯LED_KEY1亮,即把“1”信号输入到68引脚(S),否则表示送入信号“0”。按下KEY2键,信号灯LED_KEY2亮,即把“1”信号输入到67引脚(D),否则表示送入信号“0”。信号输出由信号灯LED1来显示。LED1(或LED2)亮时表示输出信号为“1”,否则为信号“0”,以此表示17、13引脚(Y1、Y0)的信号。输出端的值由芯片EP1K30TC144-1通过程序所编的输入和输出之间的逻辑关系来确定。5.44位BCD译码器的设计4位BCD译码器可将BCD码转换成数字显示码,有4个输入引脚和7个输出引脚。4位BCD译码器可分为共阴与共阳两种,下面以设计共阳4位BCD译码器为例来说明其设计方法。1.实验原理共阳4位BCD译码器有4个输入端用来输入BCD码,7个输出端分别对应到七段显示器的a、b、c、d、e、f、g七段数码管。其真值表如表5-7所示。表5-74位BCD译码器真值表数据线输出D3D2D1D0S0S1S2S3S4S5S6000000000010001100111100100010010001100001100100100110001010100100011001000000111000111110000000000100100001004位BCD译码器应具备的脚位:输入端:D3、D2、D1、D0;
输出端:S6、S5、S4、S3、S2、S1、S0。2.原理图输入由于原理图输入法较复杂,所以在这里不再详述。3.文本输入(1)建立新文件:选取窗口菜单File→New,出现对话框,选TextEditorfile选项,单击OK按钮,进入文本编辑画面。(2)保存:选取窗口菜单File→Save,出现对话框,键入文件名sevenBCD.text,单击OK按钮。(3)指定项目名称,要求与文件名相同:选取窗口菜单File→Project→Name,键入文件名sevenBCD,单击OK按钮。
(4)选择实际编程器件型号:选取窗口菜单Assign→Device,出现对话框,选择ACEX1K系列的EP1K30TC144-1。(5)输入VHDL源程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYsevenBCDIS PORT(D :IN INTEGERRANGE0TO9; S:OUTSTD_LOGIC_VECTOR(0DOWNTO6));ENDsevenBCD;ARCHITECTUREaOFsevenBCDISBEGINPROCESS(D) BEGINCASEDISWHEN0=>S<="0000001"; --0WHEN1=>S<="1001111"; --1WHEN2=>S<="0010010"; --2WHEN3=>S<="0000110"; --3WHEN4=>S<="1001100"; --4WHEN5=>S<="0100100"; --5WHEN6=>S<="0100000"; --6WHEN7=>S<="0001111"; --7WHEN8=>S<="0000000"; --8WHEN9=>S<="0000100"; --9WHENOTHERS=>S<="1111111";
ENDCASE;
ENDPROCESS;ENDa;(6)保存并查错:选取窗口菜单File→Project→Save&Check,即可针对电路文件进行检查。(7)修改错误:针对Massage-Compiler窗口所提供的信息修改电路文件,直到没有错误为止。(8)保存并编译:选取窗口菜单File→Project→Save&Compile,即可进行编译,产生sevenBCD.sof烧写文件。图5-204位BCD译码器的电路符号(9)创建电路符号:选取窗口菜单File→CreateDefaultSymbol,可以产生sevenBCD.sym文件,代表现在所设计的电路符号。选取File→EditSymbol,进入SymbolEdit画面,4位BCD译码器的电路符号如图5-20所示。(10)创建电路包含文件:选取窗口菜单File→CreateDefaultIncludeFile,产生用来代表现在所设计电路的sevenBCD.inc文件,供其他VHDL编译时使用。(11)时间分析:选取窗口菜单Utilities→AnalyzeTiming,再选取窗口菜单Analysis→DelayMatrix,产生如图5-21所示的时间分析结果。图5-214位BCD译码器的时间分析结果4.软件仿真(1)进入波形编辑窗口:选取窗口菜单MAX+plusⅡ→WaveformEditor,进入波形编辑窗口。(2)引入输入和输出脚:选取窗口菜单Node→EnterNodesfromSNF,出现对话框,单击list按钮,选择AvailableNodes中的输入与输出,按“=>”键将D3、D2、D1、D0、S6、S5、S4、S3、S2、S1、S0移至右边,单击OK按钮进行波形编辑。(3)设定时钟的周期:选取窗口菜单Options→GrideSize,出现对话框,设定GrideSize为50ns,单击OK按钮。(4)设定初始值并保存:设定初始值,选取窗口菜单File→Save,出现对话框,单击OK按钮。(5)仿真:选取窗口菜单MAX+plusⅡ→Simulator,出现TimingSimulation对话框,单击Start按钮,出现Simulator对话框,单击“确定”按钮,出现如图5-22所示的波形图。
(6)观察输入结果的正确性:单击按钮,可以在时序图中写字,并验证仿真结果的正确性。图5-224位BCD译码器的波形图5.硬件仿真1)下载实验验证(1)选择器件:打开MAX+plusⅡ,选取窗口菜单Assign→Device,出现对话框,选择ACEX1K系列的EP1K30TC144-1。(2)锁定引脚:选取窗口菜单Assign→Pin/Location/Chip,出现对话框,在NodeName中分别键入引脚名称D3、D2、D1、D0、S5、S4、S3、S2、S1、S0、S6,在Pin中键入引脚编号68、67、65、64、17、13、12、10、9、8、140。引脚68对应KEY1,信号灯为LED_KEY1;引脚67对应KEY2,信号灯为LED_KEY2;引脚65对应KEY3,信号灯为LED_KEY3;引脚64对应KEY4,信号灯为LED_KEY4;引脚17、13、12、10、9、8、140分别对应LED1~LED7。(3)编译:选取窗口菜单File→Project→Save&Compile,即可进行编译。(4)烧写:选取窗口菜单Programmer→Configure进行烧写。2)实验结果设定输入信号为键按下时输入“1”信号,此时信号灯亮;否则为输入“0”信号,信号灯灭。输出信号为信号灯亮时为“1”,信号灯灭时为“0”。按表5-8所示,分别按下KEY1、KEY2、KEY3、KEY4键,观察输出LED1~LED7的结果。表5-84位BCD译码器实验结果数据线输出LED_KEY1LED_KEY2LED_KEY3LED_KEY4LED1LED2LED3LED4LED5LED6LED7灭灭灭灭亮亮亮亮亮亮灭灭灭灭亮灭亮亮灭灭灭灭灭灭亮灭亮亮灭亮亮灭亮灭灭亮亮亮亮亮亮灭灭亮灭亮灭灭灭亮亮灭灭亮亮灭亮灭亮亮灭亮亮灭亮亮灭亮亮灭亮灭亮亮亮亮亮灭亮亮亮亮亮亮灭灭灭灭亮灭灭灭亮亮亮亮亮亮亮亮灭灭亮亮亮亮亮灭亮亮3)实验解释信号输入键为KEY1、KEY2、KEY3、KEY4。按下KEY1键,信号灯LED_KEY1亮,即把“1”信号输入到68引脚(D3),否则表示送入信号“0”。按下KEY2键,信号灯LED_KEY2亮,即把“1”信号输入到67引脚(D2),否则表示送入信号“0”。按下KEY3键,信号灯LED_KEY3亮,即把“1”信号输入到65引脚(D1),否则表示送入信号“0”。按下KEY4键,信号灯LED_KEY4亮,即把“1”信号输入到64引脚(D0),否则表示送入信号“0”。信号输出由信号灯LED1~LED7来显示。LED1~LED7亮时分别表示输出信号为“1”,否则为信号“0”,以此表示17、13、12、10、9、8、140引脚(S5、S4、S3、S2、S1、S0、S6)的信号。输出端的值由芯片EP1K30TC144-1通过程序所编的输入和输出之间的逻辑关系来确定。5.5三态门的设计三态门是具有三种输出状态的器件,有MOS型和双极型两种,下面我们对P型MOS三态门的设计进行讨论。
表5-9P型MOS三态门真值表Bdataout0高阻1A
1.实验原理
P型MOS三态门有两个输入端B、A和一个输出端dataout,输出端有高阻、0、1三个状态。其真值表如表5-9所示。
P型MOS三态门应具备的脚位:输入端:B、A;
输出端:dataout。
2.原理图输入(1)建立新文件:选取窗口菜单File→New,出现对话框,选GraphicEditorfile选项,单击OK按钮,进入图形编辑画面。(2)保存:选取窗口菜单File→Save,出现对话框,键入文件名tri.gdf,单击OK按钮。(3)指定项目名称,要求与文件名相同:选取窗口菜单File→Project→Name,键入文件名tri,单击OK按钮。
(4)确定对象的输入位置:在图形窗口内单击鼠标左键。(5)引入逻辑门:选取窗口菜单Symbol→EnterSymbol,在\Maxplus2\max2lib\prim处双击,在SymbolFile菜单中选取所需的逻辑门,单击OK按钮。(6)引入输入和输出脚:按步骤(5)选出输入脚和输出脚。(7)更改输入和输出脚的脚位名称:在PIN_NAME处双击鼠标左键,进行更名,输入脚为B、A,输出脚为dataout。(8)连接:将B、A脚连接到输入端,dataout脚连接到输出端,如图5-23所示。(9)选择实际编程器件型号:选取窗口菜单Assign→Device,出现对话框,选择ACEX1K系列的EP1K30TC144-1。(10)保存并查错:选取窗口菜单
File→Project→Save&Check,即可针对电路文件进行检查。(11)修改错误:针对Massage-Compiler窗口所提供的信息修改电路文件,直到没有错误为止。图5-23三态门的原理图(12)保存并编译:选取窗口菜单File→Project→Save&Compile,即可进行编译,产生tri.sof烧写文件。(13)创建电路符号:选取窗口菜单File→CreateDefaultSymbol,可以产生tri.sym文件,代表现在所设计的电路符号。选取File→EditSymbol,进入SymbolEdit画面,三态门的电路符号如图5-24所示。(14)创建电路包含文件:选取窗口菜单File→CreateDefaultIncludeFile,产生用来代表现在所设计电路的tri.inc文件,供其他VHDL编译时使用,如图5-25所示。(15)时间分析:选取窗口菜单Utilities→AnalyzeTiming,再选取窗口菜单Analysis→DelayMatrix,可以产生如图5-26所示的时间分析结果。图5-24三态门的电路符号图5-25三态门的电路包含文件图5-26三态门的时间分析结果3.文本输入(1)建立新文件:选取窗口菜单File→New,出现对话框,选TextEditorfile选项,单击OK按钮,进入文本编辑画面。(2)保存:选取窗口菜单File→Save,出现对话框,键入文件名tri.text,单击OK按钮。(3)指定项目名称,要求与文件名相同:选取窗口菜单File→Project→Name,键入文件名tri,单击OK按钮。(4)选择实际编程器件型号:选取窗口菜单Assign→Device,出现对话框,选择ACEX1K系列的EP1K30TC144-1。(5)输入VHDL源程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYtri_vIS PORT ( datain :IN STD_LOGIC; outen :IN STD_LOGIC; dataout :OUT STD_LOGIC );ENDtri_v;ARCHITECTUREaOFtri_vISBEGIN PROCESS(outen,datain) BEGIN IFouten='0'THEN dataout <='Z'; ELSE dataout <=datain; ENDIF; ENDPROCESS;ENDa;(6)保存并查错:选取窗口菜单
File→Project→Save&Check,即可针对电路文件进行检查。(7)修改错误:针对Massage-Compiler窗口所提供的信息修改电路文件,直到没有错误为止。(8)保存并编译:选取窗口菜单File→Project→Save&Compile,即可进行编译,产生sevenBCD.sof烧写文件。
(9)创建电路符号:选取窗口菜单File→CreateDefaultSymbol,可以产生tri.sym文件,代表现在所设计的电路符号。选取File→EditSymbol,进入SymbolEdit画面。(10)创建电路包含文件:选取窗口菜单File→CreateDefaultIncludeFile,产生用来代表现在所设计电路的tri.inc文件,供其他VHDL编译时使用。(11)时间分析:选取窗口菜单Utilities→AnalyzeTiming,再选取窗口菜单Analysis→DelayMatrix,产生时间分析结果。4.软件仿真(1)进入波形编辑窗口:选取窗口菜单MAX+plusⅡ→WaveformEditor,进入波形编辑窗口。(2)引入输入和输出脚:选取窗口菜单Node→EnterNodesfromSNF,出现对话框,单击list按钮,选择AvailableNodes中的输入与输出,按“=>”键将B、A、dataout移至右边,单击OK按钮进行波形编辑。(3)设定时钟的周期:选取窗口菜单Options→GrideSize,出现对话框,设定GrideSize为50ns,单击OK按钮。(4)设定初始值并保存:设定初始值,选取窗口菜单File→Save,出现对话框,单击OK按钮。(5)仿真:选取窗口菜单MAX+plusⅡ→Simulator,出现TimingSimulation对话框,单击Start按钮,出现Simulator对话框,单击“确定”按钮,出现如图5-27所示的波形图。(6)观察输入结果的正确性:单击按钮,可以在时序图中写字,并验证仿真结果的正确性。图5-27三态门的波形图5.硬件仿真1)下载实验验证(1)选择器件:打开MAX+plusⅡ,选取窗口菜单Assign→Device,出现对话框,选择ACEX1K系列的EP1K30TC144-1。(2)锁定引脚:选取窗口菜单Assign→Pin/Location/Chip,出现对话框,在NodeName中分别键入引脚名称B、A、dataout,在Pin中键入引脚编号68、67、17。引脚68对应KEY1,信号灯为LED_KEY1;引脚67对应KEY2,信号灯为LED_KEY2;引脚17对应LED1。(3)编译:选取窗口菜单File→Project→Save&Compile,即可进行编译。(4)烧写:选取窗口菜单Programmer→Configure进行烧写。2)实验结果设定输入信号为键按下时输入“1”信号,此时信号灯亮;否则输入“0”信号,信号灯灭。输出信号为信号灯亮时为“1”,信号灯灭时为“0”。按表5-10所示,分别按下KEY1、KEY2键,观察输出LED1的结果。
表5-10P型MOS三态门实验结果LED_KEY1(B)LED1(dataout)灭Z(高阻)亮A3)实验解释信号输入键为KEY1、KEY2。按下KEY1键,信号灯LED_KEY1亮,即把“1”信号输入到68引脚(B),否则表示送入信号“0”。按下KEY2键,信号灯LED_KEY2亮,即把“1”信号输入到67引脚(A),否则表示送入信号“0”。信号输出由信号灯LED1来显示。LED1亮时表示输出信号为“1”,否则为信号“0”,以此表示17引脚(dataout)的信号。输出端的值由芯片EP1K30TC144-1通过程序所编的输入和输出之间的逻辑关系来确定。5.6半加器的设计1.实验原理半加器可对两个一位二进制数进行加法运算,同时产生进位。其真值表如表5-11所示。表5-11半加器真值表输入输出ABSC0000011010101101半加器应具备的脚位:输入端:A、B;输出端:S、C。2.原理图输入(1)建立新文件:选取窗口菜单File→New,出现对话框,选GraphicEditorfile选项,单击OK按钮,进入图形编辑画面(或者选TextEditorfile选项,进入文本编辑画面,直接在文件中键入所编程序)。(2)保存:选取窗口菜单File→Save,出现对话框,键入文件名half_add.gdf(如是文本文件,则键入文件名half_add.text),单击OK按钮。(3)指定项目名称,要求与文件名相同:选取窗口菜单File→Project→Name,键入文件名half_add,单击OK按钮(以下(4)~(8)步骤在文本输入法中不用)。(4)确定对象的输入位置:在图形窗口内单击鼠标左键。(5)引入逻辑门:选取窗口菜单Symbol→EnterSymbol,在\Maxplus2\max2lib\prim处双击,在SymbolFile菜单中选取所需的逻辑门,单击OK按钮。(6)引入输入和输出脚:按步骤(5)选出输入脚和输出脚。(7)更改输入和输出脚的脚位名称:在PIN_NAME处双击鼠标左键,进行更名。输入脚为B、A,输出脚为S、C。(8)连接:将B、A脚连接到输入端,S、C脚连接到输出端,如图5-28所示。图5-28半加器的原理图(9)选择实际编程器件型号:选取窗口菜单Assign→Device,出现对话框,选择ACEX1K系列的EP1K30TC144-1。
(10)保存并查错:选取窗口菜单
File→Project→Save&Check,即可针对电路文件进行检查。(11)修改错误:针对Massage-Compiler窗口所提供的信息修改电路文件,直到没有错误为止。(12)保存并编译:选取窗口菜单File→Project→Save&Compile,即可进行编译,产生half_add.sof烧写文件。(13)创建电路符号:选取窗口菜单File→CreateDefaultSymbol,可以产生half_add.sym文件,代表现在所设计的电路符号。选取File→EditSymbol,进入SymbolEdit画面,半加器的电路符号如图5-29所示。(14)创建电路包含文件:选取窗口菜单File→CreateDefaultIncludeFile,产生用来代表现在所设计电路的half_add.inc文件,供其他VHDL编译时使用。半加器的电路包含文件如图5-30所示。(15)时间分析:选取窗口菜单Utilities→AnalyzeTiming,再选取窗口菜单Analysis→DelayMatrix,可以产生如图5-31所示的时间分析结果。图5-29半加器的电路符号图5-30半加器的电路包含文件图5-31半加器的时间分析结果3.文本输入(1)建立新文件:选取窗口菜单File→New,出现对话框,选TextEditorfile选项,单击OK按钮,进入文本编辑画面。(2)保存:选取窗口菜单File→Save,出现对话框,键入文件名half_add.text,单击OK按钮。(3)指定项目名称,要求与文件名相同:选取窗口菜单File→Project→Name,键入文件名half_add,单击OK按钮。(4)选择实际编程器件型号:选取窗口菜单Assign→Device,出现对话框,选择ACEX1K系列的EP1K30TC144-1。(5)输入VHDL源程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYhalf_addIS PORT(A,B :INSTD_LOGIC; S,C :OUTSTD_LOGIC);ENDhalf_add;ARCHITECTUREaOFhalf_addISSIGNALtemp:STD_LOGIC_VECTOR(1DOWNTO0);BEGIN temp<=('0'&A)+B;S<=temp(0);C<=temp(1);ENDa;(6)保存并查错:选取窗口菜单File→Project→Save&Check,即可针对电路文件进行检查。(7)修改错误:针对Massage-Compiler窗口所提供的信息修改电路文件,直到没有错误为止。(8)保存并编译:选取窗口菜单File→Project→Save&Compile,即可进行编译,产生half_add.sof烧写文件。(9)创建电路符号:选取窗口菜单File→CreateDefaultSymbol,可以产生half_add.sym文件,代表现在所设计的电路符号。选取File→EditSymbol,进入SymbolEdit画面。(10)创建电路包含文件:选取窗口菜单File→CreateDefaultIncludeFile,产生用来代表现在所设计电路的half_add.inc文件,供其他VHDL编译时使用。(11)时间分析:选取窗口菜单Utilities→AnalyzeTiming,再选取窗口菜单Analysis→DelayMatrix,产生时间分析结果。4.软件仿真(1)进入波形编辑窗口:选取窗口菜单MAX+plusⅡ→WaveformEditor,进入波形编辑窗口。(2)引入输入和输出脚:选取窗口菜单Node→EnterNodesfromSNF,出现对话框,单击list按钮,选择AvailableNodes中的输入与输出,按“=>”键将A、B、S、C移至右边,单击OK按钮进行波形编辑。(3)设定时钟的周期:选取窗口菜单Options→GrideSize,出现对话框,设定GrideSize为50ns,单击OK按钮。(4)设定初始值并保存:设定初始值,选
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年系统分析师考试模拟分析试题及答案
- 防拐骗安全教育课件模板
- 2025餐馆转让的合同协议书
- 盐城幼儿师范高等专科学校《城市公共事业管理理论与实践》2023-2024学年第二学期期末试卷
- 山西省吕梁市兴县多校2025届九年级上学期12月月考数学试卷(含答案)
- 浙江省温州市2025届高三下学3月二模试题 物理 含解析
- 民办万博科技职业学院《音乐律动(二)》2023-2024学年第一学期期末试卷
- 河北师范大学汇华学院《大数据数据库应用技术》2023-2024学年第二学期期末试卷
- 广东佛山市石门中学2025届高三新时代NT抗疫爱心卷(II)生物试题含解析
- 山东省广饶一中重点中学2025届高三下学期返校热身考试化学试题含解析
- 高三英语语法填空专项训练100(附答案)及解析
- GJB9001C-2017管理手册、程序文件及表格汇编
- 阿斯丹商赛运营规划方案
- 《HSK标准教程2》第4课课件
- 300立方米柴油储罐设计
- 2024年事业单位考试贵州省毕节地区毕节市A类《职业能力倾向测验》统考试题含解析
- (完整文本版)新概念英语第一册单词表默写版1-144
- 《我的心灵疗愈》
- 中国教育史(第四版)全套教学课件
- 2022年4月自考02400建筑施工(一)试题及答案含评分标准
- 志愿者申请登记表
评论
0/150
提交评论