EDA实验报告四选一四位比较器加法器计数器巴克码发生器文档格式.docx

上传人:b****4 文档编号:17737367 上传时间:2022-12-09 格式:DOCX 页数:14 大小:259.61KB
下载 相关 举报
EDA实验报告四选一四位比较器加法器计数器巴克码发生器文档格式.docx_第1页
第1页 / 共14页
EDA实验报告四选一四位比较器加法器计数器巴克码发生器文档格式.docx_第2页
第2页 / 共14页
EDA实验报告四选一四位比较器加法器计数器巴克码发生器文档格式.docx_第3页
第3页 / 共14页
EDA实验报告四选一四位比较器加法器计数器巴克码发生器文档格式.docx_第4页
第4页 / 共14页
EDA实验报告四选一四位比较器加法器计数器巴克码发生器文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

EDA实验报告四选一四位比较器加法器计数器巴克码发生器文档格式.docx

《EDA实验报告四选一四位比较器加法器计数器巴克码发生器文档格式.docx》由会员分享,可在线阅读,更多相关《EDA实验报告四选一四位比较器加法器计数器巴克码发生器文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

EDA实验报告四选一四位比较器加法器计数器巴克码发生器文档格式.docx

实验2四位比较器

1.设计四位二进制码比较器,并在实验开发系统上验证。

2.学习层次化设计方法。

5.其它器件与材料若干

本实验实现两个4位二进制码的比较器,输入为两个4位二进制码

输出为M(A=B),G(A〉B)和L(A〈B)(如图所示)。

用高低电平开关作为输入,发光二极管作为输出,具体管脚安排可根据试验系统的实际情况自行定义。

1.用硬件描述语言编写四位二进制码

比较器的源文件;

2.对设计进行仿真验证;

3.编程下载并在实验开发系统上进行

硬件验证.

四位比较器功能框图

四位比较器VHDL源文件:

libraryieee;

useieee。

std_logic_1164。

all;

entitycomp4is

port(A3,A2,A1,A0:

instd_logic;

B3,B2,B1,B0:

G,M,L:

outstd_logic);

endcomp4;

architecturebehaveofcomp4is

begin

p1:

process(A3,A2,A1,A0,B3,B2,B1,B0)

variablecomb1,comb2:

std_logic_vector(3downto0);

begin

comb1:

=A3&A2&

A1&A0;

comb2:

=B3&

B2&B1&

B0;

if(comb1>

com2)thenG〈=’1'

M<

='

0’;

L〈='

0'

;

elsif(comb1<

comb2)thenM〈=’1’;

G〈=’0’;

L<

elseL<

=’1'

G<

=’0’;

endif;

endprocessp1;

endbehave;

仿真波形图:

试验3并行加法器设计

一、试验目的

1。

设计一个4位加法器。

2.体会用VHDL进行逻辑描述的优点.

3,熟悉层次化设计方法.

二、试验仪器与器材

EDA开发软件一套

2。

微机一台

3.试验开发系统一台

4.打印机一台

5.其他器材和材料若干

三、试验说明

a3

本试验实现一个4位二进制数加法器,其功能框图如图所示。

试验时用高低电平开关作为输入,用数码管作为输出(或用发光二极管),管脚锁定可根据试验系统自行安排。

1.用硬件描述语言编写4位二进制数全加器的源文件;

2.对设计文件进行编译;

3.仿真设计文件;

4.编程下载并进行试验验证。

五、试验结果

4位二进制全加器的源文件:

libraryieee;

useieee.std_logic_1164。

all;

entityadder4is

port(a,b:

instd_logic_vector(3downto0);

cin:

instd_logic_vector(3downto0);

sum:

outstd_logic_vector(3downto0);

count:

outstd_logic);

endadder4;

architecturebehavioralofadder4is

p1:

process(a,b,cin)

variablevsum:

std_logic_vector(3downto0);

variablecarry:

std_logic;

carry:

=cin;

foriin0to3loop

vsum(i):

=(a(i)xorb(i))xorcarry;

carry:

=(a(i)andb(i))or(carryand(a(i)orb(i)));

endloop;

sum〈=vsum;

count〈=carry;

endprocessp1;

endbehavioral;

实验4计数器设计

计数器是实际中最为常用的时序电路模块之一,本实验的主要目的是掌握使用HDL描述计数器类型模块的基本方法.

1.EDA开发软件一套

2.微机一台

3.实验开发系统一台

4.打印机一台

5.其他器材与材料若干

计数器是数字电路系统中最重要的功能模块之一,设计时可以采用原理图或HDL语言完成。

下载验证时的计数时钟可选连续或单脉冲,并用数码管显示计数值。

1.设计一个带有计数允许输入端、复位输入端和进位输入端的十进制计数器.

2.编制仿真测试文件,并进行功能仿真。

3.下载并验证计数器功能.

4.为上述设计建立元件符号。

5.在上述基础上分别设计按8421BCD码和二进制计数的100进制同步计数器。

十进制计数器程序:

libraryieee;

std_logic_unsigned.all;

entitycounter10is

port(en,reset,clk:

instd_logic;

q:

bufferstd_logic_vector(3downto0);

co:

outstd_logic);

endcounter10;

architecturebehavofcounter10is

process(clk,en)

ifclk’eventandclk=’1'

then

ifreset=’1’thenq<

="

0000”;

elsifen='

1’then

ifq<

”1001"

thenq〈=q+'

1'

elseq〈=”0000"

endif;

endif;

endprocess;

co〈=’1’whenq=”1001"

else’0’;

endbehav;

4_7译码器程序:

entitydecoder4_7is

port(insign:

instd_logic_vector(3downto0);

outsign:

outstd_logic_vector(6downto0));

enddecoder4_7;

architecturebehaveofdecoder4_7is

process(insign)

caseinsignis

when”0000"

=〉outsign<

0000001"

when”0001"

1001111”;

when"

0010”=〉outsign<

0010010"

when”0011”=〉outsign<

0000110"

0100"

=〉outsign〈=”1001100"

0101"

=>

outsign<

0100100"

when”0110"

1100000”;

0111”=〉outsign<

0001111”;

when”1000"

=”0000000”;

1001"

outsign〈=”0001100"

whenOTHERS=>

outsign〈=”1111111"

endcase;

endprocess;

endbehave;

100进制计数器原理图:

实验5巴克码发生器

1.实现一个在通信领域中经常使用的巴克码发生器。

2.掌握用大规模可编程逻辑器件实现时序电路的方法。

5.其它器件与材料若干

巴克码发生器在数据通信、雷达和遥控领域有相当广泛的应用。

它能自动产生周期性的序列码。

本实验要求产生的序列码信号为(1110010),可以用寄存器或同步时序电路实现。

为了能够通过实验开发系统验证试验结果,可以使用两个输入端,其中一个输出端同时输出巴克码,另一个输出端输出节拍。

巴克码发生器的功能框图如图所示。

1.写出全部设计文件。

2.编写测试向量,进行功能仿真.

3.下载并用实验板验证。

巴克码发生器程序:

useieee.std_logic_1164.all;

std_logic_arith.all;

std_logic_unsigned。

entitybackis

port(clk,reset:

dout1,dout2:

endback;

architecturebehaveofbackis

signalcount7:

integerrange0to6;

process(clk,reset)

ifreset=’1'

thencount7〈=0;

elsifclk’eventandclk=’1’then

ifcount7<

6then

count7〈=count7+1;

elsecount7〈=0;

endif;

dout2〈=clk;

process(count7)

casecount7is

when0=>

dout1<

when1=〉dout1〈='

when2=>

dout1〈='

1’;

when3=>

when4=>

dout1〈=’0’;

when5=〉dout1〈='

when6=>

whenothers=〉dout1<

endcase;

endprocess;

endbehave;

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

当前位置:首页 > 求职职场 > 简历

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

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