VHDL语言与数字系统设计西电Word文档格式.docx
- 文档编号:14704691
- 上传时间:2022-10-24
- 格式:DOCX
- 页数:29
- 大小:857.18KB
VHDL语言与数字系统设计西电Word文档格式.docx
《VHDL语言与数字系统设计西电Word文档格式.docx》由会员分享,可在线阅读,更多相关《VHDL语言与数字系统设计西电Word文档格式.docx(29页珍藏版)》请在冰豆网上搜索。
Ø
实验一
1.实验内容
1.用IF语句设计一个四-十六译码器;
2.用CASE语句设计一个四-十六译码器;
3.用GENERATE语句构造一个串行的十六进制计数器。
2.实验目的
会用VHDL语言实现一些简单的组合逻辑和时序逻辑,学会使用相关EDA软件进行VHDL代码的输入、仿真。
3.实验方案
本实验有三个小实验组成,先分别将方案分别列出:
a:
用IF语句设计一个四-十六译码器
接口信号的定义如图--1:
g1,g2a,g2b为片选信号,sel为输入
编码,y为译码输出
图-1
b:
用CASE语句设计一个四-十六译码器
接口定义同样的如图-1:
g1,g2a,g2b为片选信号,sel为输入编码,y为译码输出
c:
用GENERATE语句构造一个串行的十六进制计数器
先用行为描述设计一个D触发器,然后用结构描述的方法将四个D触发器用特定的接法连接起来。
其中clk、clr为时钟和清零输入,q为计数输出。
图-2即综合器生成的RTL框图。
图-2十六进制计数器的RTL框图
4.仿真结果(仿真软件:
QuartusII7.2)
a:
用IF语句实现的四-十六译码器的仿真结果
上图为:
片选信号无效的时候的仿真波形,输出为高电平。
上图为:
片选信号有效的时候的仿真波形。
用CASE语句实现的一个四-十六译码器的仿真结果(直接让片选有效)
用GENERATE语句构造的串行的十六进制计数器的仿真波形
注:
当clr为0时对计数结果清零,时钟上升沿计数器加1.
5.关键部分代码
PROCESS(G1,g2a,g2b,sel)
begin
if(g1='
1'
andg2a='
0'
andg2b='
)then
elsey<
="
XXXXXXXXXXXXXXXX"
;
endif;
endprocess;
caseselis
whenothers=>
y<
endcase;
architecturecount16erofcount16is
componentdfipis
port(
d:
instd_logic;
clr:
ck:
q:
outstd_logic;
qb:
outstd_logic
);
endcomponent;
signalclk_in:
std_logic_vector(4downto0);
clk_in(0)<
=clk;
G1:
foriin0to3generate
U0:
dfipportmap(d=>
clk_in(i+1),ck=>
clk_in(i),clr=>
clr,q=>
q(i),qb=>
clk_in(i+1));
endgenerate;
endcount16er;
实验二
6.实验内容
1.设计一个两位二进制的加法器
2.设计一个两位的BCD计数器
7.实验目的
会用VHDL语言的多种描述方式实现典型的组合逻辑和时序逻辑,学会使用相关EDA软件进行VHDL代码的输入、仿真。
明确典型的组合逻辑和时序逻辑的基本构成。
练习层次化设计。
8.实验方案
本实验有两个小实验组成,先分别将方案分别列出:
设计一个二位二进制加法器
接口信号的定义如右图:
a、b为两位的二进制输入,ci为进入输入,
s为全家和,co为进入输出。
设计方案:
先用行为描述设计一位全加器,然后再把一位全加器用结构描述的方法,通过引用已设计好的元件组成。
其RTL框图如下:
其中full_add为一位全加器。
用设计一个两位的BCD计数器
接口信号的定义如右图:
g1为使能信号,当其有效时才可以计数;
clk为时钟输入,clr为清零,异步清零。
cout为进位输出。
设计方案
先设计一位BCD计数器,采用两个BCD计数器串联的方式完成最终设计,为了严格同步,使用前一个计数器的进位输出做为后一个的使能信号。
9.仿真结果(仿真软件:
二位二进制加法器的仿真结果
两位的BCD计数器的仿真结果
上图中,cout为进位输出,当计数到99时产生进位。
q0为个位BCD计数,q1为十位BCD计数。
下图即计数到99时cout产生进位的情况,仿真完全正确。
10.关键部分代码
设计一个二位二进制加法器的核心代码
一位全加器部分
architecturedata_flowoffull_addis
signals:
std_logic;
s<
=xxory;
sum<
=sxorcin;
cout<
=(xandy)or(sandcin);
enddata_flow;
二位二进制加法器
full_addportmap(a(0),b(0),ci,s(0),m);
U1:
full_addportmap(a
(1),b
(1),m,s
(1),co);
设计一个两位的BCD计数器的核心代码
一位BCD计数器
architecturertlofBCD_counteris
signalin_q0:
integer:
=0;
begin
process(clk,clr,g1)
)then
if(clr='
)then
in_q0<
elsif(clk'
eventandclk='
if(in_q0=9)then
in_q0<
co<
='
else
=in_q0+1;
endif;
endif;
q0<
=conv_std_logic_vector(in_q0,4);
endrtl;
两位BCD计数器
UO:
BCD_counterportmap(clk,clr,g1,m,q0);
BCD_counterportmap(clk,clr,m,cout,q1);
实验三
11.实验内容
利用数组形式描述256x8bits的RAM,并利用测试床完成对其读写操作。
12.实验目的
明确RAM的工作原理及过程,学会简单随机存储器的读写操作,并利用测试台对其进行测试。
13.实验方案
对于256x8bits的RAM,它有八条地址
线adr(0)~adr(7),八条数据输入线din(0)~din(7)、八
条数据输出线dout(0)~dout(7),wr为写控制线,rd
为读控制线。
当片选信号cs=1,wr信号上升沿时,
din上的数据写入由adr所指定的单元;
当cs=1、
rd=0时,由adr所指定的单元的内容将从dout上
输出。
设计方案
分别由相应的进程控制RAM的读写过程,并且对建立及保持时间进行检测,让不符合要求时输出waring。
14.仿真结果(仿真软件:
如上图:
初始化RAM所有单元为0。
当片选信号无效时,输出高祖。
当当片选信号cs=1,wr信号上升沿时,din上的数据写入由adr所指定的单元;
当cs=1、rd=0时,由adr所指定的单元的内容将从dout上输出。
仿真结果符合预期。
15.关键部分代码
adr_in<
=conv_integer(adr);
process(wr)
if(wr'
eventandwr='
)then
wr_rise<
=now;
if(cs='
sram(adr_in)<
=dinafter2ns;
assert(wr_rise-din_change>
=800ps)report"
writesramsetuptimeviolation"
severityWARNING;
endprocess;
process(rd,cs,adr_in,wr)
if(rd='
andcs='
dout<
=sram(adr_in)after3ns;
else
=(others=>
'
Z'
)after4ns;
process(din)
din_change<
assert(din_change-wr_rise>
300ps)report"
readsramholdtimeviolation"
实验四
16.实验内容
采用VHDL语言设计实现UART串行通信的发送、接收模块。
17.实验目的
了解UART的基本原理,掌握串行异步通信实现同步的方法。
同时,学会用VHDL语言设计复杂电路的技巧及对复杂电路的仿真分析。
同时培养相关方面的能力。
18.实验方案
通用异步收发器UART是最常见的一种串行接口电路,广泛应用于微机与外设的通信。
其主要由发送器、接收器、波特率发生器、同步先进先出缓存、Modem控制模块、接口模块等组成。
本设计主要设计UART中最重要的发送部分和接收部分,其他部分设计不在赘述。
收发双方实现同步的方法是在字符格式中设置起始位和停止位。
其数据帧的各位为下图:
其中奇偶效验位可有可无。
在本次设计中,没有使用效验。
波特率因子为16.
下面就发送部分和接收部分的设计做一个叙述:
发送模块:
发送模块的主要功能是从CPU接收要发送的并行数据,将之转换成串行数据,按照约定的数据格式和波特率,在发送时钟clk16x的作用下,从端口tx端输出。
由此可以得出发送模块的主要功能为发送缓冲器(thr)、发送移位寄存器(tsr)、帧产生、并转串。
其工作过程为微处理器给出wr信号,发送器根据此信号将并行数据data[7..0]锁存进发送缓冲器thr[7..0],并通过发送
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 语言 数字 系统 设计