电子技术实验大作业实验报告.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
电子技术实验大作业实验报告

电子技术实验大作业实验报告陈奕志5120829048 F1208202实验名称四位二进制数的可控加法 / 减法设计思路本作业主要完成的是四位二进制数的可控加法。实现了附加功能中的在四位数码管上显示和数值溢出的显示功能。本作业主要由两个模块组成,一个是主程序模块,负责较简单的加法运算;另外一个是a_to_g子程序模块,输入一个4位二进制数字,用来把数字显示在数字管上。数值溢出则是看cout位是否为1,为1则溢出。程序代码`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // // Create Date: 05:40:39 04/18/2014 // Design Name: // Module Name: adder // Project Name: // Target Devices: // Tool versions: // Description: //// Dependencies: //// Revision: // Revision 0.01 - File Created// Additional Comments: ////////////////////////////////////////////////////////////////////////////////////module adder(input [3:0]sw1,sw2,//input button,input clk,output [6:0]dp_a_to_g,output [3:0]out0 );reg cout;reg [3:0]sum;always @(sw1 or sw2)begin{cout,sum}=sw1+sw2;enda_to_g ATOG(.sw(sum),.clk(clk),.dp_a_to_g(dp_a_to_g),.out0(out0),.cout(cout));endmodulemodule a_to_g(input [3:0]sw,input clk,input cout,output reg [6:0]dp_a_to_g,output reg [3:0]out0);integer num;integer s;integer i;initial begin i=0;endalways @(posedge clk)begini=i+1;if (i[16:14]3) i=0;s=i[15:14];if (~cout) begincase(s)0:out0=4b0111;1:out0=4b1011;2:out0=4b1101;3:out0=4b1110;endcasecase(s)0:num=sw[0];1:num=sw[1];2:num=sw[2];3:num=sw[3];endcaseendelse begin out0=4b0000;num=2;endend always @(*) case(num)0:dp_a_to_g=7b0000001;1:dp_a_to_g=7b1001111;2:dp_a_to_g=7b0110000;default: dp_a_to_g=7b1111111;endcaseendmodule实验心得让四位数码管循环显示时,如果设定的循环间隔太短,则因为毛刺等之类的原因,会使整个数码管亮起来,人眼只能看到四个八。而设定的频率太低的话,则无法造成人眼短暂停留视觉的效果,而是一个一个亮。选择正确的频率才能得到正确的结果。做此次试验的最大心得就是编程序得走一步看一步,按模块功能一块一块做。做完一块,检查一块。之前一开始我选的题目是数字时钟,一鼓作气把功能大部分都写出来之后,发现了一堆bug,改了好几个小时都没有办法排除,只能重新做。很可惜浪费了时间。第二个体会是感受到了高级语言和verilog这种硬件描述语言的差异所在。对于一般使用的高级语言来说,有成熟的封装和函数,以及各种各样的数据类型,使用起来比较容易上手。而对verilog来说,因为跟硬件更为靠近,很多时候不能光码代码,还得想想能否实验。而且各种规则也不尽相同,很容易做无用功。需要从低级到高级循序渐进的学习,以为掌握一种语言就可以吃遍天下的想法是幼稚的。学习路上没有捷径,今天在学习verilog的路上真可是又复习了一遍这个人生哲理了!module adder(number1,number2,sum,overflow); input [3:0] number1; inpu

文档评论(0)

almm118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档