您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 语言学 > 硬件描算语言chapter1
8/13/20201MicroelectronicsSchoolXidianUniversityVerilogHDL数字集成电路高级程序设计蔡觉平参考书目教材:《VerilogHDL数字集成电路高级程序设计》蔡觉平,西安电子科技大学出版社2015参考教材:《VerilogHDL高级数字设计》电子工业出版社,MichaelD.Ciletti著,张雅绮译,2008年.6《VerilogHDL数字设计与综合》电子工业出版社,SamirPalnitkar,夏宇闻等译,2009.8《VERILOG数字系统设计--RTL综合.测试平台与验证》电子工业出版社,ZainalabedinNavabi,李广军等译,2007《硬件描述语言Verilog》清华大学出版社,Thomas&Moorby,刘明业等译,2001.8第1章VerilogHDL数字集成电路设计方法概述8/13/20203MicroelectronicsSchoolXidianUniversity1.1数字集成电路的发展和设计方法的演变198019902000201020151980199020002010201510410410101010109109106106105105107107108108年份年份晶体管数晶体管数如今集成度已达到80亿图1.1-1数字集成电路复杂度趋势以元件为基础以单元为基础以RTL综合为基础以IP为基础20世纪70年代20世纪80年代20世纪90年代当前多块印刷版系统单片系统SoC、SIP图1.1-2数字集成电路设计方法的演变1.2VerilogHDL的发展和国际标准8/13/20205MicroelectronicsSchoolXidianUniversityVerilogHDL-XL诞生VerilogHDL公开发表Cadence公司购买Verilog版权有关VerilogHDL的全部权利移交OVI组织20世纪80年代1989年1990年1990年VerilogIEEE1364-1995标准公开发表1995年SystemVerilogIEEE1800-2005标准公开发表2005年VerilogIEEE1364-2005标准公开发表2005年VerilogIEEE1364-2001标准公开发表2001年模拟和数字都适用的Verilog标准公开发表1999年OVI组织提出了用来描述模拟电路的VerilogA1996年SystemVerilogIEEE1800-2009标准公开发表2009年图1.2-1VerilogHDL的发展历史1.3VerilogHDL语言的设计思想和可综合特性8/13/20206MicroelectronicsSchoolXidianUniversity例1.3-1:用VerilogHDL设计模256(8bits)计数器。(1)可综合程序描述方式modulecounter(clk,clr,cnt);inputclk,clr;output[7:0]cnt;reg[7:0]cnt;always@(posedgeclkornegedgeclr)if(!clr)cnt=8'b00000000;elsecnt=cnt+1'b1;endmodule(2)常见的错误描述方式modulecounter(clk,clr,cnt);inputclk,clr;output[7:0]cnt;reg[7:0]cnt;integeri;always@(posedgeclkornegedgeclr)beginif(!clr)cnt=8'b00000000;elsefor(i=0;i=255;i=i+1)cnt=cnt+1'b1;endendmoduleVerilogHDL的电路描述方式具有多样性8/13/20207MicroelectronicsSchoolXidianUniversity例1.3-2:用VerilogHDL设计数字多路选择器(1)采用真值表形式的代码:moduleMUX(data,sel,out);input[3:0]data;input[1:0]sel;outputout;regout;always@(dataorsel)case(sel)2'b00:out=data[0];2'b01:out=data[1];2'b10:out=data[2];2'b11:out=data[3];endcaseendmodule(2)采用逻辑表达式形式的代码:moduleMUX(data,sel,out);input[3:0]data;input[1:0]sel;outputout;wirew1,w2,w3,w4;assignw1=(~sel[1])&(~sel[0])&data[0];assignw2=(~sel[1])&sel[0]&data[1];assignw3=sel[1]&(~sel[0])&data[2];assignw4=sel[1]&sel[0]&data[3];assignout=w1|w2|w3|w4;endmoduleVerilogHDL的电路描述方式具有多样性8/13/20208MicroelectronicsSchoolXidianUniversity(3)采用结构性描述的代码:moduleMUX(data,sel,out);input[3:0]data;input[1:0]sel;outputout;wirew1,w2,w3,w4;notU1(w1,sel[1]);U2(w2,sel[0]);andU3(w3,w1,w2,data[0]);U4(w4,w1,sel[0],data[1]);U5(w5,sel[1],w2,data[2]);U6(w6,sel[1],sel[0],data[3]);orU7(out,w3,w4,w5,w6);endmodule1.4VerilogHDL在数字集成电路设计中的优点8/13/20209MicroelectronicsSchoolXidianUniversity采用VerilogHDL语言进行数字集成电路设计的优点在于:(1)VerilogHDL在硬件描述方面具有效率高、灵活性强的优势;(2)代码易于维护,可植性强;(3)测试和仿真功能强大。outoutaaccbb原理图方式:原理图方式:VerilogHDL描述方式:moduleand1(a,b,c,out);inputa,b,c;outputout;wireout;and(out,a,b,c);endmoduleVerilogHDL描述方式:moduleand1(a,b,c,out);inputa,b,c;outputout;wireout;and(out,a,b,c);endmoduleout[7:0]out[7:0]a[7:0]a[7:0]c[7:0]c[7:0]b[7:0]b[7:0]原理图方式:原理图方式:VerilogHDL描述方式:moduleand8(a,b,c,out);input[7:0]a,b,c;output[7:0]out;wire[7:0]out;and(out,a,b,c);endmoduleVerilogHDL描述方式:moduleand8(a,b,c,out);input[7:0]a,b,c;output[7:0]out;wire[7:0]out;and(out,a,b,c);endmodule(a)1位总线与逻辑(b)8位总线与逻辑8/13/202010MicroelectronicsSchoolXidianUniversityDQQDQQDQQDQQq[0]q[1]q[2]q[3]q[0]q[1]q[2]q[3]clkclkclrclrdd原理图方式:原理图方式:VerilogHDL描述方式:moduleshift_left4(clk,clr,d,q);inputclk,clr,d;output[3:0]q;reg[3:0]q;always@(posedgeclkorposedgeclr)beginif(!clr)q=4'b0000;elseq={q[2:0],d};endendmoduleVerilogHDL描述方式:moduleshift_left4(clk,clr,d,q);inputclk,clr,d;output[3:0]q;reg[3:0]q;always@(posedgeclkorposedgeclr)beginif(!clr)q=4'b0000;elseq={q[2:0],d};endendmodule(a)4位左移移位寄存器8/13/202011MicroelectronicsSchoolXidianUniversityDQQDQQDQQDQQq[0]q[1]q[2]q[3]q[4]q[5]q[6]q[7]q[0]q[1]q[2]q[3]q[4]q[5]q[6]q[7]clkclkclrclrddDQQDQQDQQDQQ原理图方式:原理图方式:VerilogHDL描述方式:moduleshift_left8(clk,clr,d,q);inputclk,clr,d;output[7:0]q;reg[7:0]q;always@(posedgeclkorposedgeclr)beginif(!clr)q=8'b0000;elseq={q[6:0],d};endendmoduleVerilogHDL描述方式:moduleshift_left8(clk,clr,d,q);inputclk,clr,d;output[7:0]q;reg[7:0]q;always@(posedgeclkorposedgeclr)beginif(!clr)q=8'b0000;elseq={q[6:0],d};endendmodule(b)8位左移移位寄存器1.5功能模块的可重用性8/13/202012MicroelectronicsSchoolXidianUniversity由于模块的可重用性对于硬件电路开发效率的提高至关重要。因此业界提出了数字集成电路的软核、硬核和固核的概念。.(1)“软核”(SoftCore)一般是指经过功能验证、5000门以上的可综合VerilogHDL或VHDL模型;(2)“固核”(FirmCore)通常是指在ASIC和FPGA器件上,经过综合验证、大于5000门以上的电路网表文件;(3)“硬核”(HardCore)通常是指在ASIC器件上,经过验证正确的、大于5000门以上的电路结构版图掩模。8/13/202013MicroelectronicsSchoolXidianUniversityIPCore1IPCore1IPCore2IPCore2IPCorenIPCoren......芯片芯片功能模块1功能模块1功能模块2功能模块2功能模块n功能模块n......通用控制要求通用控制要求通用配置SoC通用配置SoC图1.5-1采用IP模式进行开发的SoC设计DSPCoreMCUCoreUSB接口RAM/ROMI/O单元A/DD/A图1.5-2SOC示意图1.6VerilogHDL在数字集成电路设计流程中的作用8/13/202014MicroelectronicsSchoolXidianUniversity系统建模RTL编码功能验证时序验证总体方案VerilogHDL应用范围综合综合物理综合/布局布线物理综合/布局布线物理验证物理验证原型建立和测试工艺实现工艺实现图1.6-1数字集成电路设计流程
本文标题:硬件描算语言chapter1
链接地址:https://www.777doc.com/doc-6769973 .html