EDA实验二总结报告

实验二 数字秒表设计

一、实验目的

1、理解计时器的原理与Verilog/VHDL 的编程方法;

2、掌握多模块设计及层次设计的方法。

二、实验原理

秒计时器是由计数器和译码器、显示器组成,其核心是计数器与译码器。

60 秒计时器可由二个计数器分别完成:个位为十进制计数器,十位为 6 进 制计数。 个位计数器的计数信号由实验开发板上主频20MHZ分频产生的1Hz 时钟信号提供, 十位计数器的计数信号由个位的进位信号提供。然后由译码器 对计数结果进行译码,送LED 数码管进行显示。 Clr为清零, se t为开始。

三、实验框图

四、实验任务

1、采用层次设计的方法,设计一个包括顶层及底层模块的60 秒计时器,底 层模块用Verilog/VHDL 设计,顶层用原理图设计。

2、秒计时器应当具有系统复位功能;

3、每十秒发出提示信号及计满60 秒时发出报警信号。 (选做)

五、实验步骤与要求

1、分模块设计:首先分别设计10 进制、6 进制计数器、译码器模块;

2、顶层原理图如图7-1 所示;

3、编译完成后进行波形仿真;

4、进行引脚锁定,并下载至开发系统验证。

六、分模块设计

1.十进制计数器

(1)程序代码:

module CNT10(CLK,RST,EN,COUT,DOUT);

input CLK,EN,RST;

output [3:0]DOUT;

output COUT;

reg[3:0]Q1;

reg COUT;

assign DOUT=Q1;

always@(posedge CLK or negedge RST)

begin

if(!RST) Q1<=0;

else if(EN)begin

if(Q1<9)Q1<=Q1+1;

else Q1<=4'b0000;end

end

always@(Q1)

if(Q1==4'h9)COUT=1'b1;

else COUT=1'b0;

endmodule

(2)仿真波形

(3)模块符号

2.六进制计数器

(1)程序代码:

module CNT6(CLK,RST,EN,COUT,DOUT);

input CLK,EN,RST;

output [3:0]DOUT;

output COUT;

reg[3:0]Q2;

reg COUT;

assign DOUT=Q2;

always@(posedge CLK or negedge RST)

begin

if(!RST) Q2<=0;

else if(EN)begin

if(Q2<5)Q2<=Q2+1;

else Q2<=3'b000;end

end

always@(Q2)

if(Q2==3'h5)COUT=1'b1;

else COUT=1'b0;

endmodule

(2)仿真波形

(3)模块符号

3.分频器

(1)程序代码:

module FPQ(clk0,clk1);

input clk0;

output clk1;

reg[26:0] Q1;

reg clk1;

always@(posedge clk0)

if(Q1<10) Q1<=Q1+1;

else begin Q1<=0;

clk1<=~clk1;

end

endmodule

(2)模块符号

七.顶层原理图:

八.仿真波形

九.结果分析

当输入端CLK,EN,RST都不为0时,首先是十进制计数器开始进行计时,直到DOUT1输出端大于9时产生进位,并且自身变为0,同时使六进制计数器也开始计时,六进制输出端DOUT2大于5时产生进位,使COUT输出为1.

 

第二篇:EDA实训总结报告

合肥学院学生EDA实训总结报告

合肥学院电子系

系 别电子系 专 业电子信息工程 班级

姓 名年少轻狂 学号 指导老师 成绩

20xx年x月x日

合肥学院电子系 09级电子信息工程,姓名:李金山学号:0905075006 摘要:经过两周的EDA实训,我也基本掌握了这个软件的使用方法,也体会到了这款软件的实用性。我也通过练习,熟练地掌握了一些画图技巧,下面我模仿练习的一款时钟电路,通过绘制及制作时钟电路,通过绘制时钟电路的原理图,制作PCB板,布线等,我也发现了自己的一些不足,有了更深的体会。 一、 电路原理图及元器件库设计 1.原理图设计

电路原理图的设计主要是protel 99 se的原理图设计系统(Advanced Schematic)来绘制一张电路原理图。在这一过程中,要充分利用protel 99 se所提供的各种原理图绘图工具、各种编辑功能,来实现我们的目的,即得到一张正确、精美的电路原理图。

绘制简单电路原理图过程:首先,构思好零件图,设计好图纸大小,设置合适的图纸大小;然后,设置protel 99 se/Schematic设计环境;再者,放置零件,并对放置零件的序号、零件封装进行定义和设定等工作;然后,将图纸上的元件用具有电气意义的导线、符号连接起来,构成一个完整的原理图;然后,根据需要调整电路;再者,创建网络表;最后,加载网络表。

例如如下时钟电路原理图:

当然,这还不算完整,然后对已经完成的电路原理图,进行电气规则测试,找出错误原因,并改正。生成网络表和元器件材料清单。

电气规则测试:

分析检查报告内容,修改错误。

时钟电路网络表

2.元器件库设计

在绘制电路原理图时,难免会遇到元器件库中没有的元器件,这时,我们需要用绘图工具,学会绘制元器件。我在绘制时钟电路原理图时,也曾遇到过这种情况,所以这就需要我们自己绘制自己所需的元器件图。

如:

我们可以根据所需建立一个自己的元器件库,当我们需要时,就可添加进去,直接使用即可。

二、 PCB板图及封装库设计

用印制电路板编辑器,设置工作层面和电路板画图环境,用Protel 99SE设计印刷电路板过程如下:1.启动印刷电路板设计服务器;2.规划电路板;3. 设置参数;4装入元件封装库;5..装入网络表;6. 元器件布局;7. 自动布线。

电路板尺寸规划:

加载网络表:

当制作电路板时,发现尺寸不合适时,要加以修正,然后,在进行下一步。调整之后,自动布线后生成PCB板图如下:

印制电路板3D效果显示如下:

三、 总结

通过这短短两周的学习,我对protel也有了一定的认识与体会。在学习的过程中,我也遇到了好多问题,我也领悟了许多,原理图中开始设计的运放的型号在仿真元件库中找不到。要得到PCB板就要对各个原器件进行封装,一个原器件可以有不同的封装号,一个封装号也可以封装不同的原器件。上图中,我就是利用一个封装号可以封装不同的原器件的方式给元器件进行封装的。还有就是,如果不对原器件进行封装,生成PCB板时会出现找不到原器件等一连串错误。当原器件封装后,生成PCB板时出现找不到节点的错误,这是因为封装器件的管脚标号和原理图中对应原器件的管脚标号不同,此时只需要在PCB元件库中改变对应元件的管脚标号即可。这些都是我在学习这款软件中发现的问题,也是我以前不明白的地方。在PCB板这方面,我觉得通过这次实训,了解到的东西还很少,对一些错误的处理方法也不熟悉,要想熟练灵活的使用protel还需要今后大量的学习和练习。

为期两个星期的protel 99SE实训就这样结束了,虽然我对protel 99SE的了解还不是很深,可能还没有体会到他的功能之强大。在制作原理图,尤其是制作PCB板图时,我可能会出现一些问题,但是我对PCB板图还是蛮有兴趣的。老师上课的讲解,再加上以后我的多加练习,我相信我一定可以把这款软件学的很好的。

四、 参考文献

[1].《protel99SE原理图与PCB设计教程》,胡烨等编著,机械工业出版社,20xx年.

相关推荐