tft每日頭條

 > 生活

 > fpga如何使用ram

fpga如何使用ram

生活 更新时间:2025-04-30 02:56:35

一個雙肩背包

有多難?

戳一下試試看!

→_→

長摁識别

FPGA 内部塊RAM 的讀時序如下圖:

fpga如何使用ram(精品博文FPGA内部雙口塊RAM)1

可知,塊RAM的讀延時為兩個時鐘周期。

FPGA 内部塊RAM 的寫時序如下圖:

fpga如何使用ram(精品博文FPGA内部雙口塊RAM)2

可知,塊RAM 的寫延時為0,但是RAM 中的内容是在寫的下一個時鐘改變。

在ISE下實現對FPGA内部塊RAM 的讀寫代碼:

1. module TOP(

2. input USER_CLK

3. );

4.

5. `define DLY #1

6. reg FPGA_Enable=0;

7. reg[3:0] FPGA_Write_Enable=4'h0;

8. reg[31:0] FPGA_Address=0;

9. reg[31:0] FPGA_Write_Data=0;

10. reg[31:0] FPGA_Read_Data_reg=0;

11. wire[31:0] FPGA_Read_Data;

12.

13. reg[10:0] count=0;

14. always @ (posedge USER_CLK)

15. begin

16. count <= count 1;

17. if(count<=100)

18. begin

19. FPGA_Enable <= 0;

20. FPGA_Write_Enable <= 4'h0;

21. end

22. else if((count <= 105)&&(count >100))

23. begin

24. FPGA_Enable <= 1;

25. FPGA_Write_Enable <= 4'hf;

26. FPGA_Address <= FPGA_Address 4;

27. FPGA_Write_Data <= FPGA_Write_Data 1;

28. end

29. else if((count <= 110)&&(count >105))

30. begin

31. FPGA_Enable <= 0;

32. FPGA_Write_Enable <= 4'h0;

33. FPGA_Address <= 0;

34. FPGA_Write_Data <= 0;

35. end

36. else if((count <= 117)&&(count >110))

37. begin

38. FPGA_Enable <= 1;

39. FPGA_Write_Enable <= 4'h0;

40. FPGA_Read_Data_reg <= FPGA_Read_Data;

41. FPGA_Address <= FPGA_Address 4;

42. end

43. else if(count == 118)

44. begin

45. FPGA_Enable <= 0;

46. count <= count;

47.

48. end

49. end

50.

51. BBBB your_instance_name (

52. .clka(USER_CLK), // input clka

53. .ena(FPGA_Enable), // input ena

54. .wea(FPGA_Write_Enable), // input [3 : 0] wea

55. .addra(FPGA_Address), // input [31 : 0] addra

56. .dina(FPGA_Write_Data), // input [31 : 0] dina

57. .douta(FPGA_Read_Data), // output [31 : 0] douta

58.

59.

60. .clkb(clkb), // input clkb

61. .enb(enb), // input enb

62. .web(web), // input [3 : 0] web

63. .addrb(addrb), // input [31 : 0] addrb

64. .dinb(dinb), // input [31 : 0] dinb

65. .doutb(doutb) // output [31 : 0] doutb

66. );

67. endmodule

效果圖:

fpga如何使用ram(精品博文FPGA内部雙口塊RAM)3

從上圖可以看出,在地址4~20裡面寫入了1-5的數,數據讀出的時候對應地址的數據都延時了兩個時鐘周期才輸出。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved