- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例9.4-2: Verilog HDL串行语句块中并行化描述语句。 (1)代码1。 module paralle1(clk,in1,in2,in3,in4,out); input clk,in1,in2,in3,in4; output out; reg d1,d2,out; always @(posedgeclk) begin d1=in1in2; d2=in3d1; out=in4|d2; end endmodule (2)代码2。 module paralle1(clk,in1,in2,in3,in4,out); input clk,in1,in2,in3,in4; output out; reg d1,d2,out; always @(posedgeclk) begin out=in4|d2; d2=in3d1; d1=in1in2; end endmodule 9.5 非阻塞赋值语句和流水线设计 (a)无流水线 (b)穿插一级流水线 图9.5-1 流水线穿插示意图 (a)时序 (b)时序 图9.5-2 流水线时序示意图 例9.5-1:乘加器电路。 (1)无流水线。 module muti_add(clk,in1_a,in1_b,in2_a,in2_b,in3_a,in3_b,in4_a,in4_b,out); input clk; input [3:0] in1_a,in1_b,in2_a,in2_b,in3_a,in3_b,in4_a,in4_b; output [8:0] out; reg [8:0]out; reg [6:0] mult1,mult2,mult3,mult4; reg [7:0]adder1,adder2; always@(posedgeclk) begin multi1=in1_a*in1_b; multi2=in2_a*in2_b; multi3=in3_a*in3_b; multi4=in4_a*in4_b; adder1= multi1+multi2; adder2= multi3+multi4; out=adder1+adder2; end endmodule (2)穿插两级流水线。 module muti_add(clk,in1_a,in1_b,in2_a,in2_b,in3_a,in3_b,in4_a,in4_b,out); input clk; input [3:0] in1_a,in1_b,in2_a,in2_b,in3_a,in3_b,in4_a,in4_b; output [8:0] out; reg [8:0]out; reg [6:0]mult1,mult2,mult3,mult4; reg [7:0]adder1,adder2; always@(posedgeclk) begin multi1=in1_a*in1_b; multi2=in2_a*in2_b; multi3=in3_a*in3_b; multi4=in4_a*in4_b; adder1= multi1+multi2; adder2= multi3+multi4; out=adder1+adder2; end endmodule 9.6 循环语句在可综合设计中的使用 module count32(clk,q); input clk; output [4:0] q; reg [4:0]q; always @(posedge clk) for(q=0;q32;) q=q+1; endmodule Verilog HDL语言在可综合设计时建议不使用循环赋值语句。但是,是不是所有循环语句都是不可综合的? 果希望用循环次数作为信号,是不可以综合的;如果循环次数仅是一个用来标识的变量,没有信号的这个概念,那么是可以综合的。 module shift8_right(clk,shift_in,shift_out); input clk,shift_in; output shift_out; reg [7:0]q; integer i: assign shift_out =q[0] always @(posedge clk) begin for(i=0;i7;i++) q[i]=q[i+1]; q[7]=shift_in; end endmodule 例9.6-1:循环语句设计模32计数器(错误程序)。 例9.6-2:循环语句设计8bits右移位寄存器。 9.7 时间优先级的概念 9.7.1 if语句和case语句的优先级 module singl
您可能关注的文档
- 通信与网络集成教材.ppt
- 数学建模-多变量教材.ppt
- 物质的分离和提纯教材.ppt
- 通信原理5章教材.ppt
- 物质的分离与提纯(用)教材.ppt
- 数学建模-模糊数学理论教材.ppt
- 物质的分离与提纯2教材.ppt
- 数学建模神经网络建模教材.ppt
- 数学建模-物理模型教材.ppt
- 通信原理Chp1教材.ppt
- 2024高考物理一轮复习规范演练7共点力的平衡含解析新人教版.doc
- 高中语文第5课苏轼词两首学案3新人教版必修4.doc
- 2024_2025学年高中英语课时分层作业9Unit3LifeinthefutureSectionⅢⅣ含解析新人教版必修5.doc
- 2024_2025学年新教材高中英语模块素养检测含解析译林版必修第一册.doc
- 2024_2025学年新教材高中英语单元综合检测5含解析外研版选择性必修第一册.doc
- 2024高考政治一轮复习第1单元生活与消费第三课多彩的消费练习含解析新人教版必修1.doc
- 2024_2025学年新教材高中英语WELCOMEUNITSectionⅡReadingandThi.doc
- 2024_2025学年高中历史专题九当今世界政治格局的多极化趋势测评含解析人民版必修1.docx
- 2024高考生物一轮复习第9单元生物与环境第29讲生态系统的结构和功能教案.docx
- 2024_2025学年新教材高中英语UNIT5LANGUAGESAROUNDTHEWORLDSect.doc
文档评论(0)