EDA技术Word下载.docx

上传人:b****7 文档编号:22621779 上传时间:2023-02-04 格式:DOCX 页数:22 大小:871.13KB
下载 相关 举报
EDA技术Word下载.docx_第1页
第1页 / 共22页
EDA技术Word下载.docx_第2页
第2页 / 共22页
EDA技术Word下载.docx_第3页
第3页 / 共22页
EDA技术Word下载.docx_第4页
第4页 / 共22页
EDA技术Word下载.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

EDA技术Word下载.docx

《EDA技术Word下载.docx》由会员分享,可在线阅读,更多相关《EDA技术Word下载.docx(22页珍藏版)》请在冰豆网上搜索。

EDA技术Word下载.docx

在图1-1新建仿真波形文件,后缀名.SCF。

出现图1-4的仿真波形编辑界面。

图1-4仿真波形编辑界面

 

(10)双击Name下方的空白处,在弹出的对话框中点击“List”按钮,添加输入、输出节点。

选择输入节点A,点OK,再选择输入节点B,点OK。

以此类推,将输入输出节点添加好。

(11)在时钟输入端处设置好输入端口A、B方波脉冲,点击屏幕左侧

,弹出对话框中,设置时钟周期,A为100ns,B为150ns。

12)设置好的输入波形如图如示。

((13)保存后,(选择菜单“FILE”→project→save&

simulate).点击仿真按钮,就可以进行波形仿真,以验证电路的逻辑功能。

六.实验电路

1.1位全加器元件内部电路图

2.2位全加器内部电路图(采用上元件为基础)

3.封装2位全加器

七.仿真结果及分析

分析:

由以上仿真结果可以看出与二位全加器逻辑功能相符,但有些地方由于延时问题,会出现竞争冒险情况,从而导致毛刺的出现

实验二数控分频器设计与仿真

1.学习并掌握MAX+PLUSIICPLD开发系统的操作技巧。

2.掌握数字逻辑电路的设计方法与功能仿真技巧。

3.学习VHDL源程序的编写调试方法。

1.PC机,1台

2.MAX+PLUSIICPLD软件开发系统,1套

1.预习教材中的相关内容;

2.编写好数控分频器VHDL源程序。

用VHDL设计一个数控分频器电路,并进行功能仿真与验证,要求预置数为(2~16),使输入时钟信号根据预置数的不同,实现3分频。

(1)开机,进入MAX+PLUSIICPLD开发系统;

(3)在主菜单中选NEW,从输入文件类型选择第3项文本编辑输入方式,

(4)输入VHDL源程序并保存,后缀名为.VHD。

(5)检查修改语法错误。

(6)编译.

(7)建立仿真波形,进行电路逻辑功能验证。

六.分频器--VHDL源程序

libraryIEEE;

USEIEEE.std_logic_1164.all;

USEIEEE.std_logic_arith.all;

USEIEEE.std_logic_unsigned.all;

entityCLKDIV_3is

port(Clk_in:

inSTD_LOGIC;

Rst:

Clk_out:

outSTD_LOGIC

);

endCLKDIV_3;

architectureART1ofCLKDIV_3is

signalCnt2_q:

INTEGERrange0to2;

signalDiv0,Div1:

STD_LOGIC;

begin

--Cnt_pd:

process(Cnt2_q)is

--begin

--if(Cnt2_q=2)then

--Cnt2_d<

=0;

--else

=Cnt2_q+1;

--endif;

--endprocess;

Cnt_pq:

process(Rst,Clk_in)is--

begin

if(Rst='

1'

)then

cnt2_q<

elsif(Clk_in'

eventandClk_in='

if(cnt2_q=2)then

cnt2_q<

else

=cnt2_q+1;

endif;

endif;

endprocess;

Div0_p:

process(Rst,Clk_in,cnt2_q)is

Div0<

='

;

if(Cnt2_q=0)then

Div0<

elsif(Cnt2_q=1)then

0'

=Div0;

Div1_p:

process(Rst,Clk_in)is

Div1<

Clk_out<

=Div0orDiv1;

endART1;

七.编译结果

八.时序仿真及结果

由以上仿真结果可以看出设计的数控分频电路与实验要求功能相符,但有些地方由于延时问题,会出现竞争冒险情况,从而导致毛刺的出现。

实验三译码器电路设计仿真与下载

3.学习芯片下载与实验基本方法。

3.CPLD实验及下载装置,1套

2.编写好VHDL3-8译码器源程序。

用VHDL设计一个3-8译码器电路,并进行功能仿真与下载测试。

要求:

(1)设置3个输入端:

分别取名为K1、K2、K3;

(2)设置8个数据输出端,取名为Y0至Y7;

(3)电路功能为:

K1、K2、K3为“000”,Y0至Y7输出为“01111111”,K1、K2、K3为“001”,Y0至Y7输出为“101111111”,…,K1、K2、K3为“111”,Y0至Y7输出为“11111110”,。

(4)进行电路功能仿真与验证。

(5)进行CPLD芯片数据下载与硬件功能测试。

(7)打开Assign->

devise菜单,选择计划使用的CPLD芯片。

(8)打开Assign->

pin\Location\chip…菜单,。

按照下表进行管脚映射。

所需信号

对应引脚

K0

79

K1

78

K2

73

Y0

138

Y1

140

Y2

136

Y3

137

Y4

133

Y5

135

Y6

131

Y7

132

(9)下载到硬件进行电路功能验证。

六.VHDL源程序及编译结果

entityymis

port(k:

instd_logic_vector(0to2);

y:

outstd_logic_vector(0to7));

endentity;

architectureartofymis

process(k)

casekis

when"

000"

=>

y<

="

01111111"

001"

10111111"

010"

11011111"

011"

11101111"

100"

11110111"

101"

11111011"

110"

11111101"

111"

11111110"

whenothers=>

null;

endcase;

endprocess;

endarchitecture;

七.心得与体会

通过用VHDL设计一个3-8译码器电路,并进行功能仿真与下载测试,近一步熟悉了MAX+plusII软件的应用,并通过下载映射进行硬件测试,提高了自身的实际操作与分析处理能力。

实验六数字秒表的设计

1.巩固和加深对MAXPLUSIICPLD开发系统的理解和使用;

2.掌握VHDL编程设计方法;

3.掌握硬件实验装置使用方法;

4.掌握综合性电路的设计、仿真、下载、调试方法。

1.PC机1台

3.CPLD/FPGA实验系统及下载装置,1套

三.实验内容

设计一个计时范围为0秒~90秒的数字秒表,用数码管显示当前秒表的计时值,并设置一个计时清零开关、一个计时起、停控制开关。

四.设计思路

1.秒表的计时基准信号:

以周期为1秒的计时脉冲CLK1作为一个比较精准的计时基准信号输入到秒个位计数器的时钟端;

注:

控制计数器逢10进1,每到90自动回0。

2.数码管译码显示和动态扫描电路:

将计数器输出的值用数码管显示需要BCD-七段数码管译码显示程序(实验四已经做过);

而将秒表的各位动态显示在数码管上,需要扫描电路

其中扫描电路输入端口:

CLK2(1KHZ)为扫描时钟输入;

五.实验预习要求

1.预习VDHL语言关于时序电路的描述方法;

2.理解本实验的基本结构;

3.预先设计好该数字系统程序:

6.VHDL源程序及编译结果

useIEEE.std_logic_1164.all;

useIEEE.std_logic_unsigned.all;

useIEEE.std_logic_arith.all;

--useWORK.PGE.all;

entitySec_99is

port(Clk_1KHZ,Clk_1HZ:

instd_logic;

Disp_Bit:

outstd_logic_vector(1downto0);

Disp_Seg:

outstd_logic_vector(7downto0)

architecturebehaveofSec_99is

typeSEG7_ARRAYisarray(1downto0)ofstd_logic_vector(7downto0);

typeBCD_ARRAYisarray(1downto0)ofintegerrange0to9;

signalDisp_Buff:

SEG7_ARRAY;

signalSec:

BCD_ARRAY;

functionConv_Seg7(Dat_In:

integerrange0to9)

returnstd_logic_vectoris

VariableDat_Tmp:

std_logic_vector(7downto0);

caseDat_Inis

when0=>

Dat_Tmp:

11000000"

when1=>

11111001"

when2=>

10100100"

when3=>

10110000"

when4=>

10011001"

when5=>

10010010"

when6=>

10000010"

when7=>

11111000"

when8=>

10000000"

when9=>

10010000"

endcase;

returnDat_Tmp;

endfunctionConv_Seg7;

--signalClk_1KHZ,Clk_1HZ:

std_logic;

begin

--Div1KHZ_P:

processis

--variableDiv_Value:

integerrange0to24999;

--begin

--waituntilClk_In'

eventandClk_In='

--if(Div_Value=24999)then

--Div_Value:

---Clk_1KHZ<

=notClk_1KHZ;

----else

=Div_Value+1;

---endif;

--endprocess;

--Div1HZ_P:

integerrange0to499;

--waituntilClk_1KHZ'

eventandClk_1KHZ='

--if(Div_Value=499)then

---Div_Value:

--Clk_1HZ<

=notClk_1HZ;

--else

--endif;

SecCnt_P:

waituntilClk_1HZ'

eventandClk_1HZ='

if(Sec(0)=9)then

if(Sec

(1)=9)then

Sec

(1)<

else

=Sec

(1)+1;

Sec(0)<

else

=Sec(0)+1;

endif;

DispScan_P:

process(Clk_1KHZ)is

std_logic_vector(1downto0):

10"

Variablei:

integerrange0to1;

if(Clk_1KHZ'

Disp_Seg<

=Disp_Buff(i);

Disp_Bit<

=Dat_Tmp;

Dat_Tmp:

=notDat_Tmp;

if(i=0)then

i:

=1;

else

DatConv_P:

process(Sec)is

Conv:

foriin0to1loop

Disp_Buff(i)<

=Conv_Seg7(Sec(i));

endloop;

编译结果:

7.仿真结果及分析

分析:

由以上仿真结果可以看出数字秒表的功能与实验设计要求基本相符,但有些地方在实际电路中因为种种原因可能存在延时问题,即出现竞争冒险情况,可以通过改进减少毛刺的大小。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1