- 1、本文档共219页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第三讲verilog的基本语法
3.7 条件语句和循环语句 If语句用于条件选择,其语法如下 if (条件表达式1) begin … …. end else if(条件表达式2) begin … …. end else ………. * if语句 如果存在一个else分支,那么这个分支被执行 if(Sum60) begin Grade=C; Total_C=Total_C+1; end else if (Sum75) begin Grade=B; Total_B=Total_B+1; end else begin Grade=A; Total_A=Total_A+1; end * if语句的嵌套 if(Ctrl) begin if(~Ctrl2) Mux=4d2; else Mux=4d1; end else begin if(~Ctrl2) Mux=4d8; else Mux=4d4; end * case 语句 case语句是一个多路条件分支形式,其语法如下: case(case_expr) case_item_expr{,case_item_expr}: procedural_statement ... ... [default:procedural_statement] endcase case语句首先对条件表达式case_expr求值,然后依次对各分支项求值并进行比较 第一个与条件表达式值相匹配的分支中的语句被执行。 可以在1个分支中定义多个分支项;这些值不需要互斥。 缺省分支(default)覆盖所有没有被分支表达式覆盖的其他分支。 * case 语句 parameter MON=0, TUE=1, WED=2, THU=3, FRI=4, SAT=5, SUN=6; reg [0:2] Day; integer Pocket_Money; case(Day) TUE : Pocket_Money=6; //分支1 MON, WED: Pocket_Money=2; //分支2 FRI, SAT, SUN: Pocket_Money=7; //分支3 default: Pocket_Money=0; //分支4。 endcase 如果Day的值为MON或WED,就选择分支2。分支3覆盖了值FRI、SAT和SUN,而分支4 覆盖了余下的所有值,即THU和位向量111。 * case 语句实例 module ALU(A, B, OpCode, Z); input [3:0] A,B; input [1:2] OpCode; output [7:0] Z; reg [7:0] Z; parameter ADD_INSTR=2b10, SUB_INSTR=2b11, MULT_INSTR=2b01, DIV_INSTR=2b00; always @(A or B or OpCode) case(OpCode) ADD_INSTR: Z=A+B; SUB_INSTR: Z=A-B; MULT_INSTR: Z=A*B; DIV_INSTR: Z=A/B; default : Z=A+B; endcase endmodule * case语句与综合电路 * case 分支长度不同时先统一长度 如果case表达式和分支项表达式的长度不同情况下,在进行任何比较前所有的case表达式都统一为这些表达式的最长长度。 case(3b1012) 3b100: $display(First branch taken!); 4b0100: $display(Second branch taken!); 5b10100: $display(Third branch taken!); default: $display(Default branch taken!); endcase 因为第3个分支项表达式长度为5位,所有的分支项表达式和条件表达式长度统一为5。当计算3 b1012时,结果为5 b10100,并选择第3个分支。 * case语句中的无关位 在casez语句中,出现在case表达式和任意分支项表达式中的值z被认为是无关值,即那个位被忽略(不比较)。 在casex语句中,值x和z都被认为是无关位。 casex( Mask ) 4b1??? : Dbus[4] = 0; 4b01?? : Dbus[3] = 0; 4b001? : Dbus[2] = 0; 4b0001 : Dbus[1] = 0; defalut : Dbus=4’hf; endcase * 条件语句的优先级 case语句和if…else嵌套描述结构就有很大的区别。在Verilog语法中,if…else if…else语句
您可能关注的文档
最近下载
- 销售行业述职报告5篇.docx VIP
- 英语必备词汇(思维导图版).doc VIP
- 汽油、柴油仓储及50万吨_年甲醇汽油调配添加剂调制项目可行性研究报告中润油新能源股份有限公司.doc VIP
- GB T 3810.14-2016 陶瓷砖试验方法第14部分 耐污染性的测定.docx VIP
- AIAG 第三版APQP产品质量先期策划培训教程-学员版.pdf VIP
- 文件检验相关知识试卷涵盖检验准备鉴定等内容.doc
- 人教版初中化学知识总结.pdf VIP
- 2024江西工业职业技术学院数学专任教师岗位招聘3人笔试备考题库及答案解析.docx VIP
- 工业碳排放绩效研究.pptx VIP
- 瓦楞纸板箱生产环境质量控制手册与程序汇编指南.docx VIP
文档评论(0)