CPLD及CAD.docx
《CPLD及CAD.docx》由会员分享,可在线阅读,更多相关《CPLD及CAD.docx(16页珍藏版)》请在冰点文库上搜索。
CPLD及CAD
《CPLD及电子CAD》
同组人:
熊文龙
大规模集成电路的设计主要针对可编程逻辑器件PLD,复杂可编程逻辑器件CPLD以及现场可编程门阵列FPGA等在大规模集成电路进行设计和仿真过程中,我们在设计时应选择具有代表性的开发软件和设计目标器件。
在课堂上我们主要用的开发软件为MAX+plusII,在这一开发软件平台上,图形输入的设计电路的方法是最简单直观的设计方法,几乎不用学习更多的设计程序或语言工具。
并且无论采用那种输入方式对电路进行设计,仿真或测试,其EAD技术手段都有相似之处。
实验一组合逻辑设计及实验装置的使用方法
一,实验目的
1.了解EAD一般设计流程图
2.熟知文本输入类型
二.实验原理
1.如下图是EAD的一般设计流程
2.文件输入类型
用MAX+plusII设计电路有如下类型
1)图形编辑(电路原理图)
2)文本编辑(硬件描述语言VHDL,AHDL等)
3)符号编辑
4)波形编辑
三.实验步骤
1.绘图
1)启动MAX+plusII图标
2)编辑界面主菜单“File”→“New”→选择“FileType”DGF→OK
3)元件库,器件放置如下图
4)器件排列,连接,编辑和修改
5)文件保存
2.项目编辑
1)设置工程文件选择“File”→“SetProjecttoCurrentFile”
2)选择目标器件“Assign”→“Device”→ACEX1K系列EPK1K30TC144-1目标器件→OK
3)编辑及纠错 菜单“MAX+plusII”→“Compeiler”→“Start
3.项目检测
1)逻辑仿真 “File”→“New”下WEF项
2)选择信号结点“Node”→“EnterNodesfromSNF”点击“list”
3)设置波形参量,包括网格设置,仿真时间长度
4)编辑输入激励信号(产生的波形如下图)
5)波形存盘
6)仿真
4.元件封装
封装方法:
打开文件“File”→GreatDefaulSymbol”,此时即将当前文件变成了一个封装好的元件。
四.小结与体会
利用EAD工具进行电路原理图输入设计,该优点是设计者能利用已有的电路知识迅速入门,完成中小规模的电路系统设计,而不必具备其他诸如编成设术,硬件语言等。
在编辑电路图过程中调用的各种元器件在元器件库中,由厂家提供并随软件一同按装到计算机中,集中存储在指定路径的器件或电路文件中。
同时,还学习到可以自己建立一个自己专用的工具器件库。
实验二用D触发器设计异步四位二进制加法计数器
一、实验目的
1、了解时序电路的经典设计方法,即用D触发器和一般逻辑门组成的时序逻辑电路、
2、掌握组合逻辑电路的设计方法
3、了解异步计数器计数的方法
二.实验内容
用D触发器设计异步四位二进制加法计数器;
三.实验原理
如下实验原理图,进行电路原理图输入设计:
四.小结与体会
在对于顶层设计,输入,输出引脚就是最终集成器件产品对外的引脚,若是底层子电路的设计,则输入输出引脚就是该电路与其他电路部件之间的接口,因此在编辑图形时须对其进行唯一性命名。
在项目编辑中只有将输入文件设置成为工程文件,即当前文件才能对其进行编译处理。
注意事项,文件夹名不能用中,且不可带空格。
实验三6进制、60,24进制计数器
一、实验目的
1、掌握组合逻辑电路的设计方法
2,加深对CPLD设计过程的了解、比较原理图输入与文本输入的优劣
3、为下面试验特别是数字钟综合设计做好基础
二、实验原理
1.用VHDL编写程序代码
1)60进制VHDL代码
libraryieee;
useieee.std_logic_1164.all;
useieee.stu_logic_unsigned_all;
entityc60_41_42is
port(clk,clr,en:
instu_logic;
carry:
outstd_logic;
ge,shi:
outstu_logic_vector(3downto0));
end;
architectureoneofc60_41_42is
signalg,s:
std_logic_vector(3downto0);
begin
process(clk,clr,en,g,s)
begin
ifclr=’1’then
g<=”0000”;
s<=”0000”;
elseifclk’eventandclk=’1’then
ifen=’0’then
ifg=”1001”ands=”0101”then
g<=”0000”;
s<=”0000”;
carry<=’1’;
elsifg=”1001”then
g<=”0000”;
s<=s+1;
eles
g<=g+1;
carry<=’0’;
endif;
eneif;
endif;
ge<=g;
shi<=s;
endprocess;
2)24进制VHDL代码
24进制代码,6进制代码与60进制代码类似,只须做稍微的改动即可。
三,实验电路
四、小结与体会
前面学习的图形输入设计电路的方法虽然简单直观,但是对大规模的复杂电路及工作组合设计却极不方便。
而文本设计电路方法从高层次的设计理念和设计方法入手,更适合大规模集成器件的设计开发,更容易合作和共享设计。
实验四报时电路、分频电路、二选一电路
一、实验目的
1、进一步掌握组合逻辑电路的设计方法;
2、进一步加深对CPLD设计过程的了解,并比较原理图输入和文本输入的优劣
3、能独立运用VHDL设计一般常用的数字集成简单电路、报时、分频等电路并对其仿真。
二、实验原理
1)报时器的VHDL代码如下
libraryieee;
useieee.std_logic_1164.all;
useieee.stu_logic_unsigned_all;
entityspeaker_41_42is
port(clk2,clk3:
instu_logic;
fg,fs,mg,ms:
instu_logic_vector(3dwonto0);
speaker:
outstu_ligic);
end;
architectureoneofspeaker_41_42is
begin
process(clk2,clk3,fg,fs,mg,ms)
begin
iffs=”0101”andfg=”1001”andms=”0101”andmg>=”0101”then
speaker<=clk2;
elsiffs=”0000”andfg=”0000”andms=”0000”andmg=”0000”then
speaker<=clk3;
else
speaker<=’0’
endif;
endprocess;
end;
2)比较器的程序代码
libraryieee;
useieee.std_logic_1164.all;
useieee.stu_logic_unsigned_all;
entitybijiaoqi_41_42is
prot(fg,fs,ss,sg,dfg,dfs,dss,dsg:
instu_logic_vector(3downto0);
q:
outstu_logic);
end;
architectureoneofbijiaoqi_41_42is
begin
process(fg,fs,ss,sg,dfg,dfs,dss,dsg)
begin
ifss=dssandsg=dsfandfs=dfsandfg=dfgthen
q<=’1’;
else
q<=’0’;
endif;
endprocess;
end;
3)多选一的VHDL程序代码
libraryieee;
useieee.std_logic_1164.all;
useieee.stu_logic_unsigned_all;
entitydxy_41_42is
port(s:
instu_logic;
A,B:
instd_logic_vector(23downto0);
X:
outstu_logic_vector(23downto0));
end;
architectureoneofdxy1_41_42is
begin
process(s,A,B)
begin
ifs=’0’then
x<=a;
elsex<=b;
endif;
endprocess;
end;
4)分频器的VHDL的程序代码
libraryieee;
useieee.std_logic_1164.all;
useieee.stu_logic_unsigned_all;
entityfpq_41_42is
port(clk:
instd_logic;
count:
outsyd_logic);
end;
architectureoneoffpq_41_42is
siginal:
m:
std_logic_vector(16downto0);
begin
process(clk,m)
begin
ifm=19999then
m<=”00000000000000000”;
count<=’1’;
elsem<=m+1;
count<=’0’;
endif;
endprocess;
end;
三、仿真波形
四.结与体会
在进行VHDL设计时文件的存盘是文件名必须与程序的实体名一致,并且文件名的后缀与使用的语言形式对应。
在MAX+plusII里,VHDL文件后缀为”vhd”.当选择了的文件后缀存盘后,文件的主关键词就会改变颜色,这可以使程序读起来更清晰,同时便于查错。
实验五 数字钟综合设计
一、实验目的
1、掌握多位计数器相连的设计方法;
2.掌握十进制、六进制,二十四进制技术其实的设计方法;
3、继续巩固多位共用级扫描显示数码管的驱动及编码;
4、掌握扬声器的驱动;
5、LED灯的花样显示;
6、掌握EPLD技术的层次化设计方法;
7、能将数字钟的各个单元电路组合成整机电路;
8、会装配和调制数字钟电路;
9、会制作分频电路;
10、会用中规模集成电路制作出组合逻辑电路和时序逻辑电路。
二、实验原理
在同一EPLD芯片EPF10K10上集成了如下电路模块:
1、时钟计数:
秒——60进制BCD码计数;
分——60进制BCD码计数:
时——24进制BCD码计数;
2、同时计数器有清零、调分、调时功能;
3、在接近整数时能提供报时信号;
4、具有驱动8位八段共阴极扫描数码管的片选驱动信号输出和八段字形译码输出
5、扬声器在整点时有报时驱动信号产生。
此设计任务分为若干模块,规定每一块的功能和个模块之间的接口。
先分做和调试其中之一,然后再将各模块联合起来联试。
对不同目录下的同一设计,模块说明如下:
各种进制的计数及时钟控制模块;
扫描分时显示,译码模块;
扬声键编码模块;
倒计时功能;
微秒功能;
闹钟功能;个模块都是由AHDL语言编写。
三、实验电路
四、试验完成的效果
1、可清零;
2、秒、分为00——59六十进制计数器,时为00——23二十四进制计数器;
3、可手动校正分、时;
4、计时过程具有报时功能,当时间到达整点时前10s进行蜂鸣报时;
5.倒计时功能
6、闹钟功能。
六、小结及体会
如果设计项目有多个VHDL/VerilogDHL文件组成,应先对各低层次文件(元件),如或门或半加器分别进行编辑、设置成工程、编译、综合、乃至仿真测试并存盘后以备后用。
最后将定顶层文件(存在同一目录)设置为工程,统一处理,这是顶层文件能根据例化语句自动调用底层文件。
对数字钟的设计和制作,让我了解了设计电路的程序,也了解了关于数字钟的原理和设计理念,要设计一个电路总要仿真,仿真成功后才接线。
但是最后的成品却不一定与仿真时完全一样,因为实际接线中有着各种各样的条件约束。
而且,在仿真中无法成功的电路接法,在实际中因为芯片本身的特性而能成功。
所以,在设计时应考虑两者的差异,从中找出最合适的设计方法。
实验六PROTEL99SE原理图·印制电路板图(PCB)设计
一.实验目的
1.初步掌握PROTEL99软件的使用。
2.了解由555组成的多谐振荡器,555组成单稳态触发器。
二.实验原理
多谐振荡器的工作原理如下:
当工作电源接通后,通过R1,R2对电容C1充电,当VC上的电压上升到2/3V1时,RS触发器复位,输入为零,同时,内部放电三极管导通,C1通过R2、T(555内部)放电,当VC下降到1/3V1时,RS触发器置位,输出为1。
三、实验电路
(1)设计电路原理图,包括(装入元器件库,放置及调整元器件位置,编辑元器件属性,绘制原理图)
(2)电路图的后期处理,包括(检查电路原理图,电路原理图的修饰)
(3)设计印刷电路板
(4)生成各种电路原理图报表文件(主要生成网络表文件)
打开软件PRITEL99,建立一个新的文件,将所生成的文件引入左侧区中。
在工作区内将由555组成的多谢振荡器的电路图画入。
(5)查看实验结果
五、小结与体会
经过和原生成网络报表的比较可以看出结果是正确的。
布线是有很大的学问(强弱电分开、信号等长、平行走线、一点接地等等)
课程总结