- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如果多个不同的状态值有相同的执行语句,可以用逗号将各个状态隔开。 例3-43: case(select) 2b00 : data_out = data_in1; 2b01 : data_out = data_in2; 2b10 : data_out = data_in3; 2b11 : data_out = data_in4; 2b0x,2bx0,2b1x,2bx1,2bxx: data_out = 4bxxxx; 2b0z,2bz0,2b1z,2bz1,2bzz: data_out = 4bzzzz; default :$display(the control signal is invalid); endcase 建议在case语句中最好加入default分支 3.4.5 循环语句 循环语句只能在initial,always块中使用。 下面介绍常用的循环句:for、forever、repeat和while * for语句 语句格式: for(表达式1;表达式2;表达式3) 语句; * 初始条件表达式 循环终止条件 改变循环控制变量的赋值语句 语句执行过程 例3-44:用for语句对存储器组进行初始化。 reg[7:0] my_memory[511:0]; integer i; initial begin for(i=0; i512; i=i+1) my_memory[i]= 8’b0; end * 例: initial begin for(i=0;i32;i=i+2) stage[i] = 0; for(i=1;i32;i=i+2) state[i]=1; end * 实现了: 所有偶元素初始化为0 所有奇元素初始化为1 for 循环一般用于具有固定开始和结束条件的循环,如果只有一个执行循环的条件,最好还是用while循环 * while语句 语句格式: while(条件表达式) 语句 语句执行过程 先求解条件表达式的值,如果值为真(等于1),执行内嵌的执行语句(组),否则结束循环。 如果一开始就不满足条件表达式,则循环 不执行。 * 例3-45:用while语句求从1加到100的值,加法完成后打印结果 module count(clk, data_out); input clk; output[12:0] data_out; reg [12:0] data_out; integer j; initial //data_out和 j赋初值为0 begin data_out = 0; j = 0; end always @ (posedge clk) begin while(j=100) begin data_out = data_out + j; j= j+1; end $display (the sum is %d,j= %d,data_out,j); end endmodule 语句格式: forever 语句; 表示永久循环,无条件地无限次执行其后的语句,相当于while(1),直到遇到系统任务$finish或$stop 不能独立写在程序中,必须写在initial 结构中。 * forever语句 例3-46:使用forever语句生成一个周期为20个时间单位的时钟信号。 reg clock; initial begin clock = 0; forever #10 clock = ~ clock; end * repeat语句 语句格式: repeat(表达式) 语句 repeat语句执行其表达式所确定的固定次数的循环操作。 其表达式通常是常数,也可以是一个变量,或者一个信号,如果是变量或者信号,循环次数是循环开始时刻变量或信号的值,而不是循环执行期间的值 * module mux(data_in1,data_in2,data_out); input [3:0] data_in1,data_in2; output[7:0] data_out; reg [7:0] data_out; reg[7:0] data_in1_shift,data_in2_shift; initial begin data_in1_shift = data_in1;da
文档评论(0)