比较器的设计与实现实验报告文档格式.docx
- 文档编号:17128110
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:10
- 大小:327.54KB
比较器的设计与实现实验报告文档格式.docx
《比较器的设计与实现实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《比较器的设计与实现实验报告文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
B时,F2为1,F1、F3为0;
当A=B时,F3为1,F1、F2为0。
A<B
F1
F2
F3
A2
A1
B2
B1
2.实现
1)VHDL实现
系统的VHDL设计通常采用层次化的设计方法,自顶向下划分系统功能并逐层细化逻辑描述。
VHDL实体功能的描述可分为结构式、行为式和寄存器传输级(RegisterTransferLevel,RTL)描述三种。
此次实验结构比较简单,采用寄存器传输级描述的实现方式,选用并行信号赋值语句。
2)LPM实现
参数化模板库(LibraryParameterizedModules,LPM)提供了一系列可以参数化定制的逻辑功能模块。
采用LPM设计方法的主要优势在于设计文件与器件结构无关、高效布线和通用性三方面。
三、实验内容
1.VHDL实现
新建VHDL文件,输入以下代码
说明:
当VHDL设计电路反馈时,应将端口声明为buffer端口,而不是out端口。
若out端口需要反馈至电路内部时,常使用signal去实现反馈。
查看波形仿真
网格参数设置:
Simulationmode:
Functional;
Endtime:
2us;
Gridesize:
100ns;
信号说明:
a2a1和b2b1为二位二进制输入信号;
f1f2f3为三位二进制输出信号;
数据信号参数设置:
a2a1:
CountValue→Counting→Incrementby:
01
CountValue→Timing→Countevery:
400.0ns
b2b1:
100.0ns
管脚绑定:
下载测试:
程序下载完成后,由于管脚86、87、88、89均为关闭状态,即A、B输入均为00,f1f2f3输出为010,故只有管脚41所对应的二极管亮。
按照开关闭合为输入1断开为输入0的规则闭合和断开管脚86、87、88、89,管脚41、39、38所对应的二极管的亮灭结果符合实验预期和逻辑结果,与波形图一致。
2.LPM实现
1.新建工程并选择目标器件;
2.选择Tools→MegaWizardPlug-inManager命令,选择Createanewcustommegafunctionvariation定制一个新的宏模块;
3.设置目标器件为Flex10K,元件名为lpm_compare2文件输出类型为VHDL;
4.设置输出数据宽度为2位,并选择所需输出端口;
5.设置datab和比较符号类型;
6.设置流水线,进入EDA设置界面;
7.设置Generatenetlist,打开仿真图。
四、实验结论
数位相同的两个二进制数通过从高位到低位逐项比较可得其大小关系。
若所有位上的数值都相等,则两数相等;
若在某一位开始,第一个数比第二个数大(小),那么第一个数比第二个数大(小)。
五、实验总结
1、这次做实验报告吸取了上次做实验报告的教训,不再是截图截图了,对实验原理等实质性的东西增加了许多文字性的描述。
2、每次做实验总会出现许多自己意想不到的小错误导致实验失败,需要多加实践练习和理论学习,更加深层次理解其原理。
3、敲了许多次代码,对VHDL语言的语法习惯有了一些理解。
六、实验日志
问题1:
第一次设置输入数据信号参数时,没有定义周期,结果导致A、B信号周期相同,仿真图和实验书上的结果出现了很大差别,后来进行了设置,至少形式上有所相同了。
后来想到的确是需要调整周期,否则不会出现A、B数据的分别对应结果,只能是00对应00,11对应11了。
问题2:
经过以上的调整,虽然形式上一样了,但是实验结果出现了差别,原来我以为是代码的逻辑错误,但我看了许多遍,更改了许多遍,还是有错误,后来发现是建立网格时a1a2的顺序弄错了,应该是a2在上a1在下。
以后做实验的时候应该多动脑筋思考,许多细节上的东西,实验书上不会展示出来。
思考题:
(2)、VHDL中如何调用用户自定义元件、旧式74系列元件、参数化元件?
用户自定义元件:
libraryWORK;
useWORK._user_package.all;
--_user_package代表用户程序包
旧式74系列元件:
libraryALTERA;
useALTERA.maxplus2.all;
参数化元件:
libraryLPM;
useLPM.lpm_components.all;
(3)、比较VHDL中的signal和variable?
signal:
1)、变量必须先定义,后使用。
它无实际的物理意义;
2)、VHDL中的变量都是局部变量;
3)、变量的赋值用“:
=”来表示,没有延时;
variable:
1)、VHDL的信号一般是有实际的物理意义的。
(在entity的port部分所定义的接口实际上都属于信号范畴);
2)、信号可以使全局定义的,也可以是局部定义的;
3)、信号的赋值用“<
=”来表示(有时这种操作也称为信号的传送),可以规定延迟(若没指定延迟时,信号的传送也会有一最小延迟Δ)。
(4)、VHDL中如何设计反馈电路?
使用buffer信号。
(5)、举例说明常用的VHDL 的顺序执行和并行执行语句?
例:
x,y,z三个信号初始值为‘0’:
signalx,y,z:
std_logic;
x<
=’0’;
y<
z<
然后执行语句:
=x;
=z;
=’1’;
1)、若是顺序执行,则最终结果x<
=’0’,y<
=’0’,z<
2)、若是并行执行,则最终结果x<
=’1’,y<
=’1’,z<
(7)、说明VHDL描述组合逻辑电路时signal的作用是什么?
连接电路。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 比较 设计 实现 实验 报告