1 / 32
文档名称:

同步复接器_分接器的fpga设计与实现毕业设计.doc

格式:doc   页数:32页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

同步复接器_分接器的fpga设计与实现毕业设计.doc

上传人:珍贵文档 2016/4/3 文件大小:0 KB

下载得到文件列表

同步复接器_分接器的fpga设计与实现毕业设计.doc

相关文档

文档介绍

文档介绍:毕业论文同步复接器/ 分接器的 FPGA 设计与实现一. 复接器的设计本设计采用了将复接器通过软件来实现,尽可能用软件来实现更多的硬件电路[ 18~19 ]。在 FPGA 设计中采用了分层设计,顶层为整个系统的原理框图(见图 1),框图中包含了构成同步数字复接器的主要模块,然后按各模块的功能分别进行设计[ 20]。图1 四路同步复接器的 VHDL 建模框图图1的四路同步复接器框图由分频器、内码控制器、时序产生器、内码产生器、输出电路等模块组成[ 21~22 ]。分频器模块的作用是用来产生一个 256KHZ 的时钟信号, 内码控制器模块的作用是通过三个地址控制端来控制内码发生器的码字依次输出,时序发生器模块的作用是产生四路时序来控制四路信号的输出,内码产生器模块的作用是将八路并行输入码通过串行输出,输出电路模块的作用是用一个三态门来控制四路信号分时输出,从而实现复接功能。复接器的 VHDL 设计根据所划分的几大模块分别用 VHDL 语言去描述,最后用元件调用语句和例化语句将它们连接起来。 1. 分频器分频器实际是一个计数器,在本设计中,其作用是将由晶体震荡电路产生的 4096KHZ 的方波信号进行分频,其 16分频(即 256KHZ 时钟) 输出端作为内码控制器的控制输入端。其建模流程图如图 2所示。时钟分频器内码控制器内码产生器内码产生器内码产生器内码产生器输出电路时序发生器时钟 CLK 输入开始计数图2 16 分频计数器流程图分频器的 VHDL 描述程序如下: library ieee; use ; use ; entity count16 is port (clk: in std_logic; d,c,b,a: out std_logic); end count16; architecture rtlof 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="1111") then count_4<="0000"; else count_4<=count_4+1; end if; end if; end process; d<=count_4(0); c<=count_4(1); b<=count_4(2); =15 计数器计数计数器清零 a<=count_4(3); end rtl; 上述程序在 Max+plus II时序仿真波形如图 3所示。图3 分频器的时序仿真波形图3 中, a 表示 16 分频输出, b 表示 8 分频输出, c 表示 4 分频输出, d 表示 2 分频输出。由图中可以看出,实际仿真波形图与理论预期一致。 2. 内码控制器内码控制器,实际也是一个分频器,一个输出端口输出三位并行信号作为内码产生器的地址控制端,另一输出端作为时序产生器的控制端。内码控制器对内码产生器的控制功能表如表 所示。表 内码控制器对内码产生器的控制功能表内码控制器的 3 路输出信号( A2A1A0 ) 内码产生器输出信号位( Y0-Y7 中选 1) A2 A1 A0Y 000 Y0 001 Y1 010 Y2 011 Y3 100 Y4 101 Y5 110 Y6 111 Y7 中的 A2 、 A1 、 A0 分别表示内码控制器内的二进制分频器的 8、4、2分频信号。内码产生器应循环并依次输出从“000 ”、“001 ”、一直到“ 111 ”。这样,内码发生器每个时钟节拍,输出一位码,通过输出电路送到合路信道上,最终形成一路串行码流。 3. 时序产生器时序产生器可产生脉宽为 8个时钟周期的四路时序信号。具体实现是:将内码控制器的二分频端通过一个 32 分频器,其 16 分频和 32 分频输出端作为 2/4 译码器的控制端, 2/4 译码器的四个输出端,在经过反相器后,便得出本设计所要求的四路时序。译码器的建模流程图如图 4所示。图4 译码器的 VHDL 建模流程图译码器的 VHDL 描述程序如下: library ieee; use ; use ; entity yimaqi is port (f2,f1: in std_logic; y3,y2,y1,y0 :out std_logic ); end ; architecture rtlof yimaqi is signal indata:std_logic_ve