层次结构设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

R
ELSIF (clk ' EVENT AND clk = '1' ) THEN P
IF (rd = '0' AND in_empty = '0' ) THEN

IF (rp = w-1) THEN rp<= 0;

ELSE rp<= rp +1;

ENDIF;

ENDIF;
END IF;
END PROCESS P2;
BEGIN
IF (reset = '1') THEN in_empty <= '1';
ELSIF (clk ' EVENT AND clk = '1') THEN E
满FULL和存储器空
EMPTY。RD和WR低电
平有效。
Dout [0:n]
FULL EMPTY
FIFO的算法描述
存储器写 满的条件
RP
当WP=RP时,再有
效写入一次,存储器
写满。
WP
WP
存储器读 空的条件
当RP=WP-2时,再有 一次有效的读出,存
储器读空。
RP
根据上述FIFO的功能描述,先进先出堆栈FIFO 需5个功能块组成,即
IF (wr = '0' AND in_full = '0' )THEN 据
ram (wp ) <= din;

END IF;
堆 栈
END IF;
END PROCESS P1;
P2:PROCESS (clk, reset)
BEGIN
IF (reset = '1') THEN rp <= w-1;
IF (rp = wp AND wr = '0'
AND rd = '1') THEN
in_full <= '1';
ELSIF ( in_full = '1' AND rd= '0') THEN
in_full <= '0';
ENDIF;
ENDIF;
END PROCESS;
FULL 标 志 产 生
P5:PROCESS (clk, reset)
END fifo;
ARCHITECTURE behav OF fifo IS
TYPE memory IS ARRAY (0 TO w-1) OF
STD_LOGIC_VECTOR (k-1 DOWNTO 0) ;
SIGNAL ram:MEMORY;
SIRNAL up, rp:INTEGER RANGE 0 TO w-1;
存储器体、
写指针(WP)、
读指针(RP)、
满信号FULL产生逻辑、
空信号EMPTY逻辑,
这五个功能块用五个进程描述,其中进程P1描 述存储器操作,P2描述出栈指针RP的计数操作, P3描述进栈指针WP的计数操作,P4描述满标志 产生逻辑,P5描述空标志产生逻辑。堆栈的操作 在时钟脉冲CLK的控制下同步进行。
Hale Waihona Puke Baidu
SIGNAL in_full, in_empty:STD_LOGIC;
BEGIN
full <= in_full;
empty <= in_empty;
dout <= ram (rp);
P1: PROCESS (clk)
BEGIN
IF (clk' EVENT AND clk = '1') THEN 数
256字节FIFO的VHDL算法模型。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
ENTITY fifo IS
GENERIC (w:INTEGER: = 256;
(3) 写出VHDL源代码,实现进程激活后的 动作。
5.1.1 先进先出堆栈(FIFO)的算法模型
FIFO是一个环行结构的 Din[0:n]
数据存储器,其接口信号
包括数据输入Din,数据 /RD
输出Dout,一根读控制线 RD和一根写控制线WR,
/WR CLK
CLK是时钟信号,此外还
有两根状态信号,存储器
用VHDL语言构造的硬件算法模型,由一系列 相互关联的进程组成。构造硬件的算法模型, 实际上就是把描述系统功能的自然语言翻译为 一组进程,每个进程完成不同的功能。
完成这一转换,需要经过下述步骤:
(1) 把描述系统功能的自然语言分组,每组 映射为一个进程或块。这实际上隐含了设计的 划分。
(2) 对每个进程确定激活的条件和进程激活 后的动作。
层次结构设计是大型数字系统设计 的主要方法。在系统设计中,需要 解决的主要问题包括系统算法的研 究、系统的设计划分、硬件系统的 互连和系统的仿真测试。
5.1 硬件的算法模型
系统级设计是硬件设计过程的第一步,其任 务是把硬件系统功能的自然语言描述转换为 真值表、状态图或硬件描述语言算法模型。 将自然语言转换为真值表或状态图,要求设 计者对硬件的系统功能有较深入的了解,一 旦真值表或状态图确定后,系统的硬件结构 也随之确定。将硬件系统功能的自然语言描 述转换为硬件描述语言的算法模型,无需对电 路的结构和形式预作任何限制,与真值表或 状态图相比,硬件描述语言构造的算法模型 更加灵活,设计方便,有利于设计的优化。

ELSE wp<= wp +1;
针 修
END IF;

ENDIF;
ENDIF;
END PROCESS P3;
P5:PROCESS (clk' reset)
BEGIN
IF (reset = '1') THE in_full <= '0';
ELSIF (clk' EVENT AND clk = '1') THEN
K:INTEGER: = 8);
PORT (clk, reset, wr, rd:IN STD_LOGIC;
din:IN STD_LOGIC_VECTOR (k-1 DOWNTO 0);
dout:OUT STD_LOGIC_VECTOR (k-1
DOWNTO 0);
full, empty:OUT STD_LOGIC);
P3:PROCESS (clk, reset)
BEGIN
IF (reset = '1') THEN wp<= 0;
ELSIF (clk ' EVENT AND clk = '0' ) THEN W
IF (wr = '0' AND in_full = '0')THEN
P
IF (wp = w-1) THEN wp<= 0;
相关文档
最新文档