版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、片上系统片上系统(SOC)技术技术秦秦 华华 旺旺 南 京 理 工 大 学 自 动 化 学 院南 京 理 工 大 学 自 动 化 学 院主要内容主要内容nSOC概述概述n硬件描述语言硬件描述语言Verilog HDLnQuartus II开发环境开发环境课程安排课程安排n24学时的理论课学时的理论课n8学时的实验课学时的实验课n开卷考试开卷考试n考核内容:考核内容:PPT中的知识点中的知识点n暂无教材暂无教材第一章:第一章:SOC概述概述nSOC的定义的定义nSOC的历史、现状与发展趋势的历史、现状与发展趋势nSOC的基本概念的基本概念SOC的定义的定义 SOC:片上系统,或系统级芯片,即在:
2、片上系统,或系统级芯片,即在一个芯片上集成一个计算机系统。一个芯片上集成一个计算机系统。SOC概述概述SOC的发展历史的发展历史n电子管电子管n晶体管晶体管n集成电路集成电路 工艺:工艺:0.25m以下,进入深亚微米阶段以下,进入深亚微米阶段 规模:超大规模(规模:超大规模(VLSI)和特大规模()和特大规模(GSI)nSOCSOC概述概述SOC的特性的特性n复杂系统功能复杂系统功能n超深亚微米工艺超深亚微米工艺n内嵌一个或数个内嵌一个或数个CPU或或DSPn功能可编辑功能可编辑n复用复用IP核核SOC概述概述SOC的国内现状的国内现状地域分布地域分布n长江三角洲长江三角洲n京津京津n珠江三角
3、洲珠江三角洲产业产业nIC设计设计n芯片加工芯片加工n后工序后工序SOC概述概述SOC的应用的应用n无线无线/有线通信有线通信n多媒体多媒体n工业控制工业控制n交通运输交通运输SOC概述概述SOC的分类的分类nCSOC:CPU+可重构处理构件,研究机构主导可重构处理构件,研究机构主导nSOPC:基于:基于FPGA,可编程,可编程SOC,小批量,小批量nASIC SOC:专用集成电路,大批量,主流:专用集成电路,大批量,主流SOC概述概述ASIC(专用集成电路专用集成电路)的分类的分类n全定制:设计者完成所有电路的设计全定制:设计者完成所有电路的设计n半定制:利用库里的标准逻辑单元设计半定制:利
4、用库里的标准逻辑单元设计SOC概述概述著名著名ASIC厂商厂商nTI nIBMnSonynSTnToshibanNEC(日电)(日电)nFujitsunRenesas(瑞萨)(瑞萨)nLSInSamsungSOC概述概述SOPC 著名厂商(基于著名厂商(基于FPGA)nXilinxnAlteranLatticenActelnQuiklogicnCypressSOC概述概述可编程器件可编程器件nPLD (Promrammable Logic Device)nCPLD (Complex Promrammable Logic Device)nFPGA (Field Programmable Gate
5、 Array)SOC概述概述CPLD与与FPGA的区别的区别nFPGA的集成度比的集成度比CPLD高,高,FPGA一般是几万几百万逻辑一般是几万几百万逻辑单元,单元,CPLD一般是几千几万逻辑单元;一般是几千几万逻辑单元;nCPLD更适合完成各种算法和组合逻辑,更适合完成各种算法和组合逻辑,FPGA更适合于完更适合于完成时序逻辑;成时序逻辑;nCPLD的时序延迟是均匀的和可预测的,而的时序延迟是均匀的和可预测的,而FPGA的延迟往的延迟往往不可预测;往不可预测;n在编程上在编程上FPGA比比CPLD具有更大的灵活性;具有更大的灵活性;nCPLD是粗粒结构是粗粒结构(逻辑块),延迟小,软件编译快
6、;(逻辑块),延迟小,软件编译快;nCPLD比比FPGA使用起来更方便,不需要使用起来更方便,不需要EEPROM;nCPLD的速度比的速度比FPGA快;快;nCPLD保密性更好。保密性更好。SOC概述概述SOC的关键技术的关键技术n可重用可重用IP核核n软硬件协同设计软硬件协同设计n时序分析时序分析n可测试性设计与测试验证可测试性设计与测试验证n深亚微米技术深亚微米技术n低电压、低功耗技术低电压、低功耗技术n总线构架技术总线构架技术n可靠性设计技术可靠性设计技术n特殊工艺技术特殊工艺技术SOC概述概述SOC的的IP核核 IP核,即知识产权核,即知识产权IP( Intellectual Prop
7、erty ),是指己验证的、可重利用的、,是指己验证的、可重利用的、具有某种确定功能的集成电路模块。具有某种确定功能的集成电路模块。n软核软核n硬核硬核n固核固核SOC概述概述软核软核 软核是用硬件描述语言描述的功能块,软核是用硬件描述语言描述的功能块,但但是是并不涉及用什么具体电路元件实现这些并不涉及用什么具体电路元件实现这些功能。功能。 软软IP的设计周期短,设计投入少,应用灵的设计周期短,设计投入少,应用灵活。缺点是在性能上难以获得全面优化,活。缺点是在性能上难以获得全面优化,且知识产权保护较难。且知识产权保护较难。SOC概述概述硬核硬核 在性能、功率和面积上经过优化,并映射在性能、功率
8、和面积上经过优化,并映射到特定工艺技术的功能模块。到特定工艺技术的功能模块。 硬核具有可预见性,同时还可以针对特定硬核具有可预见性,同时还可以针对特定工艺或购买商进行功耗和尺寸上的优化,工艺或购买商进行功耗和尺寸上的优化,且更易于实现版权保护。但应用灵活性和且更易于实现版权保护。但应用灵活性和可移植性较差。可移植性较差。SOC概述概述固核固核 固核是软核和硬核的折衷,是指在结构和固核是软核和硬核的折衷,是指在结构和拓扑方面针对性能和面积进行版图规划,拓扑方面针对性能和面积进行版图规划,甚至可能用某种工艺技术进行过优化的可甚至可能用某种工艺技术进行过优化的可复用模块。复用模块。SOC概述概述软硬
9、件协同设计软硬件协同设计 与传统的嵌入式系统设计方法不同,软与传统的嵌入式系统设计方法不同,软/硬件协同硬件协同设计强调软件和硬件设计开发的并行性和相互反馈,设计强调软件和硬件设计开发的并行性和相互反馈,强调利用现有资源(强调利用现有资源(I P核和软件构件),缩短系核和软件构件),缩短系统开发周期,降低系统成本,提高系统性能。统开发周期,降低系统成本,提高系统性能。n软硬件任务划分软硬件任务划分n软硬件接口定义软硬件接口定义n软硬件协同仿真和验证软硬件协同仿真和验证SOC概述概述时序分析时序分析n时钟同步时钟同步n时序预算的分级和分解时序预算的分级和分解n关键路径的特殊约束关键路径的特殊约束
10、SOC概述概述可测试性设计与测试验证可测试性设计与测试验证SOC验证工作约占整个设计工作的验证工作约占整个设计工作的70%。n测试架构测试架构n测试向量有效传递性测试向量有效传递性n测试平行化测试平行化n降低测试占用时间降低测试占用时间SOC概述概述深亚微米技术深亚微米技术 工艺加工线宽的不断减少,给电路的设计工艺加工线宽的不断减少,给电路的设计、仿、仿真带来了新的挑战,线与线的相互影响将变得真带来了新的挑战,线与线的相互影响将变得不可忽略,必须研究关键电路架构、时序收敛不可忽略,必须研究关键电路架构、时序收敛性、信号完整性、天线效应等问题。性、信号完整性、天线效应等问题。n0.80.35m称
11、为亚微米称为亚微米n0.25m及其以下称为深亚微米及其以下称为深亚微米n0.05m及其以下称为纳米及其以下称为纳米SOC概述概述低电压、低功耗技术低电压、低功耗技术 随着线宽不断缩小,电源电压也相应缩小。同随着线宽不断缩小,电源电压也相应缩小。同时随着集成度的提高,电路功耗也会相应提高,时随着集成度的提高,电路功耗也会相应提高,所以必须采取相应措施,以降低功耗。所以必须采取相应措施,以降低功耗。 芯片芯片的功耗主要由跳变功耗、短路功耗和泄漏的功耗主要由跳变功耗、短路功耗和泄漏功耗三部分组成。降低功耗的措施包括:功耗三部分组成。降低功耗的措施包括:电路电路实现工艺、输入向量控制(实现工艺、输入向
12、量控制(IVC)技术、多电压)技术、多电压技术、功耗管理技术以及软件(算法)低功耗技术、功耗管理技术以及软件(算法)低功耗利用技术等。利用技术等。SOC概述概述总线构架技术总线构架技术nIBM公司的公司的CoreConnect总线总线nARM公司的公司的AMBA总线总线nAltera公司的公司的Avalon总线总线nSilicore公司的公司的Wishbone总线总线SOC概述概述可靠性设计技术可靠性设计技术n防死锁和解锁机制防死锁和解锁机制n容错机制容错机制n故障恢复机制故障恢复机制SOC概述概述特殊工艺技术特殊工艺技术SOC概述概述 对于要求较高的电路,对于要求较高的电路,PN结隔离和挖槽
13、还结隔离和挖槽还不能达到要求,需要特殊的噪声降低和隔不能达到要求,需要特殊的噪声降低和隔离技术。离技术。 一些特殊工艺的相互兼容性,如一些特殊工艺的相互兼容性,如DRAM、Flash与与Logic工艺的兼容、数字与模拟的工艺的兼容、数字与模拟的相互兼容等。相互兼容等。EDA(电子设计自动化电子设计自动化) EDA(Electronic Design Automation) 是是以计算机为工作平台,以以计算机为工作平台,以EDA软件工具为开软件工具为开发环境,以硬件描述语言为设计语言,以可发环境,以硬件描述语言为设计语言,以可编程器件为实验载体,以编程器件为实验载体,以ASIC、SOC芯片芯片为
14、设计目标器件,以电子系统设计为应用方为设计目标器件,以电子系统设计为应用方向的电子产品自动化设计过程。向的电子产品自动化设计过程。SOC概述概述EDA的作用的作用 随着芯片规模的不断扩大,芯片内线路的随着芯片规模的不断扩大,芯片内线路的复杂程度不断增加,复杂程度不断增加,IC设计者必须在先进设计者必须在先进的的EDA工具的基础上,采用自上至下、结工具的基础上,采用自上至下、结构化设计、软硬件协同设计等方法来完成构化设计、软硬件协同设计等方法来完成SOC的系统功能设计。的系统功能设计。SOC概述概述EDA工具的主要供应商工具的主要供应商nCadence (美国)(美国)nSynopsys (美国
15、)(美国)nAvant(美国,已被(美国,已被Synopsys 收购)收购)nMagma(美国)(美国)SOC概述概述EDA工具的芯片开发步骤工具的芯片开发步骤n前端设计前端设计n后端设计后端设计n设计验证设计验证SOC概述概述前端设计前端设计 完成从芯片逻辑的概念化设计到芯片逻辑完成从芯片逻辑的概念化设计到芯片逻辑门级表示的工作。门级表示的工作。n系统级设计和分析系统级设计和分析n寄存器传输级寄存器传输级(RTL)设计和分析设计和分析n逻辑综合和优化逻辑综合和优化SOC概述概述后端设计后端设计 描述了如何使设计结构在芯片上进行物理描述了如何使设计结构在芯片上进行物理实现,尤其是芯片的硅内核和
16、库单元的布实现,尤其是芯片的硅内核和库单元的布局和布线。局和布线。n芯片布局芯片布局n布线布线SOC概述概述设计验证设计验证 保证芯片满足功能、时序、功率和其他指保证芯片满足功能、时序、功率和其他指标的要求。验证占用了整个设计时间的大标的要求。验证占用了整个设计时间的大约约70。n系统级验证系统级验证nRTL级验证级验证n逻辑门级验证逻辑门级验证n物理级验证物理级验证SOC概述概述第二章:第二章:SOC设计设计nSOC设计流程设计流程nSOC设计设计原则原则设计流程设计流程SOC设计设计设计复用的一般原则设计复用的一般原则n同步设计同步设计n存储器和混合信号设计存储器和混合信号设计n片上总线片
17、上总线n时钟分配时钟分配n清零清零/置位置位/复位信号复位信号n物理设计物理设计n可交互模块可交互模块SOC设计设计同步设计同步设计 数据只在时钟沿变化,因此指令和数据的管理数据只在时钟沿变化,因此指令和数据的管理更容易,具体措施:更容易,具体措施:n随机逻辑中使用寄存器,不用锁存器随机逻辑中使用寄存器,不用锁存器n避免使用内部脉冲发生电路避免使用内部脉冲发生电路n避免使用直接组合逻辑通道避免使用直接组合逻辑通道SOC设计设计存储器设计存储器设计 SOC中存储器一般占芯片面积的中存储器一般占芯片面积的60以上,存以上,存储器设计的注意事项:储器设计的注意事项:n存储器周边加虚拟单元,以减小其边
18、界和中心存储器周边加虚拟单元,以减小其边界和中心阵列的寄生参数诧异;阵列的寄生参数诧异;n大规模存储器放在芯片的边或角上;大规模存储器放在芯片的边或角上;n小存储器分散放置;小存储器分散放置;n小存储器用到的金属层比工艺允许的布线层少小存储器用到的金属层比工艺允许的布线层少12层,留下的金属层用来进行芯片级布线。层,留下的金属层用来进行芯片级布线。SOC设计设计混合信号设计混合信号设计 SOC中混合信号一般不超过芯片面积的中混合信号一般不超过芯片面积的5,如,如锁相环、数锁相环、数/模转换器、模模转换器、模/数转换器、温度传数转换器、温度传感器等,混合信号一般对噪声和工艺非常敏感,感器等,混合
19、信号一般对噪声和工艺非常敏感,设计的注意事项:设计的注意事项:n尽量将混合信号模块放在芯片角上尽量将混合信号模块放在芯片角上n周围加上保护环和虚拟单元周围加上保护环和虚拟单元SOC设计设计片上总线片上总线 片上总线在片上总线在SOC设计中起着极其重要的作用,设计中起着极其重要的作用,由于片上总线提供了各种核都可以连接的通用由于片上总线提供了各种核都可以连接的通用接口,因此基于总线的设计有利于管理。片上接口,因此基于总线的设计有利于管理。片上总线的设计和数据传输协议的制定应该在选定总线的设计和数据传输协议的制定应该在选定核之前就予以考虑。若在核开发完成后核之前就予以考虑。若在核开发完成后再再设计
20、设计片上总线,则容易导致数据传输机制的混乱。片上总线,则容易导致数据传输机制的混乱。SOC设计设计时钟分配时钟分配n尽可能使用同步设计尽可能使用同步设计n不同时钟域的数量越少越好不同时钟域的数量越少越好n尽可能避免使用锁存尽可能避免使用锁存n尽可能减小时钟偏斜尽可能减小时钟偏斜(在系统内不同元件处检测在系统内不同元件处检测到有效的时钟跳变沿所需的时间差异到有效的时钟跳变沿所需的时间差异)SOC设计设计清零清零/置位置位/复位信号复位信号n尽可能使用同步复位尽可能使用同步复位n文档中应对这些信号作详细说明文档中应对这些信号作详细说明SOC设计设计物理设计物理设计n版图规划版图规划n综合综合n时序
21、时序n输入输入/输出端口输出端口n确认与测试确认与测试SOC设计设计版图规划版图规划 芯片设计之初的版图规划有助于估算芯片的大芯片设计之初的版图规划有助于估算芯片的大小,以及确定是否能达到面积、时序、性能和小,以及确定是否能达到面积、时序、性能和成本的目标。成本的目标。SOC设计设计综合综合(synthesis ) 综合:将电路的高级语言描述编译生成出细节更综合:将电路的高级语言描述编译生成出细节更加丰富的低级描述。在设计之初,要对综合后的加丰富的低级描述。在设计之初,要对综合后的面积、时序和功耗制定明确的目标。面积、时序和功耗制定明确的目标。SOC设计设计时序时序 在版图设计之前,应对版图规
22、划后的块进行时在版图设计之前,应对版图规划后的块进行时序分析,在版图设计完成后,再进行时序验证。序分析,在版图设计完成后,再进行时序验证。SOC设计设计输入输入/输出端口输出端口 要对要对I/O端口进行详细定义,并合理规划其摆放端口进行详细定义,并合理规划其摆放位置,一些经验法则有:位置,一些经验法则有:n所有的电源所有的电源/地引脚应该排列在同一边地引脚应该排列在同一边n信号信号I/O排列在两个边上排列在两个边上SOC设计设计可交互模型可交互模型 设计的复用在很大程度上依赖于可交互模设计的复用在很大程度上依赖于可交互模块的质量,这些模块包括:行为模型、功块的质量,这些模块包括:行为模型、功能
23、模型、仿真模型、时序模型、版图规划能模型、仿真模型、时序模型、版图规划模型等。模型等。n尽量提高可交互模型的质量尽量提高可交互模型的质量n对模型进行加密,防止逆向工程对模型进行加密,防止逆向工程SOC设计设计第三章:第三章:IP核设计核设计n软核软核/固核的设计固核的设计n硬核的设计硬核的设计软核软核/固核特点固核特点 软核和固核是软核和固核是RTL形式的产品,易于复用且具有形式的产品,易于复用且具有较高的灵活性;但是,由于没有确定的版图,它较高的灵活性;但是,由于没有确定的版图,它们的面积、功耗和性能没有经过优化。们的面积、功耗和性能没有经过优化。 RTL:寄存器传输级,用硬件描述语言描述预
24、期寄存器传输级,用硬件描述语言描述预期的功能。与之相对应的门级则是用具体的逻辑单的功能。与之相对应的门级则是用具体的逻辑单元来描述一定的功能。元来描述一定的功能。RTL和门级是设计上的不和门级是设计上的不同阶段,同阶段,RTL经过逻辑综合后就得到门级。之所经过逻辑综合后就得到门级。之所以有以有RTL,是因为集成电路可以看作由一组寄存,是因为集成电路可以看作由一组寄存器以及寄存器之间的逻辑操作构成。器以及寄存器之间的逻辑操作构成。软核软核/固核设计固核设计软核软核/固核设计流程固核设计流程软核软核/固核设计固核设计有阴影的框表示固核所需的附加步骤有阴影的框表示固核所需的附加步骤设计说明文档设计说
25、明文档n功能要求:指定核的用途和操作功能要求:指定核的用途和操作n物理要求:指定封装、面积、功耗、工艺库等物理要求:指定封装、面积、功耗、工艺库等n设计要求:指定结构和带数据流的框图设计要求:指定结构和带数据流的框图n接口要求:指定信号名称和功能、时序图和交接口要求:指定信号名称和功能、时序图和交直流参数直流参数n测试与调试要求:指定生产测试、可测性设计测试与调试要求:指定生产测试、可测性设计方法、测试向量产生方法、故障分级等方法、测试向量产生方法、故障分级等n软件要求:指定硬件模块的软件驱动程序软件要求:指定硬件模块的软件驱动程序软核软核/固核设计固核设计产品产品nRTL代码代码n功能测试平
26、台功能测试平台n测试向量文件测试向量文件n综合的脚本文件综合的脚本文件n描述核功能的文档描述核功能的文档n工作特性工作特性n仿真结果仿真结果n门级网表(固核)(网表:雏形的电路,描述器件的连接)门级网表(固核)(网表:雏形的电路,描述器件的连接)n工艺库说明(固核)工艺库说明(固核)n时序模型(固核)时序模型(固核)n面积和功耗估计(固核)面积和功耗估计(固核)n原型样片(固核)原型样片(固核)软核软核/固核设计固核设计硬核设计特点硬核设计特点n需要物理设计需要物理设计n在面积和时序上要对特定的工艺进行优化在面积和时序上要对特定的工艺进行优化n用版图数据用版图数据(GDSII)交付交付硬核设计
27、硬核设计硬核设计中的特有问题硬核设计中的特有问题n时钟和复位信号时钟和复位信号n布线通道疏松度、引脚排列和宽长比布线通道疏松度、引脚排列和宽长比n全定制电路全定制电路n测试测试硬核设计硬核设计时钟和复位信号时钟和复位信号n具有独立于具有独立于SOC系统的时钟和复位信号系统的时钟和复位信号n硬核中的时钟和复位信号要使用缓冲器和硬核中的时钟和复位信号要使用缓冲器和最小的连线负载最小的连线负载n硬核输出端口也应有经过缓冲的时钟,用硬核输出端口也应有经过缓冲的时钟,用于和其他时钟的同步于和其他时钟的同步硬核设计硬核设计布线通道疏松度布线通道疏松度 SOC集成时,通常布线从核的上方或内部集成时,通常布线
28、从核的上方或内部穿过,为此:穿过,为此:n硬核中的布线应该有一定的疏松度硬核中的布线应该有一定的疏松度n限制核中使用的金属线层数,使之比工艺限制核中使用的金属线层数,使之比工艺允许的少一层或两层允许的少一层或两层硬核设计硬核设计引脚排列引脚排列n总线信号相邻总线信号相邻n输入的时钟和复位信号要引出输入的时钟和复位信号要引出n电源和地引脚尽量放在一边电源和地引脚尽量放在一边n基本的基本的I/O引脚引脚(USB、PCI)尽量放在一边尽量放在一边n核内部的公共电源和地线应尽量短核内部的公共电源和地线应尽量短硬核设计硬核设计宽长比宽长比 尽量使硬核的宽长比接近尽量使硬核的宽长比接近1:1或或1:2,以
29、此,以此尽量减小对尽量减小对SOC级布局的影响。级布局的影响。硬核设计硬核设计全定制电路全定制电路 有时因为性能或面积的需要,硬核内包含有时因为性能或面积的需要,硬核内包含有全定制电路模块,这种电路需要在晶体有全定制电路模块,这种电路需要在晶体管级进行仿真,这些电路的性能对工艺参管级进行仿真,这些电路的性能对工艺参数高度敏感,需要良好的文档来描述这种数高度敏感,需要良好的文档来描述这种电路的功能和实现。电路的功能和实现。硬核设计硬核设计测试测试 硬核中必须有可测试性设计硬核中必须有可测试性设计DFT(Design For Test) ,硬核的硬核的DFT设计要求在设计要求在SOC集成时产生最少
30、的约束。集成时产生最少的约束。硬核设计硬核设计硬核设计流程硬核设计流程硬核设计硬核设计系统集成系统集成n使用硬核设计使用硬核设计n使用软核设计使用软核设计n系统验证系统验证IP核设计核设计使用硬核设计使用硬核设计n功能和时序等的验证工程,占整个设计功能和时序等的验证工程,占整个设计工作量的工作量的6070n验证环境的鲁棒性验证环境的鲁棒性/完整性、设计环境完整性、设计环境的完整性的完整性/可维护性可维护性n时钟分配、电源时钟分配、电源/地以及信号的布线地以及信号的布线IP核设计核设计使用软核设计使用软核设计n可以通过参数进行配置可以通过参数进行配置n需要在目标工艺库下验证需要在目标工艺库下验证
31、IP核设计核设计系统验证系统验证n单独测试叶级单独测试叶级(leaf-level)模块的正确性模块的正确性n验证核之间的接口验证核之间的接口n软硬件协同仿真软硬件协同仿真n制造硬件原型制造硬件原型(ASIC或或FPGA)IP核设计核设计第四章:硬件描述语言第四章:硬件描述语言(HDL) 硬件描述语言硬件描述语言(HDL):用于设计硬件电:用于设计硬件电路的语言。可以通过路的语言。可以通过EDA工具的综合,工具的综合,生成数字逻辑网表,然后在一定的工艺生成数字逻辑网表,然后在一定的工艺下实现具体的电路。下实现具体的电路。常用的硬件描述语言常用的硬件描述语言nVerilog HDL (Cadenc
32、e)nVHDL (美国国防部美国国防部)nAHDL (Altera)nSystem C (Synopsys)硬件描述语言硬件描述语言Verilog HDL 在在ASIC领域,主要用领域,主要用Verilog HDL ;在在FPGA/CPLD中,中, Verilog HDL 和和VHDL 使用均很广泛。本课程主要介绍使用均很广泛。本课程主要介绍Verilog HDL。硬件描述语言硬件描述语言Verilog HDL 基础知识基础知识n词法词法n数据类型数据类型n运算符运算符n系统任务与系统函数系统任务与系统函数n编译指令编译指令硬件描述语言硬件描述语言Verilog HDL 词法词法n间隔符与注释
33、符间隔符与注释符n数值数值n字符串字符串硬件描述语言硬件描述语言间隔符与注释符间隔符与注释符间隔符:间隔符:n空格空格nTabn换行符换行符n换页符换页符注释符:注释符:n/*.*/ 为多行注释为多行注释n/为单行注释为单行注释Verilog HDL 词法词法数值数值数值有四类数值有四类状态状态值:值:n0:逻辑:逻辑0或假状态或假状态n1:逻辑:逻辑1或真状态或真状态nx:未知状态:未知状态nz:高阻态:高阻态Verilog HDL 词法词法数值数值两种数值常量:两种数值常量:n整形数整形数n实型数实型数Verilog HDL 词法词法整形数整形数格式:格式:n :位宽,可省略:位宽,可省略
34、n:固有字符:固有字符nbase_format:进制格式,二进制为:进制格式,二进制为b或或B,十进制为,十进制为d或或D,十六进制为十六进制为h或或H,八进制为,八进制为o或或OnNumber:一串数字:一串数字n位宽小于实际位数则高位被忽略;位宽大于实际位数,若最位宽小于实际位数则高位被忽略;位宽大于实际位数,若最高位是高位是0或或1则高位补则高位补0,若最高位是,若最高位是x或或z,则高位补,则高位补x或或z。n659、h837FF、o7460、4b1001、5D3、12hx、16hz、16b0001_1010_1111_1000n4af、b001、8b_0001_1010(非法非法)V
35、erilog HDL 词法词法实形数实形数十进制和科学计数法两种表示形式:十进制和科学计数法两种表示形式:n1.8、3.8e10、2.9E-9、3_2387.3398_3047n3.、.2e6(非法非法)Verilog HDL 词法词法字符串字符串 字符串是用双引号括起来的字符序列,字符串是用双引号括起来的字符序列,必须在同一行中,当必须在同一行中,当作为作为操作数时,看操作数时,看作作ASCII值序列。值序列。n“this is a string”n“print out a messagen”Verilog HDL 词法词法Verilog HDL 数据类型数据类型n物理数据类型:与具体的硬件
36、电路对应物理数据类型:与具体的硬件电路对应n抽象数据类型:不与具体的硬件电路对应抽象数据类型:不与具体的硬件电路对应硬件描述语言硬件描述语言物理数据类型物理数据类型n连线型连线型n寄存器型寄存器型 这两种类型的变量定义时均需要设置位这两种类型的变量定义时均需要设置位宽,缺省时默认为宽,缺省时默认为1。变量的每一位可。变量的每一位可以取以取0、1、x或或z。Verilog HDL 数据类型数据类型连线型数据连线型数据 连线型数据对应的是硬件电路中的物理连线型数据对应的是硬件电路中的物理信号连线,没有电荷保持作用信号连线,没有电荷保持作用(trireg除外除外),必须有驱动源驱动,有两种驱,必须有
37、驱动源驱动,有两种驱动方式:动方式:n把它连接到一个门或模块的输出端把它连接到一个门或模块的输出端n用连续赋值语句用连续赋值语句assign对其进行对其进行赋值赋值Verilog HDL 数据类型数据类型连线型数据列表连线型数据列表Verilog HDL 数据类型数据类型连线型数据连线型数据功能描述功能描述wire, tri两种常见类型两种常见类型(wire:连线;连线;tri:三态:三态线,有多个驱动源驱动时一般用线,有多个驱动源驱动时一般用tri,二者用法一致二者用法一致)wor, trior多重驱动时具有线或特性多重驱动时具有线或特性wand, triand多重驱动时具有线与特性多重驱动
38、时具有线与特性trireg具有电荷保持特性具有电荷保持特性tri1上拉电阻上拉电阻tri0下拉电阻下拉电阻supply1电源线,逻辑电源线,逻辑1supply0电源线,逻辑电源线,逻辑0寄存器型数据寄存器型数据 寄存器型数据对应的是具有状态保持作用寄存器型数据对应的是具有状态保持作用的硬件电路元件,如触发器、锁存器等。的硬件电路元件,如触发器、锁存器等。n关键字为关键字为regn未初始化时为未知状态未初始化时为未知状态xn缺省时为缺省时为1位数位数Verilog HDL 数据类型数据类型寄存器型数据与连线型数据的区别寄存器型数据与连线型数据的区别n寄存器型数据保持最后一次的赋值,连线寄存器型数
39、据保持最后一次的赋值,连线型数据需要有持续的驱动型数据需要有持续的驱动n寄存器型数据的驱动可以通过过程赋值语寄存器型数据的驱动可以通过过程赋值语句实现句实现Verilog HDL 数据类型数据类型物理数据类型示例物理数据类型示例nreg a; /寄存器变量寄存器变量nreg3: 0 v; /4位的寄存器变量位的寄存器变量ntri 15: 0 bus; /16位的三态总线位的三态总线ntri1 7: 0 data_bus; /8位的数据线,处于三态时为上拉位的数据线,处于三态时为上拉电阻电阻ntri0 31: 0 add_bus; /32位的连线型,处于三态时为下位的连线型,处于三态时为下拉电阻
40、拉电阻nreg scalared 1: 4 b; /4位寄存器位寄存器,可选择部分位赋值,可选择部分位赋值nreg vectored 1: 4 a; /不可部分赋值,缺省为不可部分赋值,缺省为scalared nreg 7: 0 RAM 0: 1023; /8位宽容量为位宽容量为1k的的RAMnwire #(2.4, 1.8) carry; /具有升降延迟的连线型具有升降延迟的连线型nwire (strong1, pull0) sum=a+b; /指定驱动强度且连续指定驱动强度且连续幅值的连线型幅值的连线型,supply,strong,pull,weak(强到弱强到弱)ntrireg (sma
41、ll) storeit;/小强度电荷存储线小强度电荷存储线,medium,largeVerilog HDL 数据类型数据类型存储器存储器用寄存器数组来表示存储器用寄存器数组来表示存储器parameter /实时参数实时参数wordsize = 16;memsize = 256;/申明申明16位位256字的存储器与寄存器字的存储器与寄存器reg wordsize-1: 0mem memsize-1: 0,writereg,readreg;Verilog HDL 数据类型数据类型抽象数据类型抽象数据类型ninteger 整型整型ntime 时间型时间型nreal 实型实型nparameter 参数
42、型参数型Verilog HDL 数据类型数据类型integer 整型整型n常用于定义循环控制变量常用于定义循环控制变量n寄存器型数据被当作无符号数,整型数据寄存器型数据被当作无符号数,整型数据为为32位有符号数位有符号数ninteger countninteger k1: 64; /数组数组Verilog HDL 数据类型数据类型time 时间型时间型n主要用于对模拟时间的存储与计算处理主要用于对模拟时间的存储与计算处理n为为64位的无符号数位的无符号数time start, stop; /两个两个64位时间变量位时间变量Verilog HDL 数据类型数据类型real 实型实型n浮点型数值浮
43、点型数值real s; Verilog HDL 数据类型数据类型parameter 参数型参数型n被命名的常量被命名的常量n在仿真开始时对其在仿真开始时对其赋值赋值,仿真过程中保持不变,仿真过程中保持不变n数据的具体类型由所赋的值来决定数据的具体类型由所赋的值来决定n增加描述的可读性,为以后的修改带来方便增加描述的可读性,为以后的修改带来方便parameter msb=7;parameter e=25, f=9;parameter average=(r+f)/2;parameter r=5.7;Verilog HDL 数据类型数据类型Verilog HDL 运算符运算符n算术运算符算术运算符n
44、逻辑运算符逻辑运算符n关系运算符关系运算符n相等运算符相等运算符n按位运算符按位运算符n归约运算符归约运算符n移位运算符移位运算符n条件运算符条件运算符n连接运算符连接运算符硬件描述语言硬件描述语言算术运算符算术运算符n+ 加加n- 减减n* 乘乘n/ 除除n% 取模取模Verilog HDL 运算符运算符逻辑运算符逻辑运算符n! 逻辑非逻辑非n& 逻辑与逻辑与n| 逻辑或逻辑或结果只能为结果只能为0或或1。Verilog HDL 运算符运算符关系运算符关系运算符n 大于大于n= 大于等于大于等于 如果比较关系成立,则返回逻辑如果比较关系成立,则返回逻辑1,否,否则返回逻辑则返回逻辑0
45、。Verilog HDL 运算符运算符相等关系运算符相等关系运算符n= 相等相等 :返回:返回1或或0或或xn!= 不等不等 :返回:返回1或或0或或xn= 全等全等 :只返回:只返回1或或0,不返回,不返回xn!= 非全等:只返回非全等:只返回1或或0,不返回,不返回xVerilog HDL 运算符运算符按位运算符按位运算符n 按位非按位非n& 按位与按位与n| 按位或按位或n 按位异或按位异或n按位异或非按位异或非n按位异或非按位异或非不能将逻辑运算符与按位运算符相混淆不能将逻辑运算符与按位运算符相混淆Verilog HDL 运算符运算符归约运算符归约运算符n& 归约与归约
46、与n| 归约或归约或n 归约异或归约异或n&归约与非归约与非n|归约或非归约或非n归约异或非归约异或非n归约异或非归约异或非 先将操作数的第先将操作数的第1位与第位与第2位进行归约运算,然后将位进行归约运算,然后将运算结果与第运算结果与第3位进行归约运算,依次类推,直至位进行归约运算,依次类推,直至最后一位。最后一位。Verilog HDL 运算符运算符移位运算符移位运算符n 右移位右移位na = 4b1010na 2 /结果为结果为4b0010Verilog HDL 运算符运算符条件运算符条件运算符n?: 条件运算符条件运算符 有三个操作然,若第一个操作数是逻辑有三个操作然,若第一个
47、操作数是逻辑1则返则返回第二个操作数,若第一个操作数为逻辑回第二个操作数,若第一个操作数为逻辑0则则返回第三个操作数。返回第三个操作数。 result = (c = d) ? a+b : a-bVerilog HDL 运算符运算符连接运算符连接运算符n : 连接运算符连接运算符n :复制运算符复制运算符na=1b1nb=2b00nc=a, b /c=3b100nd=4 a /d=4b1111Verilog HDL 运算符运算符运算符的优先级运算符的优先级Verilog HDL 运算符运算符运算符运算符描述描述 位选择或部分选择位选择或部分选择( )圆括号圆括号! 逻辑非和按位非逻辑非和按位非&
48、amp; | & | 归约运算符归约运算符+ -单目算术运算符单目算术运算符 连接运算符连接运算符* / %算术运算符算术运算符+ -双目算术运算符双目算术运算符移位运算符移位运算符 = =关系运算符关系运算符= !=相等运算符相等运算符&按位与按位与 按位异或和异或非按位异或和异或非|按位或按位或&逻辑与逻辑与|逻辑或逻辑或?:条件运算符条件运算符Verilog HDL 系统任务与系统函数系统任务与系统函数n用于对仿真过程的控制和对仿真结果的分析用于对仿真过程的控制和对仿真结果的分析n以以 “$”开头开头n系统任务可以没有返回值,或有多个返回值,系统任务可以没有返回值
49、,或有多个返回值,而系统函数只有一个返回值而系统函数只有一个返回值n系统任务可以带延迟,而系统函数不允许带系统任务可以带延迟,而系统函数不允许带延迟,在延迟,在0时刻执行时刻执行硬件描述语言硬件描述语言Verilog HDL 系统任务与系统函数系统任务与系统函数n标准输出任务标准输出任务n文件管理任务文件管理任务n仿真控制任务仿真控制任务n时间函数时间函数n其他其他硬件描述语言硬件描述语言标准输出任务标准输出任务n$display: 可以自动换行可以自动换行n$write:不会自动换行不会自动换行n$display(“The count is %b”,counter )n%d:十进制;十进制;
50、 %b:二进制;二进制; %h:十六进制;十六进制; %o:八进制;八进制; %t:时间格式;时间格式; %f:浮点格式;浮点格式; %s:字符串;字符串;n:换行。换行。Verilog HDL 系统任务与系统函数系统任务与系统函数文件管理任务文件管理任务n$fopen: 打开文件打开文件ninteger handleA;nhandleA = $fopen “myfile.out”Verilog HDL 系统任务与系统函数系统任务与系统函数文件管理任务文件管理任务n$fdisplay:可以自动换行可以自动换行n$fwrite:不会自动换行不会自动换行输出到文件输出到文件ninteger han
51、dleA;nhandleA = $fopen “myfile.out”;n$fdisplay(handleA, “Hello”);Verilog HDL 系统任务与系统函数系统任务与系统函数文件管理任务文件管理任务n$freadmemb:二进制读取二进制读取n$freadmemh:十六进制读取十六进制读取n从文件中读取数据到存储器从文件中读取数据到存储器nreg 7: 0 memory 9: 0;n$freadmemb(“myfile.dat”, memory);Verilog HDL 系统任务与系统函数系统任务与系统函数仿真控制任务仿真控制任务n$monitor:监控,信号发生变化时输出监控
52、,信号发生变化时输出n$monitoron:打开监控任务打开监控任务n$monitoroff:关闭监控任务关闭监控任务n$monitor(“a=%d, b=%d”, a, b);Verilog HDL 系统任务与系统函数系统任务与系统函数仿真控制任务仿真控制任务n$finish:结束仿真,返回操作系统结束仿真,返回操作系统n$stop:暂时挂起仿真,返回暂时挂起仿真,返回Verilog界面界面Verilog HDL 系统任务与系统函数系统任务与系统函数时间函数时间函数n$timeformat:控制控制%t格式如何显示时间信息格式如何显示时间信息n$printtimescale:给出指定模块的时
53、间单位和精度给出指定模块的时间单位和精度n$time:返回返回64位的整数,指定当前的仿真时间位的整数,指定当前的仿真时间n$stime:返回返回32位的仿真时间位的仿真时间n$realtime:以实数形式返回当前的仿真时间以实数形式返回当前的仿真时间Verilog HDL 系统任务与系统函数系统任务与系统函数其他函数其他函数n$random:随机函数,产生一个随机数随机函数,产生一个随机数n$rtoi:通过截断小数值将实数变换成整数通过截断小数值将实数变换成整数n$itor:将整数变换成实数将整数变换成实数n$realtobits:将实数变换成将实数变换成64位的实数向量位的实数向量n$bi
54、tstoreal:将位模式变换为实数将位模式变换为实数Verilog HDL 系统任务与系统函数系统任务与系统函数编译指令编译指令n编译指令以字符编译指令以字符“”开头开头n编译指令末尾不需要分号编译指令末尾不需要分号n编译指令不受模块与文件的限制,已定义的编译指令不受模块与文件的限制,已定义的编译指令一直有效,直到其他编译指令修改编译指令一直有效,直到其他编译指令修改它或将该编译指令关闭它或将该编译指令关闭硬件描述语言硬件描述语言宏编译指令宏编译指令ndefine:定义宏定义宏nundef:取消宏取消宏ndefine cycle 20Verilog HDL 编译指令编译指令文件包含指令文件包
55、含指令ninclude:包含需要用到的文件包含需要用到的文件ninclude file1.vVerilog HDL 编译指令编译指令条件编译指令条件编译指令ifdef TEST module counter; . endmoduleelse module counter_test; . endmoduleendif 当且仅当宏当且仅当宏TEST定义时编译模块定义时编译模块counter,否则编译模块,否则编译模块counter_testVerilog HDL 编译指令编译指令时间定标指令时间定标指令ntimescale:用于设定时延的时间单位用于设定时延的时间单位ntimescale 1 ns
56、 / 10psVerilog HDL 编译指令编译指令工作库定义指令工作库定义指令nuselib:定义工作库定义工作库file=库文件名的路径库文件名的路径dir=库目录名的路径库目录名的路径 libext=.文件扩展文件扩展nuselib file=/models/udp.libnuselib dir=/models/gate_lib libext=.vVerilog HDL 编译指令编译指令用户自定义元件用户自定义元件(UDP)n基本门级元件基本门级元件(Basic Gate-level Primitives)n基本开关级元件基本开关级元件(Basic Switch-level Primi
57、tives)n用户自定义元件用户自定义元件(UDP)硬件描述语言硬件描述语言UDP的定义的定义 primitive (, , , . ,); 输出端口类型说明输出端口类型说明(output); 输入端口类型说明输入端口类型说明(input);输出端寄存器变量说明输出端寄存器变量说明(reg);元件初始状态说明元件初始状态说明(initial);table ; ;. ;endtableendprimitive用户自定义元件用户自定义元件(UDP)UDP的定义的定义 primitive mux4_1 (out, in1, in2, in3, in4, ctrl1, ctrl2); output o
58、ut; input in1, in2, in3, in4, ctrl1, ctrl2;table/in1 in2 in3 in4 ctrl1 ctrl2 : out 0 ? ? ? 0 0 : 0; 1 ? ? ? 0 0 : 1; ? 0 ? ? 0 1 : 0; ? 1 ? ? 0 1 : 1; ? ? 0 ? 1 0 : 0; ? ? 1 ? 1 0 : 1; ? ? ? 0 1 1 : 0; ? ? ? 1 1 1 : 1; endtableendprimitive用户自定义元件用户自定义元件(UDP)UDP的定义的定义nUDP定义模块不能出现在其他模块定义之内定义模块不能出现在其他模
59、块定义之内n只能有一个输出端口,而且必须为第一项只能有一个输出端口,而且必须为第一项n只有时序逻辑元件才能将输出端口定义成寄存器类只有时序逻辑元件才能将输出端口定义成寄存器类变量变量n初始状态为电路上电时刻的状态,只能为初始状态为电路上电时刻的状态,只能为0、1、xntable表项中只能出现表项中只能出现0、1、x三种逻辑值三种逻辑值用户自定义元件用户自定义元件(UDP)组合逻辑电路组合逻辑电路UDPn直接把电路的逻辑真值表搬到直接把电路的逻辑真值表搬到UDP的的table表中表中n完全由输入决定输出完全由输入决定输出用户自定义元件用户自定义元件(UDP)时序逻辑电路时序逻辑电路UDPn时序逻
60、辑电路元件的输出除了与当前的输入状态有时序逻辑电路元件的输出除了与当前的输入状态有关,还与时序元件本身的内部状态有关关,还与时序元件本身的内部状态有关ntable表中多了一个内部状态表中多了一个内部状态n必须将输出端口定义为寄存器类型必须将输出端口定义为寄存器类型n往往需要对元件的初始状态值加以指定往往需要对元件的初始状态值加以指定用户自定义元件用户自定义元件(UDP)时序逻辑电路时序逻辑电路UDPn电平触发时序电路电平触发时序电路UDPn边沿触发时序电路边沿触发时序电路UDP用户自定义元件用户自定义元件(UDP)电平触发时序逻辑电路电平触发时序逻辑电路UDPn内部状态改变由某一输入信号电平触发内部状态改变由某一输入信号电平触发用户自定义元件用户自定义元件(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北师大版二年级语文上册课文预习 新学期预科精讲课件
- 八升九暑假过渡课|反比例函数、函数认知进阶
- 人教版高三地理一轮地理信息技术应用专项预习 新学期预科精讲课件
- 学校县管校聘考核实施方案
- 学校食堂食品安全应急演练制度
- 学校课外辅导制度
- 学校采购人员安全生产与物资安全责任书
- 学籍管理工作考核细则
- 综合实践高效课堂:交通安全宣传教学实录与反思
- 生猪防疫管理标准化模拟题库卷含完整答案
- 2026年安徽省中考数学试题(原卷版)
- 口服抗栓药物消化道损伤防治共识2026
- 2026年gcp考试及答案
- 国家癌症中心2025年癌症统计报告
- 养老院出入院管理制度
- 郴州亚光高纯银电解项目环境影响报告书
- 《JBT 7052-2024六氟化硫高压电气设备用橡胶密封件技术规范》专题研究报告
- 体重管理门诊工作制度
- 2026年低碳技术与城市可持续发展
- 平台防腐施工方案(3篇)
- 科研团队介绍
评论
0/150
提交评论