EDA实验实习报告Word格式.docx
- 文档编号:20479761
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:16
- 大小:204.80KB
EDA实验实习报告Word格式.docx
《EDA实验实习报告Word格式.docx》由会员分享,可在线阅读,更多相关《EDA实验实习报告Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
useieee.std_logic_1164.all;
entityyiweijicunis
port(clk,rd,sr,sl,s1,s0:
instd_logic;
d:
instd_logic_vector(3downto0);
y:
outstd_logic_vector(3downto0));
end;
architectureyiweijicun1ofyiweijicunis
signaltemp:
std_logic_vector(3downto0);
begin
process(clk,rd)
ifrd='
0'
thentemp<
="
0000"
;
elsif(clk'
eventandclk='
1'
)then
if(s1='
ands0='
temp<
=d;
elsif(s1='
=temp(2downto0)&
sl;
=sr&
temp(3downto1);
endif;
endif;
endprocess;
y<
=temp;
仿真图:
2、设计一个能自启的环形计数器,实现如图所示的状态转换图。
entityziqixunhuanis
port(clk,reset:
yq:
architectureziqixunhuan1ofziqixunhuanis
signalnextq:
std_logic_vector(3downto0);
process(clk,reset)
begin
ifreset='
thennextq<
0001"
elsif(clk'
casenextqis
when"
=>
nextq<
0010"
0100"
1000"
whenothers=>
nextq<
endcase;
endprocess;
yq<
=nextq;
仿真图:
(自启动体现在哪?
请你考虑下!
)
3、设计一个8为循环移位寄存器,设计一个移位控制端dir,dir为1,则循环右移,dir为0,则循环左移,输入输出均为并行数据。
entityxunhuanyiweiis
port(D:
instd_logic_vector(7downto0);
reset,clk,dir:
Y:
outstd_logic_vector(7downto0));
architecturexunhuanyiwei1ofxunhuanyiweiis
signalnextD:
std_logic_vector(7downto0);
thennextD<
=D;
ifdir='
then
nextD<
=nextD(0)&
nextD(7downto1);
elsifdir='
=nextD(6downto0)&
nextD(7);
endif;
Y<
=nextD;
仿真波形如下:
4、节日彩灯电路设计
要求当输入连续脉冲时,4个彩灯(发光二极管)级可以从右向左逐位亮继而逐位灭,又可以从左向右逐位亮继而逐位灭。
①、真值表:
时
1
时:
②、源程序:
useieee.std_logic_unsigned.all;
entitylightis
port(x,clk,rd:
q:
bufferstd_logic_vector(3downto0));
architectureatloflightis
process(clk,x)
if(rd='
q<
if(x='
q(3)<
=q
(2);
q
(2)<
=q
(1);
q
(1)<
=q(0);
q(0)<
=notq(3);
else
=q(3);
=notq(0);
③、仿真图:
五、实验心得:
移位寄存器的设计较触发器的设计又增加了一点难度,但是只要充分理解其原理,还是很容易的。
设计环形计数器和循环移位寄存器和节日彩灯首先要明白工作原理,然后思考如何用现有的器件完成。
最后还是要能完整的准确的完成波形的演示。
实验八、计数器设计
一、实验目的:
1.掌握计数器电路设计的方法。
2.通过开发CPLD来实现时序逻辑电路的功能。
二、实验所用仪表及主要器材:
PC,软件maxplus2,CPLD芯片
三、实验原理简述:
输入输出分配管脚.
(5)下载实现,按照设定的输入输出管脚,用线连接实验板上的发光二极管和开关改变输入开关的状态,观察输出端对应的发光二极管的状态。
四、实验内容(真值表、原理图、源程序、仿真图)
1)设计一个同步带有进位输出端的二十四进制(8421BCD码)计数器,且能够自启动及具有进位输出端。
方法按下列要求设计编程实现。
要求:
用原理图输入法,元件采用74160设计上述计数器,并硬件下载实现,结果用数码管显示;
原理图在哪?
仿真结果?
2.用文本输入法即VHDL语言设计编程,并硬件下载实现,结果用数码管显示。
真值表:
Q7
Q6
Q5
Q4
Q3
Q2
Q1
Q0
1、源程序:
entitydecis
port(clk,sd,ep,et:
rd:
bufferstd_logic;
dl:
dh:
ql:
bufferstd_logic_vector(3downto0);
qh:
architecturertlofdecis
begin
process(clk,rd,sd,ep,et)
rd<
=(qh
(1)nandql
(2));
ql<
qh<
if(sd='
=dl;
=dh;
elsif(ep='
=ql;
=qh;
elsif(et='
andet='
if(ql=9)then
=qh+1;
else
=ql+1;
②、仿真图:
还差实验8的
(2)模值可变的计数器,可以参考顾宝亮的这道题!
(2)模值可变的计数器编译文本
useieee.std_logic_arith.all;
entityshiyan82is
port(clk,clr:
m:
inintegerrange2to16;
bufferintegerrange2to16
);
architectureoneofshiyan82is
signalm_temp:
integerrange2to16;
process(clk,clr,m)
m_temp<
=m-1;
ifclr='
thenq<
=0;
--清零
elsifclk'
then
ifq=m_tempthenq<
elseq<
=q+1;
--加法计算
仿真结果:
2)设计一个BCD码模60同步异步计数器:
a.60同步
①、源程序:
entitybcd60countis
port(clk,bcd1wr,bcd10wr,cin:
instd_logic;
co:
outstd_logic;
datain:
instd_logic_vector(3downto0);
bcd1p:
outstd_logic_vector(3downto0);
bcd10p:
outstd_logic_vector(2downto0));
endbcd60count;
architecturebehaveofbcd60countis
signalbcd1n:
signalbcd10n:
std_logic_vector(2downto0);
bcd1p<
=bcd1n;
bcd10p<
=bcd10n;
kk1:
process(clk,bcd1wr)
if(bcd1wr='
)then
bcd1n<
=datain;
if(cin='
if(bcd1n="
1001"
)then
=bcd1n+'
endprocesskk1;
kk2:
process(clk,bcd10wr)
if(bcd10wr='
bcd10n<
=datain(2downto0);
if(cin='
)and(bcd1n="
)then
if(bcd10n="
101"
000"
=bcd10n+'
endprocesskk2;
kk3:
process(bcd10n,bcd1n,cin)
andbcd1n="
andbcd10n="
co<
='
endprocesskk3;
endbehave;
b.60异步
entitycou60is
port(clk,reset,cin:
co:
bcd1p:
bcd10p:
endcou60;
architecturebehaveofcou60is
process(clk)
if(clk'
if(reset='
elsif(cin='
elsif(cin='
001"
请添加实验8的第(4)内容,混合输入法设计一个模四十八(十进制显示)!
{即画出原理图,一个是74LS160,一个是实验1②中生成的symbol}仿真结果!
本次试验中,首先要注意将准备编译的文件设为当前工程。
在完成以后的建立功能仿真波形时,要穷尽输入信号的所有逻辑组合。
通过本次实验,是我们进一步熟悉时序电路的设计方法和技巧并且熟悉计数器的程序设计方法。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 实验 实习 报告