- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
块对存储器变量赋初始值
第六章 例题
[例1]: 用initial 块对存储器变量赋初始值
initial
begin
areg=0; //初始化寄存器areg
for(index=0;indexsize;index=index+1)
memory[index]=0; //初始化一个memory
end
[例2]:用initial语句来生成激励波形
initial
begin
inputs = b000000; //初始时刻为0
#10 inputs = b011001; (’是英文输入法中的标号)
#10 inputs = b011011;
#10 inputs = b011000;
#10 inputs = b001000;
end
//always语句由于其不断活动的特性,只有和一定的时序控制结合在一起才有用。
//如果一个always语句没有时序控制,则这个always语句将会使仿真器产生死锁。
//见下例:
[例3]:always areg = ~areg;
//但如果加上时序控制,则这个always语句将变为一条非常有用的描述语句。见下例:
[例4]:always #half_period areg = ~areg;
//这个例子生成了一个周期为:period(=2*half_period) 的无限延续的信号波形,
//常用这种方法来描述时钟信号,作为激励信号来测试所设计的电路。
[例5]:reg[7:0] counter;
reg tick;
always @(posedge areg)
begin
tick = ~tick;
counter = counter + 1;
end
[例6] OR事件控制(敏感列表)
//有异步复位的电平敏感锁存器
always @ ( reset or clock or d )
//等待复位信号reset 或 时钟信号clock 或 输入信号d 的改变
begin
if ( reset ) //若 reset 信号为高,把q置零
q = 1 b0 ;
else if ( clock ) //若clock 信号为高,锁存输入信号d
q = d ;
end
/* Verilog1364-2001版本的语法中,对于原来的规定作了补充:关键词“or”也可以使用“,”来代替。例7 给出了使用逗号的例子。使用“,”来代替关键词“or”也适用于跳变沿敏感的触发器。*/
[例7] 使用逗号的敏感列表
//有异步复位的电平敏感锁存器
always @ ( reset , clock , d )
//等待复位信号reset 或 时钟信号clock 或 输入信号d的改变
begin
if ( reset ) // 若 reset 信号为高,把q置零
q = 1 b0 ;
else if ( clock ) // 若clock 信号为高,锁存输入信号d
q = d ;
end
//用reset异步下降沿复位,clk正跳变沿触发的D寄存器
always @ ( posedge clk , negedge reset ) //注意:使用逗号来代替关键字or
if (! reset )
q = 0 ;
else
q = d ;
[例8] @*操作符的使用
//用or 操作符的组合逻辑块
//编写敏感列表很繁琐并且容易漏掉一个输入
always @ ( a or b or c or d or e or f or g or h or p or m )
begin
out1 = a ? b + c : d + e ;
out2 = f ? g + h : p + m ;
end
//不用上述方法,用符号 @(*) 来代替,可以把所有输入变量都自动包括进敏感列表。
always @ ( * )
begin
out1 = a ? b + c : d + e ;
out2 = f ? g + h : p + m ;
end
always
wait (count_enable) #20 count = count + 1;
switch_bytes(old_word,new_word);
new_word = switch_bytes(old_word);
task my_task;
input a, b;
inout c;
o
您可能关注的文档
- 1-1在计算机上安装软件.doc
- 系列高性能MCU简介.pdf
- 1PLC主要由.doc
- 电子与封装E E R L CT.pdf
- 实验计算机硬件与拆装实验1计算机硬件与拆装.pdf
- Windows要使用安全模式启动.doc
- 通讯处理器.pdf
- 扩展压缩树算法.pdf
- 广州市初中信息技术笔试复习资料.doc
- 电阻率---又叫电阻系数或叫比电阻是衡量物质导电性能好....doc
- 2025四川天府银行社会招聘备考题库(攀枝花)含答案详解(最新).docx
- 2025四川银行首席信息官社会招聘备考题库及完整答案详解1套.docx
- 2025四川天府银行社会招聘备考题库(攀枝花)带答案详解.docx
- 2025四川天府银行社会招聘备考题库(成都)含答案详解(a卷).docx
- 2025四川广元市利州区选聘社区工作者50人备考题库及答案详解(基础+提升).docx
- 2025天津银行资产负债管理部总经理或副总经理招聘1人备考题库含答案详解(典型题).docx
- 2025四川天府银行社会招聘备考题库(西充)附答案详解(考试直接用).docx
- 2025年中国民生银行南宁分行招聘2人备考题库及答案详解(全优).docx
- 2025天津银行高级研究人才招聘备考题库附答案详解(达标题).docx
- 2025大连银行营口分行招聘2人备考题库及参考答案详解一套.docx
原创力文档


文档评论(0)