- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
正弦信号发生器
——Modelsim仿真验证
本节主要内容
组成结构
正弦信号发 工作原理
生器的原理
改变频率的方法
硬件描述语 片上ROM 的IP核
言实现方法 配置与使用
测试代码编写
验证方法 Modelsim
仿真验证 软件具体操作
正弦波发生器程序代码
module singt(iCLK_50, dataout,f_set,rst) ; 定义顶层模块
input iCLK_50,rst; singt
input[1:0] f_set; 定义电路的输入输出
output[7:0] dataout; 端口,其中f_set为相
reg[7:0] addr; ROM表中的正弦数据地址 位累加字,用于设置
输出信号的频率。
always @ (posedge iCLK_50 or negedge rst)
begin always模块实现地
if (!rst) addr = 0; 址累加功能
else addr=addr+ f_set;
ROM表中的正弦数表相位累加
end
DATAROM U1(.address(addr),.q(dataout),.clock(iCLK_50));
endmodule
例化ROM,ROM是采用IP核的方式实现的,
端口引用方式连接相应端口。
测试代码TestBench
`timescale 10ns/10ns 定义仿真时间单位/时间精度
module singt_tb;
例如:
reg[1:0] f_set; `timescale 10ns/1ns
reg iCLK_50;
reg rst; `timescale 100ps/1ns
wire [7:0] dataout;
initial 如果定义:
`timescale 10ns/100ps
begin 则:
iCLK_50 =0; #2.1 表示延时210*100ps=21ns
f_set = 1; #2.11表示延时211*100ps= 21.1ns
rst = 0;
测试代码TestBench
`timescale 10ns/10ns
module singt_tb;
原创力文档


文档评论(0)