[FPGA基础应用]基于CPLD+ARM架构模拟PC104总线时序

1.应用背景

PC/104总线嵌入式工控机是专门为工控领域设计的具有特定尺寸和接口的计算机。

但是在特定的工控中,对处理器的功耗有严格要求。基于X86架构的PC104工控机发热过大容易造成系统的不稳定。ARM架构的处理器具有低功耗高处理的能力,很好弥补了上述不足。但ARM中不支持PC104总线。因此,可以采用ARM+CPLD的结构,通过CPLD来构造PC104部分的时序。附件中论文有对ARMX86处理器的介绍和比较。

                                                       1PC104主要信号的描述

    ARM+CPLD的结构来支持PC104总线,CPLD的作用是把本地总线转化为PC104的总线,这也是整个系统的难点。此外,ARM在电平模式制造工艺上和PC104存在差异,所以他们之间还要其他的物理手段处理。值得一提的是,该方案是不支持DMA传输的。具体的系统结构如下图:

                                                          图2:系统结构

                                                  图3:网上的一个接口实例

 

2.设计分析:

CPLD需要做的工作,其实有以下三点:

  1. PC104设备端BALE,SA/LA<23:17>,SD,数据和ARMnGCSADDRDATA的时序转换

  2. PC104设备端SMEMW/R MEMW/RIOW/RARMOE,WE时序的转换

  3. PC104设备端IOCHDYARM端的nWAIT时序的转换

(注意:MEMCS16、IOCS16、SBHE这类判断是16位还是8位的信号线其实也是需要控制的。但是在本案例中MEMCS16、IOCS16在原理图中是给的固定值,所以在此处省略。)

PC104设备端(PC104总线)和 ARM端(ARM读写总线)的时序图如下:

 

                                图4.  PC104端的IO模式读写时序(8位)

 

                                          图5. ARM的读写时序

对照标准的PC104协议,读写模式有多种。本案例中,只是基于最简单的IO和内存读写模式, 许多信号暂时用不到。具体如下:

DACK3,DRQ3,DACK1,DRQ1,REFRESH,DACK2,TC,OSC,IOCHCK,MEMCS16,IOCS16,DACK0,DRQ0,DACK5,DRQ5,DACK6,DRQ6,DACK7,DRQ7,MASTER

需要CPLD来协调的PC104设备端信号主要为以下几点:

地址:A0~A19,L17~L23

数据:D0~D7,D8~D15

延迟:IOCHRDY

地址允许锁存:BALE

中断:IRQ

时钟:SYSCLK

IO读写:IOW/R

内存读写:SMEMW/R MEMW/R

复位:RSTDRY

总线高字节允许信号:SBHE  (该信号有效时表示数据总线上传送的是高位字节数据,在本例中由于MEMCS16等信号都是在原理图中给的定值,因此SBHE在CPLD里也是给定值)

地址允许信号:AEN(地址允许信号, 输出线, 高电平有效。AEN=1,表明处于 DMA

控制周期; AEN0,表示非 DMA 周期。此信号用来在 DMA 期间禁止 I/O

口的地址译码,本例中直接置0)。

 

 

需要CPLD来协调和ARM端信号主要为以下几点:

时钟:HCLK

地址:ADDR

选通:nGCS

读写使能:nOE/WE

数据:DATA

等待:nWait

 

  3.设计实现

CPLD的操作总体思路:

  1. 检测ARM的nGCS 和复位信号。若复位以及未选通,则所有信号初始状态。 BALE<=0;nWAIT<=1;

  2. 在非复位以及选通状态(nGCS拉低,从ARM角度讲已经开始读写操作,正常时序里,此刻的地址位已经准备好),将输出给ARM的nWAIT信号置低,让ARM处理器开始处于延迟状态。

  3. BALE信号拉高,等待一个周期然后跳入下一个状态

  4. BALE信号拉低,与3状态配合实现下降沿,将地址锁存(此步骤是将ARM的地址总线转变为PC104的总线时序)

  5. 检测PC104设备端返回的IOCHRDY信号。如果拉高,代表PC设备端已经完成读写时序。在此处设置一个定时器,若高电平保持的时间满足了我们的设定值,则将nWAIT信号置高,ARM则不需要维持在延迟的状态。

  6. 这一步骤不在PROCESS中,单独实时变化。PC104端的MEMR/W,和IOW/R,SBHE,AEN信号是主要是由ARM的nOE(读),nWE(写),ADDR24(IO访问或者内存访问)决定的。具体逻辑关系为:

   7.            产生一个ARM和PC104时钟转换模块,将两者时钟匹配

 

            备注:第6步也放在process中应该也可以,具体没研究。

 

4.附件

一篇有关如何实现PC104总线的论文:https://download.csdn.net/download/weixin_42229533/10647144
 

 

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: Altera FPGA/CPLD设计是指使用Altera公司的FPGA(现场可编程门阵列)和CPLD(复杂数字可编程逻辑器件)进行电子系统设计的过程。 基础篇主要涵盖了Altera FPGA/CPLD设计的基本原理和基本技术。在基础篇中,我们学习了FPGA/CPLD的基本结构、工作原理和编程方式。我们了解了FPGACPLD的不同特点和应用场景。 在高级篇中,我们进一步学习了如何使用Altera FPGA/CPLD实现更复杂的设计。高级篇主要包括以下几个方面的内容: 1. 设计方法:我们学习了如何将一个复杂的电子系统设计分解成多个模块,然后使用Altera FPGA/CPLD实现这些模块。我们了解了如何使用高级语言(如VHDL或Verilog)描述模块的功能和行为,并学习了如何进行仿真和验证。 2. IP核:Altera FPGA/CPLD提供了许多可重用的IP(知识产权)核,包括处理器核、存储器核、通信核等。在高级篇中,我们学习了如何使用这些IP核,以加快设计开发的速度和提高设计的可靠性。 3. 物理设计:在高级篇中,我们还学习了如何进行FPGA/CPLD的物理设计。这包括引脚分配、时序优化、布局布线等。我们了解了如何利用Altera的设计工具进行物理设计,并学习了如何进行板级调试和验证。 通过学习基础篇和高级篇的内容,我们可以掌握Altera FPGA/CPLD设计的基本原理和技术,并能够使用Altera FPGA/CPLD进行复杂的电子系统设计。这些知识和技能对于进行嵌入式系统设计、数字信号处理、通信系统设计等领域都非常有用。 ### 回答2: Altera FPGA/CPLD设计是基于Altera(现在为英特尔公司的子公司)公司的可编程逻辑器件开发的一种设计方法。FPGA(现场可编程门阵列)和CPLD(可编程逻辑器件)是可以通过编程方式实现不同功能的硬件器件。 在基础篇的培训中,学习者将了解FPGA/CPLD的基本概念和原理。他们将学习如何使用Quartus II软件(Altera公司的开发工具)进行开发和仿真。还将学习如何使用硬件描述语言(例如VHDL和Verilog)来描述和设计数字系统。此外,基础篇还会介绍如何对FPGA/CPLD进行时序分析和布线优化,以确保设计的正确性和性能。 高级篇的培训涵盖更复杂和高级的FPGA/CPLD设计技术。学习者将进一步学习如何优化资源利用率,提高设计的时序性能,并且了解如何实现更复杂的数字系统。高级篇的培训还会介绍如何使用嵌入式处理器(例如Nios II)和外设接口来实现更复杂的系统集成。另外,学习者将学习如何进行FPGA/CPLD设计的时序分析、布局和布线规则的优化,以满足不同的设计需求。 通过完成基础和高级篇的培训,学习者将具备设计和开发复杂数字系统的能力。他们将能够理解和应用FPGA/CPLD设计的基本概念和技术,并能够利用英特尔公司提供的工具和资源,开发出高性能、可靠的数字系统设计。这些技能在许多领域中都有应用,包括通信、汽车、医疗等,为学习者提供了广阔的就业和创新机会。 ### 回答3: Altera FPGA/CPLD设计 基础篇 是指针对初学者而设计的教学材料,详细介绍了Altera FPGA(现在被Intel收购并更名为Intel FPGA)和CPLD(可编程逻辑器件)的基础知识和设计原理。 这个教程首先介绍了FPGACPLD的基本概念和特点,包括可编程逻辑单元、寄存器、布线资源等核心组件的功能和作用。然后,详细介绍了Quartus软件的使用方法,Quartus是Altera公司提供的用于FPGACPLD设计的开发工具。教程中还包含了丰富的实例和实验,通过具体的案例和实践来帮助读者理解并掌握FPGACPLD的设计方法和技巧。 Altera FPGA/CPLD设计 高级篇 则是在基础篇的基础上进一步深入讲解了更高级的FPGACPLD设计技术和方法。在高级篇中,读者将学习如何使用Verilog或VHDL等硬件描述语言来实现复杂的逻辑功能和算法。教程中还介绍了FPGACPLD设计的优化策略,包括资源利用率、时序约束和时序优化等方面的内容。 除此之外,高级篇还会介绍更多关于FPGACPLD设计的高级技术和应用,例如嵌入式处理器系统(如Nios II)、硬件加速和高速IO接口等内容。这些知识将帮助读者在专业领域中更深入地应用FPGACPLD设计来解决实际问题。 总之,Altera FPGA/CPLD设计 基础篇 和高级篇是针对FPGACPLD设计初学者和进阶者而设计的教程,通过系统化的讲解和实例演示,帮助读者全面了解FPGACPLD设计的基本原理和技术,并能够独立进行FPGACPLD设计和开发工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值