eda实验报告Word格式.docx
- 文档编号:22252343
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:20
- 大小:133.23KB
eda实验报告Word格式.docx
《eda实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《eda实验报告Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
f,so=>
sum);
u3:
or2aPORTMAP(a=>
d,b=>
f,c=>
count);
ENDARCHITECTUREfd1;
ENTITYor2aIS
PORT(a,b:
ENDENTITYor2a;
ARCHITECTUREoneOFor2aIS
BEGIN
c<
=aORb;
ENDARCHITECTUREone;
ENTITYh_adderIS
ENDENTITYh_adder;
ARCHITECTUREfh1OFh_adderIS
so<
=NOT(aXOR(NOTb));
co<
=aANDb;
ENDARCHITECTUREfh1;
四、仿真结果:
实验二三位多数表决器
一、实验目的:
设计一个三位多数表决器。
至少有两人赞成才能通过,既至少输入两个“1”时,输出为“1”。
三、源程序:
---------实验二三位多数表决器
ENTITYvot3IS
PORT(a,b,c:
P:
END;
ARCHITECTUREtwoOFvot3IS
SIGNALd,e,f:
STD_LOGIC;
d<
=aandb;
e<
=bandc;
f<
=canda;
p<
=doreorf;
ENDARCHITECTUREtwo;
实验三四位二进制加一计数器
设计一个四位二进制加一计数器。
时钟跳变一下则计数器加一否则不变。
---------实验三四位二进制加一计数器
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYcnt4IS
PORT(clk:
q:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
END;
ARCHITECTUREthreeOFcnt4IS
SIGNALq1:
STD_LOGIC_VECTOR(3DOWNTO0);
PROCESS(clk)
IFclk'
EVENTANDclk='
1'
THENq1<
=q1+1;
ENDIF;
ENDPROCESS;
q<
=q1;
ENDthree;
四、仿真结果:
实验四四节拍产生器
设计一个四节拍产生器。
由四个D触发器组成移位寄存器,即四节拍产生器。
------实验四四节拍产生器
ENTITYshift4IS
PORT(clk,di:
q:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ARCHITECTUREfourOFshift4IS
SIGNALa,b,c,d:
IFclk'
THEN
a<
=di;
b<
=a;
=b;
d<
=c;
q(3)<
=d;
q
(2)<
q
(1)<
q(0)<
ENDfour;
实验五110序列检测器
设计一个110序列检测器。
-----实验五110序列检测器
ENTITYmly3IS
PORT(clk,din,rst:
OUTSTD_LOGIC_VECTOR(2DOWNTO0));
ENDmly3;
ARCHITECTUREfiveOFmly3IS
TYPEstatesIS(s0,s1,s2);
SIGNALsx:
states;
COM1:
PROCESS(clk,rst)
IFrst='
THENsx<
=s0;
ELSIFclk'
CASEsxIS
WHENs0=>
IFdin='
THENsx<
=s1;
ENDIF;
WHENS1=>
=s2;
WHENs2=>
0'
=s0;
ELSEsx<
WHENOTHERS=>
sx<
ENDCASE;
ENDPROCESSCOM1;
COM2:
PROCESS(sx,din)
THENq<
="
001"
;
ELSEq<
000"
WHENs1=>
011"
010"
110"
111"
q<
="
ENDPROCESSCOM2;
ENDfive;
实验六数字时钟
进一步掌握用VHDL硬件描述语言的设计思想;
设计一个数字时钟:
1.有置位复位功能。
2.预置数3.显示时、分、秒-。
分块设计时分秒
--------实验六数字时钟
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityszzis
port(clk:
instd_logic;
clk1:
md1:
md2:
instd_logic_vector(1downto0);
speak:
outstd_logic;
dout:
outstd_logic_vector(6downto0);
selout:
outstd_logic_vector(2downto0));
endszz;
architectureoneofszzis
signalsel:
std_logic_vector(2downto0);
signalhou1:
std_logic_vector(3downto0);
signalhou2:
signalmin1:
signalmin2:
signalseth1:
signalseth2:
signalsetm1:
signalsetm2:
signalsec1:
signalsec2:
signalh1:
signalh2:
signalm1:
signalm2:
signals1:
signals2:
-------------------------------------------------
begin
----------------------------------------------模6计数
choice:
process(clk1)
ifclk1'
eventandclk1='
then
ifsel="
101"
sel<
else
=sel+1;
endif;
endprocesschoice;
-----------------------------------------------小时十位
h110:
process(clk,hou2,min1,min2,sec1,sec2,md1,md2)
ifclk'
eventandclk='
if(hou1="
0010"
andhou2="
0011"
)and(min1="
0101"
andmin2="
1001"
)and(sec1="
andsec2="
)
hou1<
0000"
elsifhou1="
andhou2="
andmd1='
andmd2="
01"
then--当时间为23点且处于校时状态时
elsif(hou2="
and(min1="
))or(hou2="
=hou1+1;
endprocessh110;
-----------------------------------------------小时个位
h220:
process(clk,min1,min2,sec1,sec2,md1,md2,hou1)
)then
hou2<
elsifhou2="
)or(hou1="
--md<
='
elsif((min1="
))or(md1='
=hou2+1;
--speak<
=clk;
endprocessh220;
-----------------------------------------------分钟十位
m110:
process(clk,min2,sec1,sec2,md1,md2)
if(min1="
)then
min1<
elsifmin1="
andmin2="
and(md1='
00"
)then
elsif(min2="
and(sec1="
))or(min2="
=min1+1;
--endif;
endprocessm110;
----------------------------------------------分钟个位
m220:
process(clk,sec1,sec2,md1,md2)
ifmin2="
min2<
elsifmin2="
else
if(sec1="
)or(md1='
=min2+1;
endprocessm220;
---------------------------------------------秒十位
s110:
process(clk)
if(sec1="
sec1<
elseifsec2="
then
=sec1+1;
endprocesss110;
--------------------------------------------秒个位
s220:
ifsec2="
sec2<
elsesec2<
=sec2+1;
endprocesss220;
-------------------------------------------时间设置小时部分
sethour1:
process(clk,seth2)
ifseth1="
andseth2="
seth1<
elsifseth2="
=seth1+1;
endprocesssethour1;
-------------------------------------------
sethour2:
process(clk,md1,md2,seth1)
if(seth1="
)orseth2="
seth2<
elsifmd1='
=seth2+1;
endprocesssethour2;
-------------------------------------------时间设置分钟部分
setmin1:
process(clk,setm2)
ifsetm1="
andsetm2="
setm1<
elsifsetm2="
=setm1+1;
endprocesssetmin1;
----------------------------------------------
setmin2:
process(clk,md1,md2)
ifsetm2="
setm2<
=setm2+1;
endprocesssetmin2;
--------------------------------------------
--------------------------------------------闹铃
speaker:
process(clk1,hou1,hou2,min1,min2)
ifseth1=hou1andseth2=hou2andsetm1=min1andsetm2=min2then
speak<
=clk1;
elsespeak<
endprocessspeaker;
disp:
process(sel,md1,hou1,hou2,min1,min2,sec1,sec2,seth1,seth2,setm1,setm2)
selout<
caseh1is
when"
=>
dout<
0111111"
0001"
0000110"
1011011"
whenothers=>
1000000"
endcase;
elsifsel="
caseh2is
1001111"
0100"
1100110"
1101101"
0110"
1111101"
0111"
0000111"
1000"
1111111"
1101111"
whenothers=>
casem1is
casem2is
11001
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- eda 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)