您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > verilog实现8字节比较器
《8字节比较器》实验报告一、实验目的及要求1、掌握基本组合逻辑电路的实现方法;2、初步了解两种基本组合逻辑电路的生成方法;3、学习编写测试模块。4、设计一个字节数为8位的比较器,比较两个字节的大小。如a[7:0]大于b[7:0],则输出高电平,否则输出低电平。二、实验设备(环境)及要求实验设备:PC机一台环境要求:安装Modelsim仿真软件以及SynplifyPro综合工具三、实验内容与步骤1.根据实验要求编写源代码compare.v如下/***@Filecompare.v*@Synopsis这是一个字节数为8位的比较器,比较两个字节的大小。*如a[7:0]大于b[7:0],则输出高电平,否则输出低电平。*@Author陈昊,mouter.net@gmail.com*@Version1*@Date2010-11-05*//*Copyright(C)2010-*By*Allrightreserved**/modulecompare(qOut,a,b);input[7:0]a,b;//输入为两个8位的数outputqOut;//输出为一个1位的数regqOut;//输出qOut是一个寄存器类型的数always@(aorb)//当a或者b发生了变化,则条件触发if(ab)//如果ab,则令输出为高电平qOut=1;else//如果ab或者a=b,则令输出为低电平qOut=0;endmodule2.编写测试模块test_compare.v如下/***@Filetest_compare.v*@Synopsis这是8字节比较器的测试文件*@Author陈昊,mouter.net@gmail.com*@Version1*@Date2010-11-05*//*Copyright(C)2010-*By陈昊*Allrightreserved*/`timescale1ns/1ns//第一个1ns是时间单位,第二个1ns是时间精度moduletest_compare;//测试向量的模块名是testreg[7:0]a;//声明两个输入为寄存器类型,而且是8位reg[7:0]b;wireqOut;//声明输出为线网类型,默认为1位initialbegina=8'b10000000;b=8'b00000000;//ab,qOut=1;#10a=8'b00001000;b=8'b00001111;//ab,qOut=0;#10a=8'b10001111;b=8'b00011111;//ab,qOut=1;#10a=8'b11111111;b=8'b11111111;//a=b,qOut=0;#10a=8'b10101010;b=8'b00001111;//ab,qOut=1;#10$stop;endcompareexample(.qOut(qOut),.a(a),.b(b));//实例引用compare模块endmodule3.利用Modelsim编译纠错和仿真4.利用SynplifyPro进行综合5.利用QuartusⅡ进行布局布线四、实验结果与数据处理1.Modelsim仿真波形如下,自上向下信号依次为a、b、qOut2.选择AlteraSTRATIX器件库利用SynplifyPro综合产生的RTL级电路如下3.使用QuatusII进行布局布线结果如下4.使用Modelsim进行后仿真波形如下五、分析与讨论1.该8字节比较器成功通过了综合和布局布线,分析发现,前仿真结果逻辑正确,当a大于b时,qOut为高电平;当ab时,qOut为低电平;当a=b时,qOut也为低电平。2.分析后仿真结果发现,逻辑关系出现了相反的情况,即当a大于b时,qOut为低电平;当ab时,qOut为高电平;当a=b时,qOut为高电平。需要一个反相器加以修正,出现这种结果的原因未知。六、教师评语签名:日期:成绩
本文标题:verilog实现8字节比较器
链接地址:https://www.777doc.com/doc-4481175 .html