ZBLOG

`timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 2022/11/17 13:23:15 // Design Name: // Module Name: top // Project Name: // Target Devices: /...

  1. `timescale 1ns / 1ps // 定义时间精度
  2. //////////////////////////////////////////////////////////////////////////////////
  3. // Company: // 公司名
  4. // Engineer: // 工程师名
  5. // Create Date: // 创建日期
  6. // Design Name: // 设计名称
  7. // Module Name: top // 模块名称为top
  8. // Project Name: // 项目名称
  9. // Target Devices: // 目标设备
  10. // Tool Versions: // 工具版本
  11. // Description: // 描述信息
  12. //
  13. // Dependencies: // 依赖项
  14. //
  15. // Revision:
  16. // Revision 0.01 - File Created // 版本修订记录及注释说明
  17. // Additional Comments:
  18. //
  19. //////////////////////////////////////////////////////////////////////////////////
  20. module top(
  21. input clk, // 输入时钟信号clk,用于同步模块内部的操作和控制信号
  22. output [31:0] Instr, // 输出指令数据,作为CPU模块的输入端口之一,由指令存储器Ins_memory提供给CPU使用。
  23. output [31:0] dataout, // 输出数据,由数据存储器data_memory提供给CPU使用。
  24. output [31:0] pc, // 输出程序计数器PC值,用于调试和监视CPU的执行状态。
  25. output [31:0] busB, // 输出总线B上的数据值,由ALU或寄存器模块写入总线B中。作为数据存储器data_memory的地址输入端口之一。
  26. output [31:0] datain, // 输出写入数据,由CPU模块提供给数据存储器data_memory,用于写入内存中的数据。
  27. output [31:0] result, // 输出计算结果,由ALU或寄存器模块计算得出,并输出到总线B上。
  28. output MemWr // 输出内存写使能信号MemWr,当CPU向数据存储器data_memory写入数据时需要置为高电平。
  29. );
  30. // 实例化CPU模块
  31. CPU cpu(
  32. .clk(clk),
  33. .Instr(Instr),
  34. .dataout(dataout),
  35. .result(result),
  36. .pc(pc),
  37. .busB(busB),
  38. .MemWr(MemWr)
  39. );
  40. // 实例化指令存储器Ins_memory
  41. Ins_memory Ins_memory(
  42. .addr(pc), // 指定地址输入端口为程序计数器PC值
  43. .clk(clk), // 指定时钟信号输入端口为顶层模块的clk信号
  44. .Instr(Instr) // 指定指令输出端口与CPU模块的指令输入端口连接
  45. );
  46. // 实例化数据存储器data_memory
  47. data_memory data_memory(
  48. .addr(result), // 指定地址输入端口为ALU或寄存器模块输出的结果值result
  49. .clk(clk), // 指定时钟信号输入端口为顶层模块的clk信号
  50. .datain(busB), // 指定写入数据输入端口为总线B上的值
  51. .MemWr(MemWr), // 指定写使能信号输入端口为顶层模块的内存写使能信号
  52. .dataout(dataout) // 指定读出数据输出端口与CPU模块的数据输出端口连接
  53. );
  54. endmodule // 顶层模块结束标志

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=4653

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?