当前位置:   article > 正文

Xilinx FPGA:vivado单端RAM实现输出偶数(单端RAM的简单应用)

Xilinx FPGA:vivado单端RAM实现输出偶数(单端RAM的简单应用)

一、实验步骤

(1)先创建一个工程

(2)调用IP资源找到RAMs&ROMs&BRAMs,选择其中的块资源

(3)修改配置参数

  1. `timescale 1ns / 1ps
  2. //写入0-99的数据,读出偶数
  3. module single_ram_test(
  4. input sys_clk ,
  5. input rst_n ,
  6. output reg[7:0] ram_out
  7. );
  8. //----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
  9. wire wea ; //写使能
  10. assign wea = 1 ;
  11. reg[6:0] addra ;
  12. reg[7:0] dina ;
  13. wire[7:0] douta ;
  14. always@(posedge sys_clk)
  15. if(!rst_n)
  16. addra <= 0 ;
  17. else if (addra == 99)
  18. addra <= 0 ;
  19. else
  20. addra <= addra +1 ;
  21. always@(posedge sys_clk )
  22. if(!rst_n)
  23. dina <= 0 ;
  24. else if ( dina == 99 )
  25. dina <= 0 ;
  26. else
  27. dina <= dina +1 ;
  28. always@(posedge sys_clk )
  29. if(!rst_n)
  30. ram_out <= 0 ;
  31. else if ( douta%2 == 0 ) //读出偶数
  32. ram_out <= douta ;
  33. else
  34. ram_out <= 0 ;
  35. single_ram your_instance_name (
  36. .clka(sys_clk), // input wire clka
  37. .wea(wea), // input wire [0 : 0] wea
  38. .addra(addra), // input wire [6 : 0] addra
  39. .dina(dina), // input wire [7 : 0] dina
  40. .douta(douta) // output wire [7 : 0] douta
  41. );
  42. // INST_TAG_END ------ End INSTANTIATION Template ---------
  43. endmodule

仿真结果:

  1. `timescale 1ns / 1ps
  2. module single_ram_test_bench( );
  3. reg sys_clk ;
  4. reg rst_n ;
  5. wire[7:0] ram_out ;
  6. initial
  7. begin
  8. sys_clk = 0 ;
  9. rst_n = 0 ;
  10. #30 rst_n = 1 ;
  11. end
  12. always #20 sys_clk = ~sys_clk ;
  13. single_ram_test single_ram_test_u1(
  14. . sys_clk (sys_clk) ,
  15. . rst_n (rst_n ) ,
  16. . ram_out (ram_out)
  17. );
  18. endmodule

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/762653
推荐阅读
相关标签
  

闽ICP备14008679号