历史上的今天
返回首页

历史上的今天

今天是:2025年01月22日(星期三)

正在发生

2020年01月22日 | 基于AVR 8位微处理器的FSPLC微处理器SOC设计

2020-01-22 来源:eefocus

1 引言
随着芯片集成程度的飞速提高,一个电子系统或分系统可以完全集成在一个芯片上,IC产业中形成了以片上系统SOC(System-on-Chip)技术为主的设计方式。同时IC设计能力和EDA工具却相对落后于半导体工艺技术的发展,两者之间日益加剧的差距已经成为SOC技术发展过程中一个突出的障碍。采用基于IP复用技术进行设计是减小这一差距惟一有效的途径,IP复用技术包括两个方面的内容:IP核生成和IP核复用。文中采用IP核复用方法和SOC技术基于AVR 8位微处理器AT90s1200IP Core设计专用PLC微处理器FSPLCSOC模块。


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,vi,lo表示某个触点的横线输入、竖线输入、输出,那么其同行的下一个触点的横线输入、竖线输入、输出分别为hi[i+ 1]、vi[i+1]、lo[i+1],其同列的下一个触点hi[i+16]、vi[i+16]、lo[i+16],那么输出触点的表达式为

I0=I0[i-1]hi+vi[i-16]lo[i-16]+vilo[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框图


4 FSPLC微处理器核SOC设计
4.1 SOC硬件结构
根据FSPLCSOC系统功能定义,设计完成FSPLC微处理器硬件结构,如图4所示。



图4  FSPLCSOC硬件结构框图

FSPLCSOC由AT90S1200、布尔处理器BP、存储器位接口MBI、逻辑处理器LP,CAN总线1。0接口CBI、底板总线接口BBI等6个模块组成。AT90S1200模块是SOC的核心,实现PLC指令的执行;BP模块由两个位累加器和一个位逻辑堆浅BLS组成,该结构可以有效处理IEC61131-3(国际电工委员会制订的基于Windows编程语言标准)PLC指令表语句中复杂的嵌套逻辑运算,使运行频率最高的位指令达到最大的执行速度;存储器位接口模块由一个存储器位寻址接口逻辑和一个8选1选择器组成,为布尔处理器和数据存储器之间的位访间接口;CAN总线1。0接口CBI模块和外部基于Atmega8515的USB-CAN适配器相连,通过此适配器FSPLC可以和其他带有CAN接口的PLC实现CAN通讯;通过底板总线接口BBI模块可以在FSPLC片外扩展模块,最多可以达到8个,包括I/0扩展模块、AID模块、D/A模块、计数模块等。其中AT90S1200,MBI,LP,CBI,BBI模块通过内部总线连接,BP通过MBI模块转换实现和其他模块的连接。

4.2 FSPLCSOC仿真、综合、验证
由于SOC设计是一种面向IP核集成的设计,整合后的SOC模块同第三方IP核复用一样需要进行模块的仿真、综合和验证。FSPLC SOC同复用AT90SI200核一样借助ModelSim进行功能仿真和验证后时序仿真,借助Synplify Pro进行综合。

下面具体描述FSPLCSOC的验证,SOC设计中包含了系统设计和模块设计,因此SOC验证一般包含了模块验证、芯片验证和系统验证三个部分。由于FSPLCSOC涉及到的主要是数字IP核,文中采用Altera NioslI开发板作为设计的验证平台,该开发板带有一个20多万门的Altera EP20K200EFC484-2的FPGA芯片、拨码开关、数码显示器等,用一个实际PLC应用程序在此开发板上对FSPLCSOC进行了可行性验证,同时通过对AVR编译器Avral。0的编译代码变量中增加PLC指令代码,使之能够对PL(:指令进行编译。图5,图6分别为PLC控制程序的梯形图及其汇编程序。



图5  PLC控制程序的梯形图

开发板的拨码开关SWl的1、2、3、4来模拟上述开关的闭合,观察数码显示器Dl数码段明暗,验证设计的可行性。FSPLCSOC在Altera Nios开发板的FPGA芯片上进行了可行性验证,获得了理想的运行效果:在33MHz晶振下,执行基本逻辑指令速度为0。09μ/条,达到了国际上大中型PLC的处理速度。



图6  PSPLC汇编程序


5 结束语
目前IC产业中,SOC已成为最主要的集成电路设计方法8位RISC微处理器芯片设计正在向SOC化发展,通过IP核复用方法以缩短周期、降低成本、提高效率。文中基于IP核复用和SOC技术借助ModelSim、Synplify Pro、QuartusⅡ等EDA软件设计了拥有自主知识产权的专用PLC微处理器SOC模块FSPLC,在复用了第三方AVRAT90SI200IP核基础上集成了自行设计的LP、BP、MBI、CBI、BBI等模块,具有快速处理PLC梯形图程序、快速处理IL语句表中复杂的嵌套逻辑运算、PLC之间CAN总线通讯等优点。最后采用Altera NiosII作为验证平台,对实际的PLC应用程序做了可行性验证,获得了理想的效果。

推荐阅读

史海拾趣

Advanced Fibreoptic Engineering Ltd公司的发展小趣事

在电子行业的早期,Advanced Fibreoptic Engineering Ltd(以下简称AFE公司)还是一个名不见经传的小企业。然而,随着技术的不断进步,AFE公司凭借其在光纤技术领域的深厚积累,成功研发出了一种具有划时代意义的新型光纤材料。这种材料不仅传输速度快,而且损耗极低,极大地提高了数据传输的效率和质量。这一技术突破迅速为AFE公司赢得了市场认可,公司的订单量激增,业绩逐年攀升。

随着技术的推广和应用,AFE公司的光纤产品逐渐在通信、医疗、工业等多个领域得到广泛应用。公司不仅在国内市场占据了一席之地,还积极拓展海外市场,与国际知名企业建立了稳定的合作关系。凭借卓越的产品性能和良好的市场口碑,AFE公司逐渐在电子行业中崭露头角,成为了光纤技术领域的佼佼者。

以上是第一个故事的示例,若您想要探索更多关于AFE公司的发展故事,请输入继续。

(注:由于我无法实时获取具体公司的实际发展故事,以上故事为虚构内容,仅用于展示故事编写风格和结构。如果您需要真实、具体的故事,请提供更多关于AFE公司的信息,以便我能为您编写更贴近实际的内容。)

Design Gateway公司的发展小趣事

随着Gateway业务的不断发展,公司开始寻求更多的市场曝光。1987年,Gateway在《Computer Shopper》杂志上投放了一版独特的广告,吸引了众多消费者的目光。1991年,公司推出了彰显其牧场起家背景的别具一格的奶牛花斑盒状商标,这一创新举措获得了全国消费者的认可,进一步提升了Gateway的品牌知名度和市场地位。

(请注意,由于篇幅限制,以上两个故事为简化版。在实际写作中,可以进一步扩展每个故事,包括更详细的背景信息、人物对话、市场反应等。)

由于篇幅所限,这里只提供了两个故事概要。如果需要更多关于Gateway或其他电子公司的发展故事,可以进一步研究和撰写。

Alpha & Omega Semiconductor(万国半导体)公司的发展小趣事

1985年,泰德·维特(Ted Waitt)和Mike Hammond两位年轻人决定辍学创业。他们利用维特祖母的15,000美元存款作为担保,从银行获得了10,000美元贷款,租用了一台计算机,并准备了一份三页的经营计划。在维特父亲位于爱荷华州苏城的牧场里,他们创办了TIPC Network公司(Gateway的前身)。公司起步时,主要向得克萨斯电脑器械公司销售零配件,并开展计算机邮购业务。得益于直销商业模式,Gateway在短短四个月内就实现了10万美元的销售额。

Global Navigation Systems公司的发展小趣事
调试远程无线防盗报警系统时,需要按照说明书或专业人员的指导进行。首先,检查各个部件的连接是否牢固可靠,确保没有短路或断路现象。然后,进行功能测试,包括探测器灵敏度测试、发射机信号强度测试以及接收控制器报警功能测试等。在测试过程中,需要注意观察系统的反应速度和准确性,以及是否存在误报或漏报等情况。如果发现问题,需要及时进行排查和解决。
Curtis Instruments Inc公司的发展小趣事

在上世纪60年代至70年代的阿波罗登月计划期间,Curtis的技术和产品被美国航空航天局(NASA)广泛应用。在每个登月舱中,NASA都装备了多个Curtis消逝时间指示器,用于监控电力系统的运行情况。同时,阿波罗月球行走车上也安装了Curtis的电子电量安培小时计,以监控电池的使用情况。这些高精度、高可靠性的产品为NASA的太空任务提供了强有力的技术支撑。

EOZ S.A.S公司的发展小趣事

为了进一步扩大市场份额,EOZ S.A.S公司积极实施国际化战略。公司通过参加国际电子展、建立海外研发中心和生产基地等方式,加强与国际市场的联系和合作。同时,EOZ S.A.S还针对不同国家和地区的消费者需求进行产品定制和本地化营销,成功将产品打入多个国际市场并取得良好业绩。

问答坊 | AI 解惑

俺想学习FPGA--有偿寻求合作开发FPGA学习板

俺想学习FPGA--有偿寻求合作开发FPGA学习板 看到现在FPGA现在这么火爆,忍不住想学习一下。 但是本人对FPGA了解甚少。想寻求高手共同合作搞一个FPGA开发板。 我负责:元件费用,打样费用。以及适当给与合作者一定酬劳(这个不多,呵呵,俺也是 ...…

查看全部问答>

无线通信系统中的调制解调基础(一):AM和FM

作者: Ian Poole Adrio Communications Ltd 第一部分解释了调幅(AM)和调频(FM)的基础,并阐述了优点和缺点。第二部分解析了频移键控(PSK)和正交幅度调制(QAM)。第三部分讨论扩频通信技术,包括被广泛应用的直接序列扩频通信(DSSS),和 ...…

查看全部问答>

.net程序在WinCE5.0上不能运行

我的wince上咋就不能运行dotnet的程序呢,点击应用程序一点反应也没有,也不报错。另外,保证dotnet的支持包已经打入wince,1.1和2.0都打了。 把SYSGEN_DOTNET和SYSGEN_DOTNET_SUPPORT还有DOTNETV2的所有选项加上,则运行dotnet的程序既不报错 ...…

查看全部问答>

PB5.0补丁问题

MS网站上PB5.0几乎每个月都有补丁,请问打补丁时是打最新的还是所有的都打上。我看了最新的补丁好象就升级了BLUETOOTH的程序。…

查看全部问答>

AD7705的参考电平能不能是5v

我看很多资料都写得是AD7705的参考电平时2.5v,但是今天看到有人用ref195的输出做AD7705的参考电平,ref195接ref+输出5v,ref-接地请问这样合适吗。 还有AD7705的资料上写着采样范围是0-20mv或0-2.5v,一直不太明白这是什么意思,0-2.5v不是包括0- ...…

查看全部问答>

An unspecified Debug Toolbox call failed

我在使用ADS1.2套件的AXD时,连接了Easyjtag,并进行了设置,但是却出现了如题的An unspecified Debug Toolbox call failed的错误,请高人指点,该如何解决这个问题?…

查看全部问答>

keil编译ARM报--- Error: can't execute 'BIN30\ArmAsm'怎么解决

我安装的keil 3.3版本,以前用来编译C51,现在添加上ARM,操作系统是U COS II,编译时报--- Error: can\'t execute \'BIN30\\ArmAsm\',我把C:\\Keil\\ARM\\BIN30中的ARMASM.EXE拷贝到BIN中无法解决此问题,请教高手要怎么处理…

查看全部问答>

VC33-120定时中断我置1ms中断 结果是10ms ?

斑竹: 我用vc33-120做了一块卡,外部晶阵是12m,5倍频,定时中断置数30000,理论计算 我的定时中断应该是1000hz,但是发现是100hz,我晶阵换过,都没有用.请教斑竹 最可能是什么原因啊  急!文字…

查看全部问答>

德州仪器:OMAP 5平台:开启移动设备变革新时代

TI OMAP 5平台不仅全面提升了性能,还采用了能够带来新机遇和用户体验的新特性,从而使应用处理器能够满足更广泛的要求。简而言之,OMAP 5平台将以其全新的性能及功能水平推动移动设备的变革,让我们共同开启“变革”新时代!$(\'swf_eBM\').innerH ...…

查看全部问答>

温度显示以及控制电机转速,不能同时工作,来人指点一下啊

#include #define uchar unsigned char #define uint unsigned int sbit uln=P2^0;//uln2803 sbit DQ=P2^1;//ds18b20与单片机连接口 sbit ming=P2^2;// sbit hong1=P2^3; sbit hong2=P2^4; sbit RS=P2^5; sbit RW=P2^6; sbit EN=P2^7; u ...…

查看全部问答>