RAM的实验.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
RAM的实验

RAM的实验 实验目的 了解通过Quartus调用Modelsim的方法,利用Modelsim仿真Quartus中的程序。 实验内容 用Quartus调用Modelsim完成门级仿真和RTL仿真 代码分析 本程序让计数器包含一个时钟使能,同时时钟使能出现的间隔变化,并用一个可变模(计数最大值 + 1)的计数器,改变它的模,然后把进位输出作为时钟使能。 在主模块中首先定义了所有的输入输出接口和线。 module filter_tb( ClkEn, clk_50M, FreqWord, Phase, dds_out, filter_out ); input ClkEn; input clk_50M; input [23:0] FreqWord; input [23:0] Phase; output [11:0] dds_out; output [11:0] filter_out; wire SYNTHESIZED_WIRE_0; wire [11:0] SYNTHESIZED_WIRE_1; assign dds_out = SYNTHESIZED_WIRE_1; assign SYNTHESIZED_WIRE_0 = 0; 然后调用dds模块和FIR_Hamming_13Taps_LP_0d250模块 dds b2v_inst( .Clock(clk_50M), .ClkEn(ClkEn), .FreqWord(FreqWord), .PhaseShift(Phase), .Out(SYNTHESIZED_WIRE_1)); defparam b2v_inst.DATA_W = 12; defparam b2v_inst.PHASE_W = 24; defparam b2v_inst.TABLE_AW = 12; FIR_Hamming_13Taps_LP_0d250 b2v_inst1( .Clock(clk_50M), .ClkEn(ClkEn), .AsyncRst(SYNTHESIZED_WIRE_0), .In(SYNTHESIZED_WIRE_1), .Out(filter_out)); dds模块中同样先定义了所有的输入输出接口: module dds #( parameter PHASE_W = 24, parameter DATA_W = 16, parameter TABLE_AW = 12 ) ( input [PHASE_W - 1 : 0] FreqWord, input [PHASE_W - 1 : 0] PhaseShift, input Clock, input ClkEn, output signed [DATA_W - 1 : 0] Out ) ; reg signed [DATA_W - 1 : 0] sinTable[2 ** TABLE_AW - 1 : 0]; // Sine table ROM reg [PHASE_W - 1 : 0] phase; // Phase Accumulater wire [PHASE_W - 1 : 0] addr = phase + PhaseShift; // Phase Shift assign Out = sinTable[addr[PHASE_W - 1 : PHASE_W - TABLE_AW]]; // Look up the table 然后用SineTable.dat文件对sineTable进行初始化,并把FreqWord作为可变模 initial begin phase = 0; $readmemh(SineTable.dat, sinTable); // Initialize the ROM end always@(posedge Clock) begin if(ClkEn) phase = phase + FreqWord; end endmodule 实验步骤 新建一个工程,设置工程目录、工程名和顶层模块名 选择已有文件,将两个设计文件复制到工程目录下,然后选择它们 选择器件 选择第三方工具,这里将第三方仿真工具设置为ModelSim-AE Assignments - Device中,Device and Pin Option中,Voltage标签,修改默认IO电平 Dual-Purpose Pins标签 Unused Pins标签,未使用的Pin设置为输入 新建顶层文件 为两个verilog文件创建原理图符号,在原理图文件中添加它们

文档评论(0)

asd522513656 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档