(完整版)同步复接器_分接器的FPGA设计与实现毕业设计 下载本文

内容发布更新时间 : 2024/11/14 12:51:46星期一 下面是文章的全部内容请认真阅读。

毕业论文

同步复接器/分接器的FPGA设计与实现

一. 复接器的设计

本设计采用了将复接器通过软件来实现,尽可能用软件来实现更多的硬件电路[18~19]。在FPGA设计中采用了分层设计,顶层为整个系统的原理框图(见图1),框图中包含了构成同步数字复接器的主要模块,然后按各模块的功能分别进行设计[20]。

图1 四路同步复接器的VHDL建模框图

图1的四路同步复接器框图由分频器、内码控制器、时序产生器、内码产生器、输出电路等模块组成[21~22]。分频器模块的作用是用来产生一个256KHZ的时钟信号,内码控制器模块的作用是通过三个地址控制端来控制内码发生器的码字依次输出,时序发生器模块的作用是产生四路时序来控制四路信号的输出,内码产生器模块的作用是将八路并行输入码通过串行输出,输出电路模块的作用是用一个三态门来控制四路信号分时输出,从而实现复接功能。复接器的VHDL设计根据所划分的几大模块分别用VHDL语言去描述,最后用元件调用语句和例化语句将它们连接起来。 1. 分频器

分频器实际是一个计数器,在本设计中,其作用是将由晶体震荡电路产生的4096KHZ的方波信号进行分频,其16分频(即256KHZ时钟)输出端作为内码控制器的控制输入端。其建模流程图如图2所示。

图2 16分频计数器流程图

分频器的VHDL描述程序如下: library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;

entity count16 is port

(clk: in std_logic;

d,c,b,a: out std_logic);

end count16;

architecture rtl of count16 is

signal count_4:std_logic_vector(3 downto 0); begin

process(clk) begin

if(clk'event and clk='1') then

if(count_4=\

count_4<=\ else

count_4<=count_4+1;

end if;

end if;

end process;

d<=count_4(0); c<=count_4(1); b<=count_4(2); a<=count_4(3); end rtl;

上述程序在Max+plus II时序仿真波形如图3所示。