- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于IP复用设计的微处理器FSPLCSOC模块
1 引言
文中采用IP核复用方法和SOC技术基于AVR 8位微处理器AT90S1200IP Core设计专用PLC微处理器FSPLCSOC模块。
随着芯片集成程度的飞速提高,IC产业中形成了以片上系统SOC(System-on-Chip)技术为主的设计方式。一个电子系统或分系统可以完全集成在一个芯片上,同时IC设计能力和EDA工具却相对落后于半导体工艺技术的发展,两者之间日益加剧的差距已经成为SOC技术发展过程中一个突出的障碍。采用基于IP复用技术进行设计是减小这一差距惟一有效的途径,IP复用技术包括两个方面的内容:IP核生成和IP核复用。
2 IP核复用
IP核复用(IP Core Reuse)是指在集成电路设计过程中,通过继承、共享或购买所需的知识产权内核(第三方IP核),然后再利用EDA工具进行设计、综合和验证。IP核是IP复用的载体和核心内容,基于应用需求、规范协议和行业标准的不同,IP核的内容也是千差万别的。在IC产业中,IP核被定义为用于ASIC, ASSP, PLD等芯片中,且预先定义好功能、经过验证的、可重复利用的电路功能模块,如PCI接口核、ADC核,FIR滤波器核、SDRAM控制器核等。根据IC设计层次的不同。IP核分为以下三类:软IP(Soft IP)、硬IP(Hard IP),固IP (Firm IP)。文中主要涉及到软IP核设计和复用。软IP是可类比、综合的硬件描述语言(HDL)模型,通常是可综合的RTL模型,包括逻辑描述、网表和测试的文档(Testbench)。软IP设计周期短、投人少,与工艺无关,可灵活修改,在设计中只须对时序、面积和功耗进行修正,可复用性最高。基于软核的设计(Soft Core-based design)是一种非常实用的SOC设计方法。它将系统的功能划分为不同的软核,包括微处理器、ALU、ROM、PC、ROM、I/0等。由于软IP核仅提供能够综合的HDL描述,因此复用前需要深人地了解HDL文件描述的RTL模型,采用适当工艺技术的标准单元库,再重新进行综合、布局布线、后仿真提取网表、验证时序等反复工作,最后集成到SOC设计中,因此SOC设计即生成的IP核和第三方复用IP核集成整合。
3 FSPLC微处理器IP核设计
3.1 IP软核生成
文中基于AVR8位微处理器分析实际PLC梯形图及其指令表,设计逻辑处理器LP、布尔处理器BP、存储器位接口MBI等3个模块用于提高PLC执行速度,下面以逻辑处理器LP单元模块为例,描述IP软核生成。PLC梯形图包括8种基本电路:左分支触点LBC/非触点LBCN,右分支触点RBC/非触点RBCN, 双分支触点DBC/非触点DBCN,不分支触点NBC/不分支非触点NBCN。文中根据这8种基本电路设计一个16xl6触点矩阵电路,即逻辑处理器LP单元,矩阵中各个触点由电子电路模拟PLC梯形图基本电路。在任何一个触点上包括横线输入、竖线输入、引出输出线圈。触点矩阵中共有256个横线输入圈节点hi,240个竖线输入圈节点vi,256个输出线圈Io。当一行超过16时,转向下一行,以此构成矩阵电路,如hi[i],vi[i],lo[i]表示某个触点的横线输入、竖线输入、输出,那么其同行的下一个触点的横线输入、竖线输入、输出分别为hi[i+ 1]、vi[i+1]、lo[i+1],其同列的下一个触点hi[i+16]、vi[i+16]、lo[i+16],那么输出触点的表达式为
I0[i]=I0[i-1]hi[i]+vi[i-16]lo[i-16]+vi[i]lo[i+16-1]hi[ i+16] 。
以此各个触点彼此互相连接组成处理梯形图的触点矩阵。如图1所示。
图1 LP单元触点电子电路模拟
逻辑处理器LP采用Verilog描述,借助Model-Sim进行功能仿真,验证模块功能的正确性。LP单元功能仿真波形如图2所示。
图2 LP单元功能仿真波形
验证功能正确后,借助Synosys的综合工具Synplify Pro对模块进行综合。综合包括Compiling、Mapping、Optimization。综合时将经ModelSim。功能仿真验证的源代码调人Synplify Pro,执行Compiler,编译后,创建约束文件。sdc,编辑约束文件对模块添加约束条件,包括时钟、面积、扇人扇出、延时等,添加约束后执行综合,产生网表文件。EDF。根据综合后给出的。log文件观察Constraint文件中的约束条件是否满足需要,例如按照给出的"Worst Path Information,修改约束以满足Worst Path的要求。综合完成后在Quartus Ⅱ4。0展开网表文件,布局布线后编译形成。sof文件,将此文件下级到Alters Nios开发板进行验证,验证正确后再借助ModelSim进行时序验证。
3.2 AVRIP核复用
AVR8位微处理器AT90S1200IP核由opencores。org提供。整个微处理器IP核包括ALU、PC、SRAM、IR、ROM、I/0,控制等"个模块,可以分成3个单元;取指单元、执行单元和I/0单元。指令执行时,取指单元负责取出下一个指令,执行单元负责执行当前指令,而LO单元负资和外界的连接。取指单元和执行单元组成微处理器的CPU。
整个AVRIP核包括许多寄存器:指令寄存器、指令备份寄存器、程序计数器、通用寄存器、存储地址寄存器(MAR),1/O口控制寄存器等。整个系统的工作就是基于这些寄存器之间的数据传输。设计所有的寄存器以及它们之间的组合逻辑及其连接就是系统的数据通道设计。控制模块决定怎样进行寄存器传愉。数据通道和控制单元组成了整个微处理器。
对于AT90S12001P核复用,考虑到IP核在SOC中集成整合,首先须彻底了解所复用核的架构和指令集,借助ModelSim进行功能仿真,建立Testbench平台测试波形验证功能的正确性,如图3所示。编译无误且功能正确后借助Synplify Pro对IP核饰代码进行逻辑综合,如果VHDL程序正确无误并且其编程风格符合Synplify Pro综合要求,Synplify Pro将产生一个网表文件(。EDF文件),再借助QuartusA4。0和ModelSim分别进行FPGA验证和时序验证,此过程不断循环,直至复用的微处理器IP核没有任何错误。
图3 AVRIP复用测试平台Testbench框图
作者:冉峰 李润光 徐美华 康志英 来源:单片机与嵌入式系统
上一篇:几种VoIP网络协议
下一篇:IPv6多播地址基础知识