- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 Verilog设计的层次与风格;主要内容;Verilog设计的描述风格 ;在Verilog程序中可通过如下方式描述电路的结构 ◆ 调用Verilog内置门元件(门级结构描述) ◆ 调用开关级元件(晶体管级结构描述) ◆ 用户自定义元件UDP(也在门级) ◆ 在多层次结构电路的设计中,不同模块间的调用也属于结构描述;Verilog的 内置门元件 ;门元件的调用;门元件的调用;门级结构描述;【例7.1】 调用门元件实现的4选1 MUX module mux4_1a(out,in1,in2,in3,in4,s0,s1); input in1,in2,in3,in4,s0,s1; output out; wire s0_n,s1_n,w,x,y,z; not (sel0_n,s0),(s1_n,s1); and (w,in1,s0_n,s1_n),(x,in2,s0_n,s1), (y,in3,s0,s1_n),(z,in4,s0,s1); or (out,w,x,y,z); endmodule;7.3 行为描述 ;行为级描述;【例7.2】 用case语句描述的4选1 MUX module mux4_1b(out,in1,in2,in3,in4,s0,s1); input in1,in2,in3,in4,s0,s1; output reg out; always@(*) //使用通配符 case({s0,s1}) 2b00:out=in1; 2b01:out=in2; 2b10:out=in3; 2b11:out=in4; default:out=2bx; endcase endmodule;采用行为描述方式时需注意;7.4 数据流描述 ;【例7.4】 数据流描述的4选1 MUX module mux4_1c(out,in1,in2,in3,in4,s0,s1); input in1,in2,in3,in4,s0,s1; output out; assign out=(in1 ~s0 ~s1)|(in2 ~s0 s1)| (in3 s0 ~s1)|(in4 s0 s1); endmodule; 数据流描述 ;7.5 不同描述风格的设计 ;【例7.8】调用门元件实现的1位全加器 ;数据流描述的1位全加器;采用层次化方式设计1位全加器 ;【例7.9】 用模块例化方式设计的1位全加器 module full_add(ain,bin,cin,sum,cout); input ain,bin,cin; output sum,cout; wire d,e,f; //用于内部连接的节点信号 half_add u1(ain,bin,e,d); //半加器模块调用,采用位置关联方式 half_add u2(e,cin,sum,f); or u3(cout,d,f); //或门调用 endmodule module half_add(a,b,so,co); //半加器模块 input a,b; output so,co; assign co=ab; assign so=a^b; endmodule;4位加法器设计;【例7.10】 module add4_1(sum,cout,a,b,cin); output [3:0] sum; output cout; input [3:0] a,b;input cin; wire cin1,cin2,cin3; full_add1 f0(a[0],b[0],cin,sum[0],cin1); full_add1 f1(a[1],b[1],cin1,sum[1],cin2); full_add1 f2(a[2],b[2],cin2,sum[2],cin3); full_add1 f3(a[3],b[3],cin3,sum[3],cout); endmodule;module add8_gene #(parameter SIZE=8) (input cin, input[SIZE-1:0] a,b, output[SIZE-1:0] sum, output cout); wire[SIZE:0] c; assign c[0]=cin; generate genvar i; for(i=0;iSIZE;i=i+1) begin: add full_add1 fi(a[i],b[i],c[i],sum[i],c[i+1]); end endgenerate assign cout=c[SIZE]; endmodule;7.6 多层次结构电路的设计;1.图形与文本混合设计 ;2. 文本描
有哪些信誉好的足球投注网站
文档评论(0)