首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» 如何使用部分动态可重配置协助开发FSK解调器
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
如何使用部分动态可重配置协助开发FSK解调器
发短消息
加为好友
pengpengpang
(pengpengpang)
当前离线
UID
1023229
帖子
6106
精华
0
积分
3055
阅读权限
90
来自
中国
在线时间
156 小时
注册时间
2013-12-20
最后登录
2016-7-3
论坛元老
UID
1023229
来自
中国
1
#
打印
字体大小:
t
T
pengpengpang
发表于 2014-6-18 16:28
|
只看该作者
如何使用部分动态可重配置协助开发FSK解调器
解调器
,
嵌入式
,
动态
,
开发
,
如何
欧洲研究小组利用赛灵思实时部分可重配置FPGA 的功能开发出更可靠的系统。
作者:Fabio Giovagnini
软件经理
Aurion S.r.l., SESM S.C.A.R.L.
fabio.giovagnini@gmail.com
Antonio Di Marzo
嵌入式系统部经理
SESM S.C.A.R.L.
adimarzo@sesm.it
部分动态可重配置(PDR)是一种全新的FPGA 配置和重编程方法。与标准的FPGA 重配置流程不同,部分动态重配置可在FPGA其它部分运行过程中,根据用户设计需要,对器件的一小部分进行修改。不像标准的重配置方法一样,在外部控制器或内部胶合逻辑芯片重新加载设计到FPGA 上时,需将器件保持在复位状态。使用部分动态重配置技术,当FPGA 的内部或外部控制器将部分设计加载到可重配置模块中时,设计的其它关键部分仍在继续运行。这种技术不仅可优化硬件资源,而且还能降低功耗。
在欧盟研究项目pSHIELD 中,部分动态重配置已经成为研究的课题。这个项目的目的是实现嵌入式系统内在的安全性、隐私性和可靠性(SPD),而不是将嵌入式系统当作“附加”功能进行追踪。pSHIELD 的构想为确保未来嵌入式系统通过SPD 认证向前迈出了第一步。这种先进的构思旨在展现SPD 技术的可组合性。
在这种情况下,我们发现部分动态重配置是实现安全、可靠、可重配置嵌入式系统的关键技术。该新技术的研究涉及到了如何在赛灵思部分动态可重配置设计流程中实现一个项目演示器(一种可重配置频移键控(FSK) 解调器系统)。
FSK 自适应解调器
FSK 自适应解调器是我们开发用于演示pSHIELD SPD 模式的概念验证。事实上它就是使用简单的系统管理数据流。
图1 是该FSK 自适应解调器SPD 节点的硬件实现方框图。
作为高频无线电频谱中最常见的数字调制方式,FSK 在电话线路中有重大用途。这种技术通过二进制方式移动连续载波的频率,实现数据传输。其中一个频率被命名为“马克”频率,即频率f0;另一个频率被命名“空间”频率,即频率f1。马克频率与符号1 关联,为较高频率;而空间频率与符号0 关联,为较低频率。在如表1 所示的FSK 信号中,马克频率是1,031 Hz,空间频率是968 Hz。
在FSK 完成解调后,信号和载波相乘(或数控振荡器和复用器,即图2 中的I2 和I1 模块),然后进行低通滤波。低通滤波器或环路滤波器(图2 中的I3模块)的作用是将马克符号和空间符号区分开。空间符号的幅度会大于马克符号的幅度。
环路滤波器的输出进入16 抽头有限脉冲响应(FIR;图2 中的I4 模块)滤波器,执行数字低通滤波。FIR 滤波器实际上就是一个平均滤波器,因其输出等于前面n个抽头样本输入的平均值,其中n 代表所使用的抽头数。这种配置需要16 个系数,但可以通过假定所有系数相同(均为1/16)来加以简化配置过程。实际上,可以只进行4 位右移位运算,然后乘以1/16。
FSK 自适应解调器能够动态地适应载波Fc0 和Fc1 的不同频率。一般的通信方案中有两个模块:调制器和解调器。自适应解调器能够自动在两个不同载波间切换,以便与调制器完成的载波切换匹配。调制器切换载波的原因有多种,其中包括传输错误、噪声过大或者存在入侵当前载波的风险。
FSK 自适应解调器还有一个名为载波控制器的内置模块。该模块通过分析接收到的数据的一致性,能够持续地检查发送信号的完整性。载波控制器根据分析结果,驱动重配置状态。
FSK 自适应解调器可将自身重配置为两种不同的模式,每种模式都能在给定的Fc0 和Fc1 载频上对调制的信号进行解码。配置的过程根据部分动态可重配置方法进行。图3 是FSK 自适应解调器的总体布局。我们使用软件实现的载波控制器可作为单项任务运行在PowerPC® 440 上,执行数据完整性检查。一旦出现通信错误,载波控制器将使用内部配置访问端口(ICAP)软件原语强制发生一个重配置事件。
我们使用赛灵思开发板ML507 设计我们的FSK 自适应解调器。该嵌入式系统FPGA 开发板配备RocketIOTM GTX 收发器,可提供一款功能丰富的通用评估与开发平台。其内置有板载存储器和业界标准连接功能接口,能够为嵌入式应用提供多功能开发平台。
部分可重配置(PR)设计流程的第一步是在我们顶层设计中找出部分可重配置模块(PRM)。我们必须为每个模块定义输入输出信号接口。在我们的这个案例中,我们确定了一个部分可重配置模块,名为解调器。
部分动态可重配置设计流程
典型的静态赛灵思ISE® 设计套件流程由下面四大步骤组成:
设计/ 编辑
综合
实现
器件配置
部分可重配置设计流程比这个流程更复杂。图4 是简化的部分动态重配置设计流程。
第一步是在我们的顶层设计中找出部分可重配置模块(PRM)。我们必须为每个模块定义输入输出信号接口。在我们的这个案例中,我们确定了一个部分可重配置模块,名为解调器。下面的编码用于描述解调器接口:
ENTITY Demodulator IS
PORT (
clk : IN std_logic;
--Main Entity clock
reset : IN std_logic;
--High active reset
fmin : IN std_logic_
vrctor ( 7 DOWNTO 0);
--Modulated fsk signal
dmout : OUT std_logic_
vrctor (11 DOWNTO 0); --Predemodulated
signal
clko : OUT std_logic;
--Synch. FIFO signal
dbg : OUT std_logic;
--debug line
);
END Demodulator;
鉴于当前设计中我们需要一定数量的PRM,下一步是使用XST 工具生成n 个PRM 网表文件。XST 的输出由NGC 文件组成。NGC 是一个内含逻辑数据和约束的网表。最终我们生成n 个NGC 文件。在我们准备把这些NGC 文件用在部分可重配置项目中时,应确保禁用IOBUF 功能。
对我们的项目而言,我们有两个NGC 文件:一个为1k 解调器和另一个为2k 解调器。这两个模块的差异是其中一个模块有设置约为1KHz 的数控振荡器(NCO),另一个设置约为2KHz。
既然我们在我们的系统中使用两个NGC 文件,我们必须创建一个设计来托管PRM。使用XPS,我们可以构建一个片上系统(SoC),将所有所需的模块和控制器通过XPS 菜单实例化。另外,我们必须创建一个黑盒IP 用于托管我们之前用XST 工具创建的PRM 模块。为此,我们可以选择XPS 中提供的“创建和导入外设向导”选项。
在我们这个案例中,我们使用适当的选项创建一个名为FSKDemodulator的黑盒模块。该向导流程生成两个VHDL 文件,分别为FSKDemodulator.vhd 和User _ logic . vhd 。FSKDemodulator.vhd 是在可编程系统层面与我们的PRM 模块(解调器)关联的顶层。这个文件用外设本地总线(PLB)v4.6 等可编程系统组件定义PRM 模块的接口。User_logic.vhd 为用户逻辑功能,其包含PRM 模块的实例。一旦完成可编程系统设计,我们就能为该配置生成NGC 文件。
使用XPS,我们定义了可编程系统架构和通用系统架构。值得注意的是,我们在XPS 中把全部PRM 定义为黑盒。
使用PlanAhead ™, 可以将XST和XPS 两个进程的输出和NGC 文件汇总,从而得到一些PRM 比特流和一个默省比特流。然后使用XPS 生成的NGC 文件和XST 生成的NGC 文件之一定义和构建顶层实现。设计人员随后需要向设计加入部分可重配置区域,且必须指定与之关联的NGC 文件。最后一步是提升该配置,使该实现设计成为在启动时加载到系统中的默省系统实现。
该进程的输出即为默省比特流。为构建PRM 的比特流文件,我们必须重新打开PlanAhead,从头开始勾选“PR项目”, 以导入全部NGC 文件。PlanAhead 将为每个PRM 生成一个单独的比特流。在本例中它生成两个PRM比特流,一个用于demodulator1k,另一个用于demodulator2k。
对调试流程, 我们建议创建n 个(PRM 的数量)不同的静态实现,用于每一个PRM。在这种情况下,设计人员将完成n 个完整的静态实现,每一个都执行静态连接到FPGA 的第n 个PRM的功能。我们认为这是调试需求和开发复杂程度之间良好的折衷。
最后一步是把生成的比特流下载到目标器件上。如果需要在CompactFlash中的存储比特流和System ACETM 文件,用户可以使用IMPACT 工具、命令行data2men 和赛灵思微处理器调试器(XMD)工具对器件编程。在本案例中,我们选用命令行方法对器件编程,因为赛灵思开发板ML507 上含有CompactFlash, 系统ACE 把CompactFlash 视为引导器件来管理。
可转换器件
与静态可重配置相比,部分动态可重配置技术从完成重配置所花的时间来说非常高效。虽然所花的时间与PRM的物理尺寸有关,如果这些模块与完整的比特流相比能小上一个增益因数,重配置的时间就会是从数百毫秒降低到数十毫秒。部分动态重配置的使用让FPGA 系统设计步上新的台阶,让设计人员有机会大幅降低整个系统的功耗和成本。
对安全、隐私和可靠性是主要因素的欧盟pSHIELD 研究项目而言,我们发现部分动态重配置技术极其有用。即时修改加密算法或通信协议,同时保持其他功能正常运行的能力可带来巨大优势。采用这种方法,我们认为FPGA 会为电子设计开启新的时代。我们预计系统将具备修改自身功能,让自己适应特定场景或应付特定威胁的能力。简言之,我们将迎接一个由可转换器件组成的世界的到来。
收藏
分享
评分
记录学习中的点点滴滴,让每一天过的更加有意义!
回复
引用
订阅
TOP
返回列表
测试测量
嵌入式技术
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议