verilog 条件语句例程.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
verilog 条件语句例程

  【例】同时由两个时钟沿:clk1上升沿和clk2下降沿进行控制的8位移位寄存器。 module 8bits_shift_register(d_in,d_out,clk1,clk2); input clk1,clk2,d_in; output d_out; reg d_out; //d_out保存1bit reg[1:7] data; // reg[1:7]保存其余7bits reg[1:4] i ; // i用于循环计数 always @( posedge clk1 or negedge clk2) begin d_out=data[1]; for ( i=1;i7;i=i+1) data[i]=data[i+1]; data[7]=d_in; end endmodule;编译的警告;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 条件语句;6.5.1 if-else条件语句 ;例如下面这条条件分支语句: 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的取值。 ;  (3) 使用形式3: if (条件表达式1) 语句或语句块1 else if (条件表达式2) 语句或语句块2 …… else if (条件表达式n) 语句或语句块n else ? 语句或语句块n+1   在这种使用形式中一共出现了n+1个条件分支项,其中每个分支项都指定了当该分支项的条件满足时所要执行的操作。;  在执行这种形式的if-else条件分支语句时,将按照各分支项的排列顺序对各个条件表达式是否成立作出判断,当遇到某一项的条件表达式成立时,就执行这一项所指定的“语句或语句块”。比如假设“条件表达式m”成立,那么就执行“语句或语句块m”。   如果所有的条件表达式都不成立,则执行最后的else项(这一项没有给出条件表达式)所指定的操作(语句或语句块n+1)。   这种形式的if-else条件分支语句实现了一种多路分支选择控制。   比如在例6-21给出的模块中就使用了这种形式的if-else条件分支语句。;  【例6-21】第三种形式的if-else条件分支语句。 module sel_from_three(q,sela,selb,a,b,c ); input sela,selb,a,b,c; output q; reg q; always @(sela or

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档