首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

伪随机数产器VHDL源程序-3

伪随机数产器VHDL源程序-3

Architecture Rtl Of Tbuf Is

  Begin

  Three_state :  Process(Data_in,En)

        Begin

          If (En = ''1'') Then

            Data_out <=  Data_in ;

          Else

            Data_out <= (Others => ''Z'') ;

          End If;

        End Process ;

End RTL ;



Library IEEE ;

Use IEEE.Std_logic_1164.All ;

Use IEEE.Std_logic_arith.All ;



Entity Pseudorandom Is

   Generic (Data_width    : Natural := 8 );

   Port (

         Seed   : In  UNSIGNED (24 Downto 0) ;

         Init   : In  UNSIGNED (4 Downto 0) ;

         Load   : In  Std_logic ;

         Clk    : In  Std_logic ;

         Reset  : In  Std_logic ;

         Read   : In  Std_logic ;

         Write  : In  Std_logic ;

         Rand   : Out UNSIGNED (7 Downto 0) ;

         None   : Out Std_logic

        );

End Pseudorandom ;




Architecture Rtl Of Pseudorandom Is

  Signal Latch_seed : UNSIGNED(24 Downto 0) ;

  Signal Encoder_address : UNSIGNED(4 Downto 0) ;

  Signal Random_data : UNSIGNED(7 Downto 0) ;

  Signal Write_enable : Std_logic ;

  Signal Ram_data : UNSIGNED(7 Downto 0) ;

  Begin

    I0 : Entity Work.Dlatrg(Rtl)

          Generic Map (25)

          Port Map (Seed,Read,Reset,Latch_seed) ;

    I1 : Entity Work.Priority_encoder(Rtl)

          Generic Map (25,5)

          Port Map (Latch_seed,Encoder_address,None) ;

    I2 : Entity Work.Ram(Rtl)

          Generic Map (8,5)

          Port Map (Random_data,Encoder_address,Write_enable,Clk,Ram_data) ;

    I3 : Entity Work.Tbuf(Rtl)

          Generic Map (8)

          Port Map (Ram_data,Write,Rand) ;

    I4 : Entity Work.Lfsr(Rtl)

          Generic Map (8)

          Port Map (Clk,Reset,Random_data) ;

     I5 : Entity Work.Divide_by_n(Rtl)

          Generic Map (5)

          Port Map (Init,Load,Clk,Reset,Write_enable) ;

End Rtl ;
返回列表