EDA设计参考程序完整版合计31题Word格式文档下载.docx

上传人:b****5 文档编号:21201650 上传时间:2023-01-28 格式:DOCX 页数:55 大小:27.54KB
下载 相关 举报
EDA设计参考程序完整版合计31题Word格式文档下载.docx_第1页
第1页 / 共55页
EDA设计参考程序完整版合计31题Word格式文档下载.docx_第2页
第2页 / 共55页
EDA设计参考程序完整版合计31题Word格式文档下载.docx_第3页
第3页 / 共55页
EDA设计参考程序完整版合计31题Word格式文档下载.docx_第4页
第4页 / 共55页
EDA设计参考程序完整版合计31题Word格式文档下载.docx_第5页
第5页 / 共55页
点击查看更多>>
下载资源
资源描述

EDA设计参考程序完整版合计31题Word格式文档下载.docx

《EDA设计参考程序完整版合计31题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《EDA设计参考程序完整版合计31题Word格式文档下载.docx(55页珍藏版)》请在冰豆网上搜索。

EDA设计参考程序完整版合计31题Word格式文档下载.docx

endprocess;

hex<

=cnt(2downto0);

withhexselect

ledout<

0000111"

when"

"

1111101"

110"

1101101"

101"

1100110"

100"

1001111"

011"

1011011"

010"

0000110"

001"

0111111"

whenothers;

enda;

2、设计一个带计数使能、同步复位、带进位输出的增1十进制计数器,计数结果由共阴极七段数码管显示。

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYcounter3IS

PORT(clk,clr,en:

INSTD_LOGIC;

co:

OUTSTD_LOGIC;

ledout:

OUTSTD_LOGIC_VECTOR(6downto0));

ENDcounter3;

ARCHITECTUREaOFcounter3IS

SIGNALcnt:

STD_LOGIC_VECTOR(3downto0);

SIGNALled:

STD_LOGIC_VECTOR(6downto0);

BEGIN

PROCESS(clk)

BEGIN

IF(clk'

EVENTANDclk='

)THEN

IFclr='

THEN

cnt<

=(OTHERS=>

'

ELSIFEN='

IFcnt="

1001"

="

0000"

co<

='

ELSE

=cnt+'

ENDIF;

ENDIF;

ENDIF;

ENDPROCESS;

ledout<

=NOTled;

WITHcntSELECT

led<

1111001"

WHEN"

0001"

--1

"

0100100"

0010"

--2

0110000"

0011"

--3

0011001"

0100"

--4

0010010"

0101"

--5

0000010"

0110"

--6

1111000"

0111"

--7

0000000"

1000"

--8

0010000"

--9

1000000"

WHENothers;

--0

ENDa;

3、设计一个带计数使能、异步复位、同步装载的可逆三位二进制计数器,计数结果由共阴极七段数码管显示。

port(clk,clr,en,stld,upon:

din:

instd_logic_vector(2downto0);

q:

outstd_logic_vector(6downto0));

endcounter;

signaly:

std_logic_vector(6downto0);

process(clk)

ifclr='

then

elsifclk'

ifstld='

=din;

elsifen='

ifupon='

else

=cnt+'

endif;

endprocess;

q<

=NOTy;

y<

enda;

4、设计一个带计数使能、同步复位、异步装载、可逆计数的通用计数器。

计数结果由共阴极七段数码管显示。

entityasdasdsadxvzzxis

Generic(count_value:

INTEGER:

=9);

Port(clk:

inSTD_LOGIC;

clr:

en:

load:

dir:

data_in:

inINTEGERRANGE0TOcount_value;

ledout:

outSTD_LOGIC_VECTOR(6downto0));

endasdasdsadxvzzx;

architectureBehavioralofasdasdsadxvzzxis

SIGNALcnt:

INTEGERRANGE0TOcount_value;

SIGNALled:

STD_LOGIC_VECTOR(6DOWNTO0);

PROCESS(load,clk)

IFload='

=data_in;

ELSIF(clk'

eventandclk='

)THEN

IFclr='

=0;

elsifen='

ifdir='

ifcnt=count_valuethen

=cnt+1;

ifcnt=0then

=count_value;

=cnt-1;

=NOTled;

withcntselect

led<

WHEN1,--1

WHEN2,--2

WHEN3,--3

WHEN4,--4

WHEN5,--5

WHEN6,--6

WHEN7,--7

WHEN8,--8

WHEN9,--9

"

WHEN0,--0

1111111"

endBehavioral;

5、设计一个具有16分频、8分频、4分频和2分频功能的分频器

useieee.std_logic_arith.all;

entityclkdivis

port(clk:

clk_div2:

outstd_logic;

clk_div4:

clk_div8:

clk_div16:

endclkdiv;

architecturertlofclkdivis

signalcount:

std_logic_vector(3downto0);

if(clk'

)then

if(count="

1111"

)then

count<

count<

=count+1;

clk_div2<

=count(0);

clk_div4<

=count

(1);

clk_div8<

=count

(2);

clk_div16<

=count(3);

endrtl;

法二

ENTITYdiv4IS

PORT(clk:

INSTD_LOGIC;

INSTD_LOGIC_VECTOR(3DOWNTO0);

reset:

fout:

OUTstd_LOGIC);

ENDdiv4;

ARCHITECTUREaOFdiv4IS

variablecnt:

std_logic_vector(3downto0):

begin

ifreset='

fout<

elsif(clk'

cnt:

else

ifdin="

=cnt(3);

elsifdin="

=cnt

(2);

1100"

=cnt

(1);

elsifdin<

1110"

=cnt(0);

6、设计一个正负脉宽相等的通用分频器

ENTITYcounterIS

GENERIC(count_value:

INTEGER:

=15);

PORT(clk,clr,en:

count:

OUTSTD_LOGIC);

ENDcounter;

ARCHITECTUREaOFcounterIS

INTEGERRANGE0TOcount_value;

SIGNALco:

STD_LOGIC;

SIGNALcount1:

STD_LOGIC;

PROCESS(clk,clr)

IFclr='

cnt<

ELSIF(clk'

IFen='

IFcnt=count_valueTHEN

ELSE

=cnt+1;

ENDIF;

PROCESS(co)

IF(co'

EVENTANDco='

count1<

=NOTcount1;

=count1;

ENDPROCESS;

法二:

ENTITYdivIS

GENERIC(num:

=2);

PORT

(clk:

reset:

co:

ENDdiv;

ARCHITECTURErtlOFdivIS

PROCESS(clk)

VARIABLEcnt:

STD_LOGIC_VECTOR(numdownto0):

IFreset='

thenco<

=cnt(num);

ENDrtl;

7、设计一个正负脉宽可控的4分频的分频器

LIBRARYIEEE;

PORT(clk,rst:

INSTD_LOGIC_VECTOR(1DOWNTO0);

COUNT:

SIGNALco:

STD_LOGIC_VECTOR(1DOWNTO0);

ifrst='

then

00"

if(cnt="

11"

=notco;

elsif(cnt=din)then

count<

=co;

8根据需要设计一个分频器:

可以控制实现四种分频形式:

第一种:

5分频、第二种:

8分频、

第三种:

15分频、第四种:

16分频

(其中8分频和16分频为正负脉宽相等的分频器)

entityfenpinis

en:

instd_logic_vector(1downto0);

cout:

endfenpin;

architecturedgnfenpinoffenpinis

if(clk'

eventANDclk='

if(en="

if(cnt>

--8分频

cout<

elsif(en="

01"

--5分频

10"

cout<

--15分频

--16分频

enddgnfenpin;

9、设计一个M序列发生器,M序列为“11110101”

USEIEEE.STD_logic_1164.all;

entityseqis

fout:

outSTD_LOGIC);

endseq;

architectureBehavioralofseqis

if(clk'

ifcnt="

=cnt+'

withcntselect

when"

'

whenothers;

10、设计一个彩灯控制器,彩灯共有6个,每次顺序点亮相邻的2个彩灯,

如此循环执行,循环的方向可以控制

entitycaidengis

rl:

outSTD_LOGIC_VECTOR(5downto0));

endcaideng;

architectureBehavioralofcaidengis

signalled:

STD_LOGIC_VECTOR(5downto0):

signalk:

STD_LOGIC:

if(k='

=(0=>

1=>

others=>

k<

elsif(rl='

=led(4downto0)&

led(5);

=led(0)&

led(5downto1);

ledout<

=led;

11、设计一个具有左移、右移控制,同步并行装载和串行装载的4位串行移位寄存器

ENTITYshifter1IS

PORT(clk,clr,ser,dir,stld:

din:

INSTD_LOGIC_VECTOR(0TO3);

qh:

OUTSTD_LOGIC_VECTOR(0TO3));

ENDshifter1;

ARCHITECTURErt1OFshifter1IS

SIGNALreg:

STD_LOGIC_VECTOR(0TO3):

process(clk,clr)

reg<

ifstld='

reg<

if(dir='

=reg(1to3)&

ser;

qh<

=reg(0);

=ser&

reg(0to2);

=reg(3);

endrt1;

12、设计一个4人表决电路,参加表决者为4人,同意为1,不同意为0,同意者过半则表决通过,

绿指示灯亮,表决不通过则红指示灯亮。

同意与不同意人数相等时,两灯同时亮起。

数码管显示赞

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

当前位置:首页 > 工程科技 > 城乡园林规划

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

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