eda 9X9乘法表 课程设计

燕山大学

课程设计说明书题目: 9×9乘法表

学院(系):电气工程学院

年级专业: 08级应电4班

学号: 080103030179 学生姓名:丁会娟

指导教师:吕宏诗张强

教师职称:实验师

燕山大学课程设计(论文)任务书

学号080103030179 学生姓名丁会娟专业(班级)08级应电4班设计题目9×9乘法表

设计技术参数●在数码管上显示乘数、被乘数和结果;

●分别用4个拨码开关设置乘数和被乘数;

●当设置的乘数和被乘数超过9时均按0处理输出。

设计要求●在4个动态数码管上显示;

●用拨码开关设置乘数和被乘数。

工作量●学会使用Max+PlusII软件、V erilog HDL语言和实验箱;

●独立完成电路设计,编程下载、连接电路和调试;

●参加答辩并书写任务书。

工作计划1.了解EDA的基本知识,学习使用软件Max+PlusII,下发任务书,开始电

路设计;

2.学习V erilog HDL语言,用V erilog HDL进行程序设计

3.学习使用实验箱,继续电路设计;

4.完成电路设计;

5.编程下载、连接电路、调试和验收;

6.答辩并书写任务书。

参考资料《数字电子技术基础》.阎石主编.高等教育出版社. 《EDA课程设计A指导书》.郑兆兆等编.

指导教师签字吕宏诗张强基层教学单位主任签字金海龙

2011年 1月14 日

目录

第1章设计说明 (3)

1.1 设计思路 (3)

1.2 模块介绍 (3)

1.3 真值表 (4)

第2章 Verilog HDL设计源程序 (6)

第3章波形仿真图 (14)

第4章管脚锁定及硬件连线 (16)

4.1 管脚锁定 (16)

4.2 硬件连线 (17)

第5章总结 (19)

参考文献 (19)

第1章设计说明

1.1设计思路

本次EDA课程设计的题目是九九乘法表,要求在4个动态数码管A,B,C,D上显示,A 为被乘数,B为乘数,C和D分别为结果的十位和个位。

A和B分别接收由拨码开关输入的四位二进制数,由于直接相乘再取结果需二进制与BCD码的转换,内容繁琐,因此采用if语句中嵌套case语句将九九相乘的100种情况罗列出来,对变量C、D进行赋值,即外层if语句锁定被乘数,内层case语句锁定乘数,以使变量C、D获得乘积值。

动态数码管的显示需扫描程序,分别由ss0、ss1、ss2三个变量进行片选操作,本课程设计仅需四个动态数码管。故通过if语句令其循环操作只进行010、011、100、101四个阶段,即使用中间四个动态数码管。

在上述四个动态数码管的七位输入端分别输入被乘数、乘数和乘积的十位、个位。其输出值通过由case语句生成的编译程序产生。

最后,蜂鸣器的设计是提醒输入者输入错误,以便及时改正。

以上便是本课程设计的设计思路。

1.2模块介绍

本次课程设计的模块包括乘法计算模块,位选模块和数码管显示模块和蜂鸣器模块。

乘法计算模块分为九块:当A取值1到9时分别计算B作为变量的情况下C和D的输出值,并使A或B大于9时,输出C和D的值均为0。

位选模块:完成当扫描到位选端为010时,数码管A显示,011时数码管B显示,100时数码管C显示,101时数码管D显示的控制。

数码管显示模块:当位选完成后,由拨码开关设置的被乘数和乘数以及计算得到的结果在四个数码管A,B,C,D上分别显示出来,数码管分为七段,1表示该段亮,0表示该段灭。数码管可以显示0到9十个数字。

蜂鸣器模块:当输入不在乘法表的范围内时蜂鸣器响,改正后蜂鸣器停止响应。

1.3真值表

输入输出真值表如下:

A3 A2 A1 A0 B3 B2 B1 B0 C3 C2 C1 C0 D3 D2 D1 D0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1. 1 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 0 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 0 1 0 0 0 0 0

0 1 0 0 0 1 1 1 0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 0 1 1 1 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 1 0 1 0 0 0 0 1 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 0 0 0 0 1 0 0 1 1 1 0 1 1 1 0 1 0 0 1 0 0 1 0 1 1 1 1 0 0 0 0 1 0 1 0 1 1 0

0 1 1 1 1 0 0 1 0 1 1 0 0 0 1 1

1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0

1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 1 1 1 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 0 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1

第2章 Verilog HDL设计源程序

设计题目的所有程序如下:

module chengfaqi(A,B,C,D,clk0,ss,out,clk1,x,oc,clk2);

input clk0;

input clk1;

input clk2;

input[3:0] A,B;

input oc;

output x;

output ss,out;

output[3:0] C,D;

reg[3:0] C,D,data;

reg[2:0]ss;

reg[6:0]out;

reg x;

reg[1:0] a;

always@(A or B)

begin

if(oc==1)

begin

if(A==1)

begin

case(B)

1:begin C=0;D=1;end 2:begin C=0;D=2;end

3:begin C=0;D=3;end 4:begin C=0;D=4;end

5:begin C=0;D=5;end 6:begin C=0;D=6;end

7:begin C=0;D=7;end 8:begin C=0;D=8;end

9:begin C=0;D=9;end

default:begin C=0;D=0;end

endcase

end

else if(A==2)

begin

case(B)

1:begin C=0;D=2;end 2:begin C=0;D=4;end

3:begin C=0;D=6;end 4:begin C=0;D=8;end

5:begin C=1;D=0;end 6:begin C=1;D=2;end

7:begin C=1;D=4;end 8:begin C=1;D=6;end

9:begin C=1;D=8;end

default:begin C=0;D=0;end

endcase

end

else if(A==3)

begin

case(B)

1:begin C=0;D=3;end 2:begin C=0;D=6;end

3:begin C=0;D=9;end 4:begin C=1;D=2;end

5:begin C=1;D=5;end 6:begin C=1;D=8;end

7:begin C=2;D=1;end 8:begin C=2;D=4;end

9:begin C=2;D=7;end

default:begin C=0;D=0;end

endcase

end

else if(A==4)

begin

case(B)

1:begin C=0;D=4;end 2:begin C=0;D=8;end 3:begin C=1;D=2;end 4:begin C=1;D=6;end 5:begin C=2;D=0;end 6:begin C=2;D=4;end 7:begin C=2;D=8;end 8:begin C=3;D=2;end 9:begin C=3;D=6;end

default:begin C=0;D=0;end

endcase

end

else if(A==5)

begin

case(B)

1:begin C=0;D=5;end 2:begin C=1;D=0;end 3:begin C=1;D=5;end 4:begin C=2;D=0;end 5:begin C=2;D=5;end 6:begin C=3;D=0;end 7:begin C=3;D=5;end 8:begin C=4;D=0;end 9:begin C=4;D=5;end

default:begin C=0;D=0;end

endcase

end

else if(A==6)

begin

case(B)

1:begin C=0;D=6;end 2:begin C=1;D=2;end 3:begin C=1;D=8;end 4:begin C=2;D=4;end 5:begin C=3;D=0;end 6:begin C=3;D=6;end 7:begin C=4;D=2;end 8:begin C=4;D=8;end 9:begin C=5;D=4;end

default:begin C=0;D=0;end

endcase

end

else if(A==7)

begin

case(B)

1:begin C=0;D=7;end 2:begin C=1;D=4;end 3:begin C=2;D=1;end 4:begin C=2;D=8;end 5:begin C=3;D=5;end 6:begin C=4;D=2;end 7:begin C=4;D=9;end 8:begin C=5;D=6;end 9:begin C=6;D=3;end

default:begin C=0;D=0;end

endcase

end

else if(A==8)

begin

case(B)

1:begin C=0;D=8;end 2:begin C=1;D=6;end 3:begin C=2;D=4;end 4:begin C=3;D=2;end 5:begin C=4;D=0;end 6:begin C=4;D=8;end 7:begin C=5;D=6;end 8:begin C=6;D=4;end 9:begin C=7;D=2;end

default: begin C=0;D=0;end

endcase

else if(A==9)

begin

case(B)

1:begin C=0;D=9;end 2:begin C=1;D=8;end 3:begin C=2;D=7;end 4:begin C=3;D=6;end 5:begin C=4;D=5;end 6:begin C=5;D=4;end 7:begin C=6;D=3;end 8:begin C=7;D=2;end 9:begin C=8;D=1;end

default:begin C=0;D=0;end

endcase

end

else

begin C=0;D=0; end

end

else

begin

if(a==2'b00)

begin C=10;D=10;end

else if(a==2'b01)

begin C=12;D=11;end

else

begin C=11;D=12;end

end

always@(posedge clk2)

begin

if(a<2'b10) a=a+2'b01;

else a=2'b00;

end

always@(posedge clk0) //扫描

begin

if(ss<3'b101&ss>3'b001) ss=ss+3'b001;

else ss=3'b010;

end

always@(ss) //译码

begin

case (ss)

3'b010: data = A; 3'b011: data = B;

3'b100: data = C;

3'b101: data = D;

endcase

end

always @(data)

begin

case (data)

4'b0000: out = 7'b0111111; // 0 4'b0001: out = 7'b0000110; // 1 4'b0010: out = 7'b1011011; // 2 4'b0011: out = 7'b1001111; // 3 4'b0100: out = 7'b1100110; // 4 4'b0101: out = 7'b1101101; // 5 4'b0110: out = 7'b1111101; // 6 4'b0111: out = 7'b0000111; // 7 4'b1000: out = 7'b1111111; // 8

4'b1001: out = 7'b1101111; // 9 4'b1010: out = 7'b1000000;//10 4'b1011: out = 7'b0000001;//11 4'b1100: out = 7'b0001000;//12 default: out = 7'b0111111;//零 endcase

end

always@(posedge clk1)

begin

if(C==0&D==0) x=1;

else x=0;

end

endmodule

第3章波形仿真图

图1 oc=0时波形图

图2 oc=1 A=4 B=11时波形图

图3 oc=1 A=0 B=3时波形图

图4 oc=1 A=6 B=3时的波形图

第4章管脚锁定及硬件连线

4.1管脚锁定

输入端锁定如下:

A3 input pin39

A2 input pin40

A1 input pin41

A0 input pin44

oc input pin45

B3 input pin189

B2 input pin179 B1 input pin176

B0 input pin174

clk2 input pin71

clk1 input pin9

clk0 input pin11

输出端锁定如下:

ss2 output pin92

ss1 output pin89

ss0 output pin87

x output pin38

out6 output pin195

out5 output pin192

out4 output pin190

out3 output pin187

out2 output pin177

out1 output pin175

out0 output pin173

4.2硬件连接

pin189 拨码开关(B)1

pin179 拨码开关(B)2

pin176 拨码开关(B)3 pin174 拨码开关(B)4

pin71 低频率组21

pin9 中频组11

pin11 高频率组H5 pin92 片选ss2

pin89 片选ss1

pin87 片选ss0

pin195 动态数码管G pin192 动态数码管F pin190 动态数码管E pin187 动态数码管D pin177 动态数码管C pin175 动态数码管B pin173 动态数码管A

第5章总结

这次EDA课程设计让我收益匪浅,在这之前,我并没有学习过EDA,甚至对EDA这个名词都感觉很陌生。通过这次设计,我学会了使用Max+PlusⅡ软件,Verilog HDL语言和实验箱.在这次课程设计的过程中,我遇到了很多问题,同时也发现了自己的不足之处,那就是对所学过的知识理解得不够深刻,掌握得不够牢固。其次就是在编写程序时出现了很多错误, 经过检查多是由于不够细心出错,例如前面有了begin而结尾却忘记添加end.经过多次改正终于得到了正确的主程序,通过仿真,得到了正确的输入和输出结果.. 最后是管脚锁定和下箱,当时我的心情非常紧张。看着同学们陆续完成,我对自己说一定要细心争取一次通过。当看到四个数码管上显示出了正确的结果时,我非常有成就感,连续几天的心血总算没有白费。完成时时间还很充裕,我就和同学们一起给自己的程序添加了一些额外的设计,使程序在试验箱上能更好的展示它的功能。至此,本次课程设计的任务可以说是圆满完成

课程设计的过程真可谓困难重重.最后在老师的辛勤的指导下,完成了九九乘法表的设计,专业知识没有白学,达到了理论与实际相结合的目的.总之是收益良多.

最后,对帮助过我的所有同学和各位指导老师表示忠心的感谢!

参考文献

1 郑兆兆.EDA课程设计A指导书. 燕山大学出版社,2010年

2 阎石. 数字电子技术基础. 高等教育出版社.2010年

相关文档
最新文档