- 1、本文档共373页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
(1)基于initial语句的方法。
moduleclk1(clk);
outputclk;
parameterclk_period=10;
regclk;
initialbegin
clk=0;
forever#(clk_period/2)clk=~clk;
end
endmodule(2)基于always语句的方法。
moduleclk2(clk);
outputclk;
parameterclk_period=10;
regclk;
initial clk=0;
always#(clk_period/2) clk=~clk;
endmoduleinitial语句用于初始化clk信号,如果没有对clk信号的初始化赋值,会出现对未知信号取反的情况,从而造成clk信号在整个仿真阶段都为未知状态。例5.6-4产生占空比可设置的时钟信号。
自定义占空比信号可以通过always模块快速实现。下面是占空比为20%的时钟信号
代码。
moduleDuty_Cycle(clk);
outputclk;
parameterHigh_time=5,Low_time=20;//占空比为High_time/(High_time+Low_time)
regclk;
alwaysbegin
clk=1;
#High_time;
clk=0;
#Low_time;
end
endmodule这里因为是直接对clk信号赋值,所以不需要initial语句初始化clk信号。
例5.6-5产生具有相位偏移的时钟信号。
相位偏移是两个时钟信号之间的相对概念,如图5.6-3所示。其中clk_a为参考信号,clk_b为具有相位偏移的信号。图5.6-3相位偏移时钟信号示意图产生相移时钟信号的VerilogHDL程序代码如下:
moduleshift_Duty_Cycle(clk_a,clk_b);
outputclk_a,clk_b;
parameterHigh_time=5,Low_time=5,pshift_time=2;
regclk_a;
wireclk_b;
alwaysbegin
clk_a=1;#High_time;
clk_a=0;
#Low_time;
end
assign#pshift_timeclk_b=clk_a;
endmodule
首先通过一个always模块产生参考时钟信号clk_a,然后通过延迟赋值得到clk_b信号,其偏移的相位可通过360*pshift_time%(High_time+Low_time)来计算,其中%为取模运算。上述代码的相位偏移为72°。例5.6-6产生固定数目的时钟信号。
modulefix_num_clk(clk);
outputclk;
parameterclk_cnt=5,clk_period=2;
regclk;
initialbegin
clk=0;repeat(clk_cnt)
#clk_period/2clk=~clk;
end
endmoudle
上述代码产生了5个周期的时钟信号。5.6.4总线信号测试向量的产生
总线是运算部件之间数据流通的公共通道。在RTL级描述中,总线指的是由逻辑单元、寄存器、存储器、电路输入或其它总线驱动的一个共享向量。而总线功能模型则是一种将物理的接口时序操作转化成更高抽象层次接口的总线模型,如图5.6-4所示。
在总线中,对于每个请求端,有一个输入来选择驱动该总线所对应的请求端。选择多个请求端时会产生总线冲突,根据不同的总线类型,会产生不同的冲突结果。当有多个请求端发出请求时,相应的操作由总线的类型决定。在VerilogHDL测试中,总线测试信号通常是通过将片选信号、读(或者写)使能信号、地址信号以及数据信号以task任务的形式来描述,并通过调用task形式的总线信号测试向量来完成相应的总线功能。
您可能关注的文档
- UML系统建模及系统分析与设计课件:面向对象系统设计与行为建模.ppt
- UML系统建模及系统分析与设计课件:软件复用与软件构件技术.ppt
- UML系统建模及系统分析与设计课件:信息系统开发实例.ppt
- UML系统建模及系统分析与设计课件:需求分析与用例建模.ppt
- Verilog HDL程序设计语句和描述方式 .ppt
- Verilog HDL程序设计语句和描述方式 .ppt
- Verilog HDL程序设计语句和描述方式.ppt
- Verilog HDL高级程序设计举例 .ppt
- Verilog HDL高级程序设计举例.ppt
- Verilog HDL数字集成电路高级程序设计课件:仿真测试工具和综合工具.ppt
文档评论(0)