- 1、本文档共99页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
verilog条件语句课件例程.ppt
编译的警告 Warning: Design contains 2 input pin(s) that do not drive logic Warning: No output dependent on input pin clk1 Warning: No output dependent on input pin clk2 module shift_regester(data_in,data_out,clk1); input data_in,clk1; output data_out; reg[1:7] reg_data; reg data_out; integer i; always@( negedge clk1 ) begin data_out=reg_data[1]; for(i=1;i=7;i=i+1) reg_data[i]=reg_data[i+1]; reg_data[7]=data_in; end endmodule 6.5 条件语句 与常用的高级程序语言一样,为了描述较为复杂 的时序关系,Verilog HDL提供了条件语句供分支判 断时使用。在可综合风格的Verilog HDL模型中常用 的条件语句有if…else和case…endcase两种结构, 用法和C程序语言中类似。两者相较,if…else用于 不很复杂的分支关系,实际编写可综合风格的模 块、特别是用状态机构成的模块时,更常用的是 case…endcase风格的代码 If_else语句 Case语句 6.5.1 if-else条件语句 if-else条件分支语句的作用是根据指定的判断条件是否满足来 确定下一步要执行的操作。它在使用时可以采用如下三种形式: (1) 使用形式1: if ( 条件表达式 ) 语句或语句块; 在if-else条件分支语句的这种使用形式中没有出现else项 ●这种情况下条件分支语句的执行过程将是: 如果指定的“条件表达式”成立(也就是这个条件表达式的 逻辑值为“1”),则执行条件分支语句内给出的“语句或语句块”, 然后退出条件分支语句的执行。 如果“条件表达式”不成立(也就是条件表达式的逻辑值为 “0”、“x”或“z”时),则不执行条件分支语句内给出的“语句或语句 块”,而是直接退出条件分支语句的执行。 一条没有else选项的if语句映射到硬件上,形成的是一个锁存器 例如下面这条条件分支语句: if(enable == 1) out = data_in; 在执行时就会根据条件表达式“enable==1”是否成立来决定 是否执行赋值语句“out=data_in;”:如果enable取值为 “1”,则赋值语句得到执行,输出信号out得到data的值;如 果enable的值为“0”、“x”或“z”(取值不为“1”),则不 执行指定的赋值语句,输出信号out保持原有值不变。 (2) 使用形式2: if ( 条件表达式 ) 语句或语句块1 else 语句或语句块2 这种形式的条件分支语句将以如下方式得到执行: ? 如果指定的“条件表达式”成立(也就是这个条件 表达式的逻辑值为“1”),则执行条件分支语句第一行所指 定的“语句或语句块1”,然后结束条件分支语句的执行。 ? 如果“条件表达式”不成立,则执行由条件分支语 句内第二行的else项所指定的“语句或语句块2”,然后结 束条件分支语句的执行。 ????一条带有else选项的if语句映射到硬件上,通常形成的是一个多路选择器(MUX) 例如,下面这条条件分支语句: if(select==1) out=input1; else out=input0; 在执行时会根据条件表达式“select==1”是否成立来 决定执行两条过程赋值语句中的哪一条。如果select 取值为“1”,则第一行if这一项所指定的赋值语句 “out=input1;”得到执行,输出信号out得到input1的 取值;如果select取值不为“1”(取值为“0”、“x”或 “z”),则执行第二行else项所指定的赋值语句 “out=input0;”,输出信号out将得到input0的取值。 说明 (1)三种形式的if语句中在if后面都有“表达式”,一般为逻辑表达式或关系表达式。系统对表达式的值进行判断,若为0,x,z,按“假”处理,若为1,按“真”处理,执行指定的语句。 (2)第二、第三种形式的if语句中,在每个else前面有一分号,整个语句结束处有一分号。 例如: If (ab) out1 =int1; else out1 =int2; 分号是Verilo
文档评论(0)