- 1、本文档共116页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Verilog HDL数字系统设计及其应用第7章
因此,for循环语句实际上等价于由while循环语句构建的如下循环结构: begin 语句1; while (条件表达式) begin 循环体语句或语句块; 语句2; end end 这样,对于使用while循环语句时需要3条语句才能完成的一个循环控制,for循环语句只需一条语句就可以实现。 下面使用for循环语句来描述与例7-11相同的功能。 【例7-12】for循环语句。 initial for(count=0;count100;count=count+1) begin //循环体语句块 $display (count = %d,count); #5; end 上例中for循环语句的执行过程是:首先执行“count=0;”,给循环变量count赋初值0;然后判断条件表达式“count 100”是否成立,根据判断结果确定是否要继续执行循环体语句块: ? 如果条件表达式成立,则执行循环体语句块,然后语句“count=count+1”得到执行,实现循环变量count的增值操作,然后再重新转回到判断条件表达式那一步。 ? 如果条件表达式“count 100”不成立,则循环体语句块不被执行,结束循环过程,退出for循环语句的执行。 所以循环变量count将由初值0开始,在每次循环后其值增1。这样条件表达式在前100次循环时始终是成立的,而在开始第101次循环前,count取值为100,此时条件表达式“count 100”不再成立,因此这时将结束循环并退出for循环语句的执行。 下面再举两个使用for循环语句的例子。例7-13所示模块利用for循环语句实现了在例7-10中用repeat语句来实现的乘法器功能,而例7-14则用for循环语句实现了一个4位左移器。 【例7-13】用for循环语句来实现一个8位乘法器。 module 8_bits_multiplier(result,opa,opb); parameter SIZE=8,LONGSIZE=16; input [SIZE:1] opa,opb; output [LONGSIZE:1] result; reg[SIZE:1] opa,opb; reg[LONGSIZE:1] result; always @(opa or opb) begin: mult integer index; //循环变量(index)定义 result=0; for (index =1; index=SIZE; index=index+1) //?for循环语句 if (opb[index]==1) //循环体语句是一条if语句 result=result+(opa(index-1)); end endmodule 【例7-14】4位左移器。 module four-bit_left_shifter(result,a,ctrl); input[7:0] a; input ctrl; output [7:0] result; reg [7:0] result; always @(a or ctrl) begin : DRIFT integer i; //循环变量(i)定义 result =a; if (ctrl == 1) //判断控制信号ctrl是否为1 begin //如ctrl为1, 则执行4位左移操作 for (i = 4; i = 7; i = i + 1) result[i] = result[i-4]; //循环体语句 result[3:0] = 0; //低4位赋值为0 end end endmodule 7.3 任务(task)与函数(function) 除了在前面已经讨论过的过程块和连续赋值语句这两部分以外,行为描述模块内还可以包含任务定义和函数定义这两部分。这两部分在行为描述模块中都是可选的,它们是存在于模块中的一种“子程序”结构。引入任务和函数的目的是为了对需要多次执行的语句进行描述,使之便于理解和调试,引入任务和函数还可以简化程序的结构,增强代码的易读性。 7.3.1 任务(task) “任务(task)”类似于其它编程语言中的“过程”。任务的使用包括任务定义和任务调用。 1. 任务的定义 任务定义的语法如下: task 任务名 ; 端口与类型说明 局部变量说明 begin 行为语句1; 行为语句2; …… 行为语句n; end endtask 其中:
您可能关注的文档
- unit5新视野大学英语.ppt
- UNIT6英国资产阶级革命X.pptx
- Unit7 period 2课件新目标七年级上.ppt
- Unit7you may call him课件.ppt
- unit8 let's go to the park 课件.ppt
- unit_2_This_is_my_sister_seciton_B_1a-1c_教案.ppt
- Unit_4_I_want_to_be_an_actor说课.ppt
- Unit_5考古.ppt
- UNIT_6_IBM与ORACLE的数据仓库实现方法.ppt
- unit_6__第二课时.ppt
- 受助感恩励志笃行班会.pptx
- 2025年网络安全行业新型威胁应对策略:物联网安全防护报告.docx
- 2025年煤炭清洁化利用的关键技术突破与产业升级路径研究报告.docx
- 2025年康复医疗服务连锁化运营模式下的市场趋势预测与应对策略.docx
- 2025-2026学年高中物理选修1-1粤教版教学设计合集.docx
- 星巴克2025年夏季新品上市体验营销效果评估报告.docx
- 2025年跨境电商独立站季节性销售预测报告:数据分析工具在销售预测中的应用.docx
- 元宇宙教育场景下师生互动教学资源开发与利用策略研究.docx
- 2025年民办学校招生成本效益分析报告.docx
- 2025-2026学年高中物理选修3-1沪科版教学设计合集.docx
最近下载
- 冠心病合并房颤的抗凝抗栓策略.ppt VIP
- 副高中医护理试题及答案.docx
- 员工职业发展通道设计课程.ppt VIP
- 注册安全工程师中级其他安全生产专业实务(电气安全)模拟试卷3.pdf VIP
- VDI2230高强度螺栓连接的系统计算中文版.pdf VIP
- 汉威KB500可燃气体报警控制器使用说明书.pdf
- 2024-2030全球摩托车和机车头盔行业调研及趋势分析报告.docx
- 2024-2030全球全面式蓝牙摩托车头盔行业调研及趋势分析报告.docx
- 神木市东安煤业有限公司煤炭资源整合项目(0.60Mt_a)(重大变动)环境影响报告书.pdf VIP
- (高清版)DB11∕T 1702-2019 生活饮用水样品采集技术规范.pdf VIP
文档评论(0)