RAM的实验.docx

上传人:b****8 文档编号:10461086 上传时间:2023-02-13 格式:DOCX 页数:16 大小:459.32KB
下载 相关 举报
RAM的实验.docx_第1页
第1页 / 共16页
RAM的实验.docx_第2页
第2页 / 共16页
RAM的实验.docx_第3页
第3页 / 共16页
RAM的实验.docx_第4页
第4页 / 共16页
RAM的实验.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

RAM的实验.docx

《RAM的实验.docx》由会员分享,可在线阅读,更多相关《RAM的实验.docx(16页珍藏版)》请在冰豆网上搜索。

RAM的实验.docx

RAM的实验

RAM的实验

1.实验目的

了解通过Quartus调用Modelsim的方法,利用Modelsim仿真Quartus中的程序。

2.实验内容

用Quartus调用Modelsim完成门级仿真和RTL仿真

3.代码分析

1)本程序让计数器包含一个时钟使能,同时时钟使能出现的间隔变化,并用一个可变模(计数最大值+1)的计数器,改变它的模,然后把进位输出作为时钟使能。

2)在主模块中首先定义了所有的输入输出接口和线。

modulefilter_tb(

ClkEn,

clk_50M,

FreqWord,

Phase,

dds_out,

filter_out

);

inputClkEn;

inputclk_50M;

input[23:

0]FreqWord;

input[23:

0]Phase;

output[11:

0]dds_out;

output[11:

0]filter_out;

wireSYNTHESIZED_WIRE_0;

wire[11:

0]SYNTHESIZED_WIRE_1;

assigndds_out=SYNTHESIZED_WIRE_1;

assignSYNTHESIZED_WIRE_0=0;

3)然后调用dds模块和FIR_Hamming_13Taps_LP_0d250模块

ddsb2v_inst(

.Clock(clk_50M),

.ClkEn(ClkEn),

.FreqWord(FreqWord),

.PhaseShift(Phase),

.Out(SYNTHESIZED_WIRE_1));

defparamb2v_inst.DATA_W=12;

defparamb2v_inst.PHASE_W=24;

defparamb2v_inst.TABLE_AW=12;

FIR_Hamming_13Taps_LP_0d250b2v_inst1(

.Clock(clk_50M),

.ClkEn(ClkEn),

.AsyncRst(SYNTHESIZED_WIRE_0),

.In(SYNTHESIZED_WIRE_1),

.Out(filter_out));

4)dds模块中同样先定义了所有的输入输出接口:

moduledds

#(parameterPHASE_W=24,

parameterDATA_W=16,

parameterTABLE_AW=12

(input[PHASE_W-1:

0]FreqWord,

input[PHASE_W-1:

0]PhaseShift,

inputClock,

inputClkEn,

outputsigned[DATA_W-1:

0]Out

);

regsigned[DATA_W-1:

0]sinTable[2**TABLE_AW-1:

0];//SinetableROM

reg[PHASE_W-1:

0]phase;//PhaseAccumulater

wire[PHASE_W-1:

0]addr=phase+PhaseShift;//PhaseShift

assignOut=sinTable[addr[PHASE_W-1:

PHASE_W-TABLE_AW]];//Lookupthetable

5)然后用SineTable.dat文件对sineTable进行初始化,并把FreqWord作为可变模

initialbegin

phase=0;

$readmemh("SineTable.dat",sinTable);//InitializetheROM

end

always@(posedgeClock)begin

if(ClkEn)

phase<=phase+FreqWord;

end

endmodule

4.实验步骤

1)新建一个工程,设置工程目录、工程名和顶层模块名

2)选择已有文件,将两个设计文件复制到工程目录下,然后选择它们

3)选择器件

4)选择第三方工具,这里将第三方仿真工具设置为ModelSim-AE

5)Assignments-Device中,DeviceandPinOption中,Voltage标签,修改默认IO电平

6)Dual-PurposePins标签

7)UnusedPins标签,未使用的Pin设置为输入

8)新建顶层文件

9)为两个verilog文件创建原理图符号,在原理图文件中添加它们

10)修改DDS模块的参数

11)连线并保存原理图文件

12)分析工程,已获得工程结构和IO口等信息

13)Tools-Options中,General-EDAToolOptions中,设置ModelSim-AE的安装路径

14)在QuartusII中添加Testbench,Assignments-EDAToolSettings

testbench的写法与ModelSim中一模一样,它最终也是给ModelSim-AE使用的

15)Tools-RunEDASimulationTool-EDAGateLevelSimulation...

16)然后选择仿真的条件

17)RTL级仿真时,Modelsim使用源文件仿真,但Modelsim不识别QuartusII中的原理图文件(bdf文件),可通过bdf文件生成verilog文件,添加生成的verilog文件,并设置为工程的顶层文件,编译后,再进行RTL仿真

Tools-RunEDASimulationTool-EDARTLLevelSimulation

5.实验结果的测试和分析

Modelsim中RTL仿真结果如下:

门级仿真结果如下:

6.实验总结

通过这次试验,我知道了如何用Quartus来调用Modelsim进行仿真,仿真过程中出现的一些问题也让我体会到了同学间团结协作的重要性。

7.参考文献

1)源代码:

罗杰的dds.vSineTable.dattestbench.v

2)图片:

王贞炎《FPGA和SOPC应用——QuartusII和ModelSimAE》

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 起诉状

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1