资源描述:
《可编程逻辑器件实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验1:四位加减法器设计1.实验任务:设计带借位、进位的4位二进制减法、加法器。2.实验要求:要考虑借位、进位。在软件环境下,编写源文件并用器件实现。3.实验过程:(1)原理分析:多位减加法器的构成有两种方式:并行进位和串行进位方式。并行进位加法器,串行进位是将全加器进行级联构成的,这种方式电路会比较简单。本次实验中采用了自底向上(Bottom-Up)的分层次电路设计方法。实际上,VerilogHDL语言中的加减运算符为程序设计提供了很大的便利,此次实验又采用它实现了加减法器。(2)VerilogHDL源文件设计:[1].利用算术运算符的程序设计:moduleadderan
2、dsubtracter(s,k,cin,cout);inputcin,k;parameter[3:0]aa=4'b0100;parameter[3:0]bb=4'b0101;outputcout;output[3:0]s;regcout,s;always@(k)beginif(k==1){cout,s}<=aa+bb+cin;else{cout,s}<=aa-bb-cin;endendmodule[2].自底向上(Bottom-Up)的分层次电路设计方法的VerilogHDL源文件。moduleAdderandsubtracter1bit(k,A,B,Cin,Sum,Cou
3、t);inputA,B,Cin,k;outputSum,Cout;parameter[3:0]A=4'b0100;parameter[3:0]B=4'b0101;assignSum=(((A^k)^B)^Cin)^k;assignCout=((A^k)&B)
4、((A^k)&Cin)
5、(B&Cin);endmodulemoduleAdderorsubtracter4bit(k,First,Second,Carry_In,Sum_out,Carry_out);input[0:3]First,Second;inputCarry_in;output[0:3]Sum_out;outp
6、utCarry_out;wire[0:2]Car;always@(k)beginif(k==0)Adderandsubtracter1bitA1(First[3],Second[3],Carry_in,Sum_out[3],Car[2]);A2(First[2],Second[2],Car[2],Sum_out[3],Car[1]);A3(First[3],Second[3],Car[1],Sum_out[3],Car[0]);A4(First[3],Second[3],Car[0],Sum_out[3],Carry_out);elseAdderandsubtracter1
7、bitA1(First[3],Second[3],Carry_in,Sum_out[3],Car[2]);A2(First[2],Second[2],Car[2],Sum_out[3],Car[1]);A3(First[3],Second[3],Car[1],Sum_out[3],Car[0]);A4(First[3],Second[3],Car[0],Sum_out[3],Carry_out);endendmodule(1)编译源文件:在主界面Process窗口中双击TranslateDesign,对所编辑的代码进行综合,通过后会出现绿色对号。(1)管脚的分配:在Diam
8、ond主界面中,点击Tools->Spreadsheetview,打开Spreadsheetview框。在pin一栏中填入各输入输出映射的管脚。其中定义37、38、39、40.为数据输出显示位。54为进位位或借位位,控制键,52为加减法切换键。(2)烧录程序,器件实现:在Diamond主界面中,进入Tools->Programmer,在State栏出现PASS,即说明烧写成功。4.实验结果及分析:1)用加减法运算符实现:在实验板上可以看到,发光二极管在不带进位的情况下,即cin为0时,这时应按下实验板上控制进位位与借位位的按键54时,显示为1001,在不按下按键时,即进位位
9、cin为1时为1010,可知带进位的加法器功能完全实现;在按下控制加减法器按键52,而且同时按下54时,为不带借位的减法器输出为1111,不按下54时,即为有借位位发光二极管显示为1110,可知带借位的减法器功能完全实现。2)位运算符实现:除控制加减法切换相反外,实验结果与上相同。综上所述,达到了实验所预定的功能。5.实验体会:[1].对于硬件描述语言的学习的几点体会:(1)熟悉了verilogHDL程序的基本结构。(2)理解了VerilogHDL使用一个或多个模块电路进行建模。其中,模块代表硬件上的逻辑实体,其范