为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

verilog全加器实验报告

2017-10-08 12页 doc 29KB 256阅读

用户头像

is_215732

暂无简介

举报
verilog全加器实验报告verilog全加器实验报告 Verilog-全加器上机实验报告 西 安 邮 电 學 院 基于Verilog的HDL设计基础 实验报告 学院名称 : 学生姓名 : 专业名称 : 班 级 : 学 时 通信与信息工程学院 通信工程 号 : 间 :2010年11月24日 实验题目 全加器 一、实验内容 对一位二进制全加器的设计与验证;再对其进行综合生成网表文件;然后进行后仿真。 二、技术规范 1、 输入引脚: a,b,c_in;输出引脚:sum,c_out。 2、 功能:这是一位二进制全加器。a,b为输...
verilog全加器实验报告
verilog全加器实验 Verilog-全加器上机实验报告 西 安 邮 电 學 院 基于Verilog的HDL设计基础 实验报告 学院名称 : 学生姓名 : 专业名称 : 班 级 : 学 时 通信与信息工程学院 通信工程 号 : 间 :2010年11月24日 实验题目 全加器 一、实验内容 对一位二进制全加器的设计与验证;再对其进行综合生成网表文件;然后进行后仿真。 二、技术 1、 输入引脚: a,b,c_in;输出引脚:sum,c_out。 2、 功能:这是一位二进制全加器。a,b为输入的两个二进制加数,c_in为低位向本位的借位,sum为全加和,c_out为本位向高位的进位。 三、实验步骤 1、在modulesim软件中进行两个一位二进制数的全加器的设计 与验证,直到运行结果全部正确; 2、在Quartus软件中对刚刚完成的计数器进行综合,生成网表 文件; 3、在modulesim软件中对计数器进行进行后仿真。 四、源代码 1. 设计模块: module Count4(sum,c_out,a,b,c_in); output [3:0] sum; output c_out; input [3:0] a,b; input c_in; wire c1,c2,c3; Count Ca0(sum[0],c1,a[0],b[0],c_in); Count Ca1(sum[1],c2,a[1],b[1],c1); Count Ca2(sum[2],c3,a[2],b[2],c2); Count Ca3(sum[3],c_out, a[3],b[3],c3); Endmodule module Count(sum, c_out,a,b,c_in); output sum,c_out; input a,b,c_in; wire s1,c1,c2; xor(s1,a,b); and(c1,a,b); xor(sum,s1,c_in); and(c2,s1,c_in); xor(c_out,c2,c1); endmodule 2.激励模块: module jili; reg [3:0] A, B; reg C_IN; wire [3:0] SUM ; wire C_OUT; Count4 CT_4(SUM,C_OUT,A,B,C_IN); initial begin $monitor($time,A=%b,B=%b,C_IN=%b,---C_OUT=%b,SUM=%b\n,A,B ,C_IN,C_OUT,SUM);end initial begin A=4'd0;B=4'd0;C_IN=1'b0; #5 A=4'd3;B=4'd4; #5 A=4'd2;B=4'd5; #5 A=4'd9;B=4'd9; #5 A=4'd10;B=4'd15; #5 A=4'd10;B=4'd5;C_IN=1'b1; end endmodule 五、仿真结果及分析 五、调试情况,设计技巧及体会 1、程序调试: 开始时程序一直都编译不出来,总是出现错误,认真修改后,总算是编译成功了,但在SIMULATE时又出现错误,~在同学的帮助下,经过认真的改正,最终修改正确运行成功。之后进行前仿真和形成网表。最后进行在modulesim软件中对计数器进行进行后仿真 2、后仿真: 后防真时要注意文件的扩展名及储存路径。尽量保持存储文件名一致。 3、综合: 在进行综合生成网表前一定要熟悉掌握每一个选项和步骤。不会的查书看 最后在同学的帮助下终于搞定了。 篇二:Verilog实验报告(电子) 西安邮电大学 Verilog HDL大作业报告书 学院名称 学生姓名 专业名称 班 级 电子工程学院 电子信息工程 : : : : 实验一 异或门设计 一、实验目的 (1)熟悉Modelsim 软件 (2)掌握Modelsim 软件的编译、仿真方法 (3)熟练运用Modelsim 软件进行HDL 程序设计开发 二、实验内容 my_or,my_and和my_not门构造一个双输入端的xor门,其功能是计算z=x’y+xy’,其中x和y为输入,z为输出;编写激励模块对x和y的四种输入组合进行测试仿真 1、实验要求 用Verilog HDL 程序实现一个异或门,Modelism仿真,观察效果。 2、步骤 1、建立工程 2、添加文件到工程 3、编译文件 4、查看编译后的设计 5、将信号加入波形窗口 6、运行仿真 实验描述如下: module my_and(a_out,a1,a2); output a_out; input a1,a2; wires1; nand(s1,a1,a2); nand(a_out,s1,1'b1); endmodule module my_not(n_out,b); output n_out; input b; nand(n _out,b,1'b1); endmodule module my_or(o_out,c1,c2); output o_out; input c1,c2; wires1,s2; nand(s1,c1,1'b1); nand(s2,c2,1'b1); nand(o_out,s1,s2); endmodule module MY_XOR(z,x,y); output z; input x,y; wirea1,a2,n1,n2; my_not STEP01(n1,x); my_not STEP02(n2,y); my_and STEP03(a1,n1,y); my_and STEP04(a2,n2,x); my_or STEP05(z,a1,a2); Endmodule module stimulus; reg X,Y; wire OUTPUT; MY_XOR xor01(OUTPUT,X,Y); initial begin $monitor($time,X=%b,Y=%b --- OUTPUT=%b\n,X,Y,OUTPUT); end initial begin X = 1'b0; Y = 1'b0; #5 X = 1'b1; Y = 1'b0; #5 X = 1'b1; Y = 1'b1; #5 X = 1'b0; Y = 1'b1; end endmodule 二、实验结果 波形图: 三、分析和心得 通过这次的实验,我基本熟悉Modelsim 软件,掌握了Modelsim 软件的编译、仿真方法。同时在编写程序的过程中,加深了我对课上所讲的HDL的语法的认识。 实验二 二进制全加器设计 一、实验目的 (1)熟悉Verilog HDL 元件实例化语句的作用 (2)熟悉全加器的工作原理 (3)用Verilog HDL 语言设计一位二进制全加器,并仿真,验证其功能 二、实验内容 一位全加器使用乘积项之和的形式可以表示为: sum=a?b?c_in+a’ ?b?c_in’+a’ ?b’ ?c_in+a?b’ ?c_in’ c_out=a?b+b?c_in+a?c_in 其中a,b和c_in为输入,sum和c_out为输出,只使用与门, 或门,非门实现一个一位全加器,写出Verilog描述,限制是每个门最多只能有四个输入端。编写激励模块对其功能进行检查,并对全部的输入组合输入组合进行测试。 实验要求 用 Verilog HDL 语言描述一位全加器,并使用 modelsim仿真验证结果。 module fulladd(sum,c_out,a,b,c_in); output sum,c_out; input a,b,c_in; wire s1,s2,s3,s4,a1,b1,c_in1,c1,c2,c3; and(s1,a,b,c_in); not(a1,a); not(b1,b); not(c_in1,c_in); and(s2,a1,b,c_in1); and(s3,a1,b1,c_in); and(s4,a,b1,c_in1); and(c1,a,b); and(c2,b,c_in); and(c3,a,c_in); 篇三:四位全加器实验Verilog 实验四 四位全加器 一、实验目的 l. 用组合电路设计4位全加器。 2.了解Verilog HDL语言的行为描述的优点。 二、实验原理 4位全加器工作原理 1)全加器 除本位两个数相加外,还要加上从低位来的进位数,称为全加器。被加数Ai、加数Bi从低位向本位进位Ci-1作为电路的输入,全加和Si与向高位的进位Ci作为电路的输出。能实现全加运算功能的电路称为全加电路。全加器的逻辑功能真值表如表中所列。 2)1位全加器 一位全加器(FA)的逻辑表达式为:S=A?B?Cin;Co=AB+BCin+ACin 其中A,B为要相加的数,Cin为进位输入;S为和,Co是进位输出; 这两幅图略微有差别,但最后的结果是一样的。 3)4位全加器 4位全加器可看作4个1位全加器串行构成, 具体连接方法如下图所示: 采用Verilog HDL语言设计该4位全加器,通过主模块调用子模块(1位全加器)的方法来实现。 三、实验步骤 四、实验连线 K1-K4:14-11 K5-K8:18-15 L5-L8:7-10 VIJN:83 L4:6 4KHZ:80 五、心得体会 首先,实现这一段全加器代码并不难,但是由于困惑给的三个时钟输入,没有太懂意思,所以只写了全加器控制LED灯的代码;后来问清楚后,运行全加器代码,有错误,原来是建文件时用的是verilog hdl,我建的是其他类型的;后来还有错,原来是把冒号打成分号;编译成功后,LED不亮,后来发现是硬件老化,换了箱子。这一部分做好后,我准备把控制声音的加上去,本来准备再加一个模块,可是不能有两个顶层块,就对主模块做了补充,用case命令调用不同的状态,因为时间紧迫,所以代码写得比较简单,没有用经典的分频代码。这里附一小段,是我在研究分频控制时看懂的网上的经典分频代码,适合乐曲自动播放等高级的实现,仅供分享 assign preclk=(divider==16383)?1:0;//divider==16383,preclk=1 always @(posedge clk) //基频上升沿触发 begin if(preclk) //preclk=1 divider=origin; else divider=divider+1; end always @(posedge preclk) //调整占空比 begin speaker=~speaker; //2 分频产生方波信号 end 这部分实现了分频功能,其中origin+divider=16384=2 ,这个数根据自己的需要而定。 在这个过程中我明白了: 1)细心,每个步骤不能错; 2)出现问题要仔细排查,软硬件都要; 3)注意reg wire的设定; 4)学到了额外的扩展知识 六、代码分析: module full_add1(SUM,C_OUT,A,B,C_IN);//一位全加器子模块 output SUM,C_OUT; input A,B,C_IN; wire C1,C2,C3; and (C1,A,B); //内部门实现 xor (C3,A,B); and (C2,C3,C_IN); xor (SUM,C_IN,C3); xor (C_OUT,C1,C2); endmodule module shiyan4(speaker,s,c_out,a,b,c_in,clk_4MHz,);//主模块 output [3:0]s; output c_out; output speaker; input clk_4MHz; input [3:0]a,b; input c_in; reg speaker; wire c1,c2,c3; full_add1 f0(s[0],c1,a[0],b[0],c_in);//调用子模块(4个一位全加 器) full_add1 f1(s[1],c2,a[1],b[1],c1); full_add1 f2(s[2],c3,a[2],b[2],c2); full_add1 f3(s[3],c_out,a[3],b[3],c3); always @(posedge clk_4MHz)//时钟信号上升沿触发 if(c_out==1) //全加器部分进位输出为1的情况case(s) 4'b0000: speaker=clk_4MHz; //全加器s为0扬声器输出的 频率 4'b0001: speaker=clk_4MHz; //全加器s为1扬声器 输出的频率 (同样目的,以下依次分成不同频率) 4'b0010: speaker=clk_4MHz; 4'b0011: speaker=clk_4MHz; 4'b0100: speaker=2*clk_4MHz; 4'b0101: speaker=2*clk_4MHz; 4'b0110: speaker=2*clk_4MHz; 4'b0111: speaker=2*clk_4MHz; 4'b1000: speaker=3*clk_4MHz; 4'b1001:speaker=3*clk_4MHz; 4'b1010:speaker=3*clk_4MHz; 4'b1011: speaker=3*clk_4MHz;
/
本文档为【verilog全加器实验报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索