EDA的一些程序代码Word格式.docx

上传人:b****5 文档编号:8329283 上传时间:2023-05-11 格式:DOCX 页数:32 大小:735.94KB
下载 相关 举报
EDA的一些程序代码Word格式.docx_第1页
第1页 / 共32页
EDA的一些程序代码Word格式.docx_第2页
第2页 / 共32页
EDA的一些程序代码Word格式.docx_第3页
第3页 / 共32页
EDA的一些程序代码Word格式.docx_第4页
第4页 / 共32页
EDA的一些程序代码Word格式.docx_第5页
第5页 / 共32页
EDA的一些程序代码Word格式.docx_第6页
第6页 / 共32页
EDA的一些程序代码Word格式.docx_第7页
第7页 / 共32页
EDA的一些程序代码Word格式.docx_第8页
第8页 / 共32页
EDA的一些程序代码Word格式.docx_第9页
第9页 / 共32页
EDA的一些程序代码Word格式.docx_第10页
第10页 / 共32页
EDA的一些程序代码Word格式.docx_第11页
第11页 / 共32页
EDA的一些程序代码Word格式.docx_第12页
第12页 / 共32页
EDA的一些程序代码Word格式.docx_第13页
第13页 / 共32页
EDA的一些程序代码Word格式.docx_第14页
第14页 / 共32页
EDA的一些程序代码Word格式.docx_第15页
第15页 / 共32页
EDA的一些程序代码Word格式.docx_第16页
第16页 / 共32页
EDA的一些程序代码Word格式.docx_第17页
第17页 / 共32页
EDA的一些程序代码Word格式.docx_第18页
第18页 / 共32页
EDA的一些程序代码Word格式.docx_第19页
第19页 / 共32页
EDA的一些程序代码Word格式.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

EDA的一些程序代码Word格式.docx

《EDA的一些程序代码Word格式.docx》由会员分享,可在线阅读,更多相关《EDA的一些程序代码Word格式.docx(32页珍藏版)》请在冰点文库上搜索。

EDA的一些程序代码Word格式.docx

PROCESS(ABC)

BEGIN

IFABC(0)='

0'

THENL<

000"

ELSIFABC(1DOWNTO0)="

01"

THENL<

="

001"

ELSIFABC(2DOWNTO0)="

011"

010"

ELSIFABC(3DOWNTO0)="

0111"

ELSIFABC(4DOWNTO0)="

01111"

100"

ELSIFABC(5DOWNTO0)="

011111"

101"

ELSIFABC(6DOWNTO0)="

0111111"

110"

ELSIFABC(7DOWNTO0)="

01111111"

111"

ENDIF;

ENDPROCESS;

ENDARCHITECTURE;

时序仿真TestBench文件内容(不含注释)及仿真波形图

仿真时制作的TestBench文件添加:

WAITFOR200ns;

A<

='

B<

1'

C<

D<

E<

F<

G<

H<

WAITFOR200ns;

8421码奇偶校验位发生器设计

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYxor42IS

PORT(B8,B4,B2,B1:

P,NP:

OUTSTD_LOGIC;

ARCHITECTUREBHVOFXOR42IS

SIGNALe,f,g:

STD_LOGIC;

VGA<

e<

=B8XORB4;

f<

=B2XORB1;

g<

=eXORf;

p<

=g;

NP<

=gXOR'

注意:

在Entity中务必添加VGA功能选择端口:

VGA:

OUTSTD_LOGIC_VECTOR(3DOWNTO0)

在Architecture中务必添加功能选择设置:

(2)时序仿真TestBench文件内容(不含注释)及仿真波形图

LIBRARYieee;

USEieee.std_logic_1164.all;

ENTITYxor42_vhd_tstIS

ENDxor42_vhd_tst;

ARCHITECTURExor42_archOFxor42_vhd_tstIS

--constants

--signals

SIGNALB1:

SIGNALB2:

SIGNALB4:

SIGNALB8:

SIGNALNP:

SIGNALP:

SIGNALVGA:

STD_LOGIC_VECTOR(3DOWNTO0);

COMPONENTxor42

PORT(

B1:

B2:

B4:

B8:

NP:

OUTSTD_LOGIC;

P:

VGA:

OUTSTD_LOGIC_VECTOR(3DOWNTO0)

);

ENDCOMPONENT;

i1:

xor42

PORTMAP(

--listconnectionsbetweenmasterportsandsignals

B1=>

B1,

B2=>

B2,

B4=>

B4,

B8=>

B8,

NP=>

NP,

P=>

P,

VGA=>

VGA

init:

PROCESS

--variabledeclarations

BEGIN

--codethatexecutesonlyonce

WAITFOR100ns;

B8<

B4<

B2<

B1<

WAIT;

ENDPROCESSinit;

always:

--optionalsensitivitylist

--()

--codeexecutesforeveryeventonsensitivitylist

ENDPROCESSalways;

ENDxor42_arch;

\

半加器设计

--半加器

ENTITYh_adderIS

PORT(a,b:

co,so:

OUTSTD_LOGIC);

ARCHITECTUREfh1OFh_adderIS

SIGNALabc:

STD_LOGIC_VECTOR(1DOWNTO0);

abc<

=a&

b;

PROCESS(abc)

CASEabcIS

WHEN"

00"

=>

so<

co<

10"

11"

WHENOTHERS=>

NULL;

ENDCASE;

ENDPROCESS;

ENDARCHITECTUREfh1;

ENTITYf_adder_vhd_tstIS

ENDf_adder_vhd_tst;

ARCHITECTUREf_adder_archOFf_adder_vhd_tstIS

SIGNALain:

SIGNALbin:

SIGNALcin:

SIGNALcout:

SIGNALsum:

COMPONENTf_adder

ain:

bin:

cin:

cout:

sum:

f_adder

ain=>

ain,

bin=>

bin,

cin=>

cin,

cout=>

cout,

sum=>

sum,

ain<

bin<

cin<

--codeexecutesforeveryeventonsensitivitylist

ENDf_adder_arch;

带使能输入及同步清零的增1计数器

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCNT16IS

PORT(CLK,CLR,EN:

Q:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

VGA:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDCNT16;

ARCHITECTUREbehavOFCNT16IS

PROCESS(CLK,CLR,EN)

VARIABLEQI:

IFCLR='

THENQI:

=(OTHERS=>

'

);

ELSIFCLK'

EVENTANDCLK='

THEN

IFEN='

THENQI:

=QI+1;

ELSEQI:

ENDIF;

Q<

=QI;

ENDbehav;

生成TestBench模板文件,做以下修改:

在Architecture的常数声明部分添加

……

--constants

CONSTANTclk_period:

TIME:

=40ns;

--该常数用于设置时钟周期,40ns

两个进程修改如下:

PROCESS

--variabledeclarations

--codethatexecutesonlyonce

WAITFOR100ns;

en<

WAITFOR1500ns;

clr<

--codeexecutesforeveryeventonsensitivitylist

clk<

WAITFORclk_period/2;

--时钟信号的TestBench的一般描述

其中黑体部分,是时钟信号仿真TestBench的描述方式之一。

完成时序仿真,保存波形截图。

带使能输入、进位输出及同步清零的增1十进制计数器

ENTITYCNT10IS

COUT:

ENDCNT10;

ARCHITECTUREbehavOFCNT10IS

IFQI=9THENCOUT<

ELSECOUT<

clk<

基本串入/并出移位寄存器

libraryieee;

useieee.std_logic_1164.all;

entitysb8is

port(clk,din:

instd_logic;

dout:

outstd_logic_vector(7downto0);

VGA:

outstd_logic_vector(3downto0));

endentity;

architectureoneofsb8is

begin

VGA<

process(clk)

variablereg8:

std_logic_vector(7downto0):

00000000"

begin

ifclk'

eventandclk='

then

reg8(7downto1):

=reg8(6downto0);

reg8(0):

=din;

endif;

dout<

=reg8;

endprocess;

endarchitecture;

时序仿真TestBench文件内容:

WAITFOR40ns;

din<

仿真波形图:

改进的串入/并出移位寄存器

(1)Top-LevelDesignVHDL代码

在Entity中务必添加VGA模式端口:

在Architecture中务必添加模式设定:

entitysb88is

outstd_logic_vector(3downto0);

architectureoneofsb88is

std_logic_vector(3downto0);

variablej:

integer:

=1;

ifj>

4then

dout<

j:

elsif

clk'

j:

=j+1;

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2