常用组合逻辑电路设计Word下载.docx
《常用组合逻辑电路设计Word下载.docx》由会员分享,可在线阅读,更多相关《常用组合逻辑电路设计Word下载.docx(11页珍藏版)》请在冰点文库上搜索。
![常用组合逻辑电路设计Word下载.docx](https://file1.bingdoc.com/fileroot1/2023-4/30/e8d6f3ce-48c9-4ba5-9ea2-e110ab70ee0b/e8d6f3ce-48c9-4ba5-9ea2-e110ab70ee0b1.gif)
结构图:
三、实验设计
①利用VHDL实现
(1)VHDL代码libraryIEEE;
useIEEE.std_logic_1164.all;
entitybijiaois
port(a2,a1:
inSTD_LOGIC;
b2,b1:
f1,f2:
bufferSTD_LOGIC;
f3:
outSTD_LOGIC);
endbijiao;
architecturebijiao_archofbijiaois
begin
f1<
=(a2and(notb2))or(a1and(notb1)anda2)or(a1and(notb1)and(notb2));
f2<
=((nota2)andb2)or((nota2)and(nota1)andb1)or((nota1)andb1andb2);
f3<
=not(f1orf2);
endbijiao_arch;
(2)
波形仿真网格大小100ns结束时间2μs
(3)仿真分析
周期设置:
为得出如图仿真结果,依据题意设置信号输入周期A2为800ns,A1为400ns,B2为200ns,B1为100ns。
仿真结论:
输入
输出
A2A1
B2B1
F1F2F3
00
001
01
010
10
11
100
由图表结果得出以下结论:
I.当A2A1>
B2B1时,F1为1;
II.当A2A1<
B2B1时,F2为1;
III.当A2A1=B2B1时,F3为1;
IV.仿真结果正确。
(4)管脚分配(实验板)InputA2PIN_60InputA1PIN_59InputB2PIN_51InputB1PIN_49
OutputF1PIN_88
OutputF2PIN_87
OutputF3PIN_86
(5)下载验证:
60、59支配A2A1输入信号,51、49支配B2B1输入信号。
88、87、86分别对应显示F1、F2、F3的结果,又信号输出为1时亮,输出为0时不亮。
结果:
I.A2A1>
B2B1时,F1为1,88亮灯;
II.A2A1<
B2B1时,F2为1,87亮灯;
III.A2A1=B2B1时,F3为1,86亮灯;
结论:
下载验证结果与管脚分配保持一致。
(6)RTLviewer调试结果
f2~5b2^b1^a1'
f1~4b2
'
^b1'
^a1
f2~0b2^a2'
f1~2a2^(b1
^a1)
f2~2b1^a1'
^a2'
f1~5(b2^b1
^a1)+(b1'
^a2)
f1~1b1'
f1~0b2'
^a2
f2~6(b2^b1^a1'
)+(b2^a2'
)+(b1^a1'
f3~0(b2^b1^a1'
)
)+(b2^b1'
②利用LPM元件实现
(1)流程
利用LPM原件定制实现两个二位数大小比较的电路,包括>、<、=、>=、<=、<>
新建工程所在文件夹为lpm_compare2、工程名称为lpm_lpm_compare2、顶层实体名称为lpm_compare2,选择目标器件EPF10K20TI144-4。
选择Tool→MegaWizardplug-inManager命令,或在图形编辑窗口中的空白处双击,在弹出的对话框中选择MegaWizardPlug-inManager,选择Createanewcustommegafunctionvariation,点击Next。
左侧列表中选择InstalledPlug_Ins→Arithmetic→lpm_compare,设置目标器件为Flex10K,元件名为lpm_compare2,文件输出类型为VHDL,单击next
设置输入数据宽度为2位,选择所需输出端口,单击Next
设置datab和比较数值符号类型,单击next
设置流水线,单击Next
选择要生成的文件,单击Finish,完成lpm_compare2的定制。
打开输出路径下地lpm_compare2——waveforms.html。
仿真波形结果如图:
输入二进制信号
dataa,
A=B
A>
B
=B
A<
A≠B
与
VHDL仿真验证结果保持一致。
(2)管脚分配(实验板)
Inputdataa[1]PIN_60
Inputdataa[0]PIN_59
Inputdatab[1]PIN_51
Inputdatab[0]PIN_49
OutputAeBPIN_95
OutputAgBPIN_92
OutputAgeBPIN_91
OutputAlBPIN_90
OutputAleBPIN_89
OutputAneBPIN_88
(3)下载验证:
95、92、91、90、89、88分别对应显示AeB、AgB、AgeB、AlB、AleB、AneB的结果,且信号输出为1时亮,输出为0时不亮。
I.当A=B时,95亮灯;
II.当A>
B时,92亮灯,
III.当A>
=B时,91亮灯;
IV.当A<
B时,90亮灯;
V.当A<
=B时,89亮灯;
VI.当A≠时,88亮灯。
四、思考题
1、VHDL中如何调用用户自定义元件、旧式74系列元件、参数化元件?
答:
调用用户自定义元件:
librarywork;
usework.package_name._package_name;
调用旧式74系列元件和参数化元件:
libraryaltera;
usealtera.muxplus2.maxplus2;
调用参数化原件:
libraryLPM;
useLPM.lpmponents;
2、比较VHDL中的signal与variable?
对信号而言会有延时,而变量则是立即赋值。
变量声明及赋值应在进程中,而信号只需要在整个结构体中声明赋值即可。
在一个进程中,如果对一个信号多次赋值,那么,只有最后一个值才是有效的。
如果对变量多次赋值,那么每次赋值都是有效的,并且,变量的值在再次赋值之前一直保持不变。
3、VHDL中如何设计电路反馈信号?
将端口声明为Buffer端口,而不是out端口。
4、举例说明常用的VHDL顺序执行和并行执行语句?
(1)顺序执行语句:
赋值语句、流程控制语句、等待语句、调用语句、返回语句
(2)并行语句:
并行信号赋值语句、进程语句、块语句、条件信号赋值语句、元件例化语句、并行过程调用语句、参数传递映射语句、端口说明语句。
5、说明VHDL描述组合逻辑电路是signal的作用是什么?
在组合逻辑电路中,signal起到电路内部连接传递的作用。
五、实验日志
遇到的问题:
1、在进行参数设置时,不知道如何设置成仿真图所示。
2、仿真图有细微差别,原因是在LIST选取结点时,未按照信号输入结点的顺序进行点击,即应先点击A2,后点击A1,同理B2B1。
3、在进行LPM宏功能选择对话框的路径必须写明lpm_compare2,未写明是can'
tfindfiles。
4、在进行LPM的lpm_compare2文件夹中无法找到lpm_compare2_waveforms.html文件,将查找范围定为all.files解决问题。
疑问:
lpm_compare2波形中为什么dataa和datab中出现0、1、2、3等信号。
六、实验心得
通过本次实验,掌握组合逻辑电路设计的方法,掌握并熟悉VHDL实现、LPM元件实现以及RTL调试,并进一步熟练了仿真、下载等流程。