EDA实验报告00121184Word格式.docx
- 文档编号:22939909
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:56
- 大小:3.21MB
EDA实验报告00121184Word格式.docx
《EDA实验报告00121184Word格式.docx》由会员分享,可在线阅读,更多相关《EDA实验报告00121184Word格式.docx(56页珍藏版)》请在冰豆网上搜索。
y:
outstd_logic);
endmux4;
architecturertlofmux4is
begin
process(sel,input)
ifsel=“00”then
y<
=input(0);
elsifsel=“01”then
=input
(1);
elsifsel=“10”then
=input
(2);
else
=input(3);
endif;
endprocess;
endrtl;
实验结果
4选1数据选择器的截图:
仿真波形图:
实验2四位比较器
1.设计四位二进制码比较器,并在实验开发系统上验证。
2.学习层次化设计方法。
5.其它器件与材料若干
本实验实现两个4位二进制码的比较器,输入为两个4位二进制码
和
,输出为M(A=B),G(A>
B)和L(A<
B).用高低电平开关作为输入,发光二极管作为输出,具体管脚安排可根据试验系统的实际情况自行定义。
1.用硬件描述语言编写四位二进制码
比较器的源文件;
2.对设计进行仿真验证;
3.编程下载并在实验开发系统上进行硬件验证
实验程序
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
entityvhdl_cmpis
port(A:
B:
m,g,l:
outstd_logic);
endvhdl_cmp;
architecturebehaveofvhdl_cmpis
p1:
process(A,B)
if(A>
B)then
G<
='
1'
;
M<
0'
L<
elsif(A<
elsif(A=B)then
else
endif;
endprocessp1;
endbehave;
功能:
时序仿真:
管脚分配:
实验3并行加法器设计
一、试验目的
1.设计一个4位加法器。
2.体会用VHDL进行逻辑描述的优点。
3,熟悉层次化设计方法。
二、试验仪器与器材
1.EDA开发软件一套
2.微机一台
3.试验开发系统一台
4.打印机一台
5.其他器材和材料若干
三、试验说明
本试验实现一个4位二进制数加法器,其功能框图如图所示。
试验时用高低电平开关作为输入,用数码管作为输出(或用发光二极管),管脚锁定可根据试验系统自行安排。
1.用硬件描述语言编写4位二进制数全加器的源文件;
2.对设计文件进行编译;
3.仿真设计文件;
4.编程下载并进行试验验证。
entityadd4is
port(a,b:
instd_logic_vector(3downto0);
cin:
instd_logic;
sum:
outstd_logic_vector(3downto0);
count:
endadd4;
architecturebehavioralofadd4is
begin
process(a,b,cin)
variablesum1:
std_logic_vector(3downto0);
variablecarry:
std_logic;
carry:
=cin;
foriin0to3loop
sum1(i):
=(a(i)xorb(i))xorcarry;
carry:
=(a(i)andb(i))or(carryand(a(i)orb(i)));
endloop;
sum<
=sum1;
count<
=carry;
endprocess;
endbehavioral;
实验47人表决器
一.实验目的
学习表决器电路的设计方法并体会使用HDL进行设计的方法和优点。
EDA开发软件一套
微机一台
实验开发系统一台
打印机一台
三、实验原理
用个开关作为表决器的7个输入变量,输入变量为‘1’时表示“赞同”;
输入变量为‘0’时表示不赞同。
输出接到一二极管上,灯亮表示通过,灯不亮表示不同。
采用行为描述的设计,用一变量count表示选举通过的总人数,即7个开关中按下的总数,如果count>
3,则表示通过。
entitysevenis
port(
a:
instd_logic_vector(6downto0);
y:
endseven;
architectureoneofsevenis
process(a)
variablei:
std_logic_vector(2downto0);
i:
="
000"
forjin0to6loop
if(a(j)='
)theni:
=i+1;
elsei:
=i;
译码程序:
entitymy_translateis
rst:
std_logic;
dataout:
outstd_logic_vector(6downto0));
endmy_translate;
architectureoneofmy_translateis
caseais
when"
0000"
=>
dataout<
0000001"
0001"
1001111"
0010"
0010010"
0011"
0000110"
0100"
1001100"
0101"
0100100"
0110"
0100000"
0111"
0001111"
1000"
0000000"
1001"
0000100"
whenothers=>
1111111"
endcase;
endone;
ifi>
3theny<
elsey<
功能仿真
实验5计数器设计
计数器是实际中最为常用的时序电路模块之一,本实验的主要目的是掌握使用HDL描述计数器类型模块的基本方法。
1.EDA开发软件一套
2.微机一台
3.实验开发系统一台
4.打印机一台
5.其他器材与材料若干
计数器是数字电路系统中最重要的功能模块之一,设计时可以采用原理图或HDL语言完成。
下载验证时的计数时钟可选连续或单脉冲,并用数码管显示计数值。
1.设计一个带有计数允许输入端、复位输入端和进位输入端的十进制计数器。
2.编制仿真测试文件,并进行功能仿真。
3.下载并验证计数器功能。
4.为上述设计建立元件符号。
5.在上述基础上分别设计按8421BCD码和二进制计数的100进制同步计数器。
十进制:
方法一:
entitycnt10is
port(res:
instd_logic;
clkin:
ep:
cout:
outstd_logic;
sout:
outstd_logic_vector(3downto0));
endcnt10;
architecturebehaveofcnt10is
signalcount:
std_logic_vector(3downto0);
process(res,clkin,ep)
begin
if(res='
)thencount<
cout<
elsif(ep='
andrising_edge(clkin))
thenif(count="
)
thencout<
elsecount<
=count+1;
endif;
endprocess;
sout<
=count;
end;
方法二:
entitycountisport(clk:
clr:
en:
q:
outstd_logic_vector(3downto0);
cin:
endcount;
architecturecountofcountissignalq0:
q<
=q0;
process(clk,clr)begin
if(clr='
)thenq0<
cin<
elsif(clk'
eventandclk='
)then
if(q0="
q0<
=q0+1;
elseq0<
if(q0="
七段译码管:
entityshumaguanis
port(data_in:
data_out:
outstd_logic_vector(6downto0));
endshumaguan;
architecturebehaveofshumaguanis
process(data_in)
casedata_inis
when"
data_out<
1111001"
0110000"
0011001"
1010"
1011"
1100"
1101"
1110"
1111"
endcase;
endprocess;
分频器:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
ENTITYcIS
GENERIC(N:
INTEGER:
=25);
PORT(
CLKIN:
INSTD_LOGIC;
CLKOUT:
OUTSTD_LOGIC
);
ENDc;
ARCHITECTUREAOFMY_EDA_fpinIS
SIGNALCNT:
STD_LOGIC_VECTOR(N-1DOWNTO0);
BEGIN
PROCESS(CLKIN)
IF(CLKIN'
EVENTANDCLKIN='
)THEN
CNT<
=CNT+1;
ENDIF;
ENDPROCESS;
CLKOUT<
=CNT(N-1);
ENDA;
十进制计数器原理图:
计数模块:
数码管模块
100进制计数器原理图:
实验6巴克码发生器
1.实现一个在通信领域中经常使用的巴克码发生器。
2.掌握用大规模可编程逻辑器件实现时序电路的方法。
5.其它器件与材料若干
巴克码发生器在数据通信、雷达和遥控领域有相当广泛的应用。
它能自动产生周期性的序列码。
本实验要求产生的序列码信号为(1110010),可以用寄存器或同步时序电路实现。
为了能够通过实验开发系统验证试验结果,可以使用两个输入端,其中一个输出端同时输出巴克码,另一个输出端输出节拍。
巴克码发生器的功能框图如图所示。
1.写出全部设计文件。
2.编写测试向量,进行功能仿真。
3.下载到实验开发系统上进行验证。
分频器
entityfre_devideris
generic(n:
integer:
=2500);
port(clkin:
clkout:
endfre_devider;
architectureoneoffre_devideris
signalcounter:
integerrange0ton;
signalclk:
process(clkin)
if(rising_edge(clkin))then
if(counter=n)then
clk<
=notclk;
counter<
=0;
=counter+1;
clkout<
=clk;
巴克码发生器
entitybakemais
port(en,reset:
clk:
d:
outstd_logic;
q:
bufferstd_logic_vector(3downto0);
co,co2:
endbakema;
architectureoneofbakemais
process(libraryieee;
2、巴克码发生器
process(clk,en,reset)
if(reset='
)thenq<
elsif(rising_edge(clk))then
if(en='
)then
if(q="
elseq<
=q+1;
co<
when(q="
)else'
co2<
process(q)
caseqis
d<
when
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 实验 报告 00121184