最新日志

发表于:2007-10-5 16:46:40
标签:无标签

1

为什么51系列单片机常用11.0592MHz的晶振设计

答1: 因为它能够准确地划分成时钟频率,与UART(通用异步接收器/发送器)量常见的波特率相关。特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确,常被使用的。

    答2: 当定时器1被用作波特率发生器时,波特率工作于方式1和方式3是由定时器1的溢出率和SMOD的值(PCON.7------双倍速波特率)决定:

    方式1、3波特率= (定时器1的溢出率)

    特殊时,定时器被设在自动重袋模式(模式2,TMOD的高四位为0100B),其为:

    方式1、 3波特率=

    11.0592MHZ晶振的一些典型波特率如下:
 

波特率

SMOD

TH1

19200

1

0FDH

9600

0

0FDH

4800

0

0FAH

2400

0

0F4H

1200

0

0E8H

300

0

0A0H

    更换一种计算方式,它将以修改公式达到我们需求的波特率来计算出晶振。

    最小晶振频率=波特率x 384 x 2 SMOD

    这就是我们所需波特率的最小晶振频率,此频率能成倍增加达到我们需求的时钟频率。

    例如:波特率为19.2KH2的最小晶振频率:
          3.6864=19200x384x2(波特率为19.2K的SMOD为1 )
          11.0592=3.6864x3
          其中TH1是由倍乘数(3)确定
          TH1=256-3=253=0FDH

    用来确定定时器的重装值,公式也可改为倍乘数的因子:

    晶振频率=波特率x(256-TH1)x384x2 SMOD

    这是波特率为19.24K的晶振频率。

    以上的例子可知,被乘数(3)是用来确定TH1:

    TH1=256-3=253=0FDH
    19.2K波特率的晶振为 11.0592=19200x(256-0FDH)x384x2(19.2 k的SMOD为1)

    其它值也会得出好的结果,但是11.0592MHZ是较高的晶振频率,也允许高波特率。

点击此处查看原文 >>

系统分类: 单片机   |    用户分类: 无分类    |    来源: 转贴

评论(0) | 阅读(485)
发表于:2007-8-4 11:13:47
标签:无标签

0

嵌入式系统开发的三层境界

嵌入式系统开发的三层境界!
 
第一层的表现是热衷学习和使用新的技术,但都限于局部,比如新的 CPU、可编程技术、网络、有线无线、各种嵌入式操作系统、各种总线、甚至于新的存储器件等。应该说第一阶段对以后的发展很有作用,所以尽管向追星一样追随各种新鲜技术吧,保持自己的热血沸腾和对知识的渴望最重要。其中我认为 CPU 和嵌入式操作系统是一个现代嵌入式系统开发人员(注意,是系统开发人员,而不是硬件设计和软件设计)应该深入理解的,硬件出身的人多接触软件思想更应该是嵌入式系统开发的趋势。

经过第一层的洗礼,如果你还对嵌入式系统热情不减,你可能自然走进第二层,此时,以前热衷过的技术都被抽象了,面对新的 CPU 或 OS,你只需看看它的新特性就知道它是否会给你的系统带来更多的好处,从而决定你是否使用它,各种总线也只是转化成带宽等各种指标,总之,每个部分在系统中的作用和影响已经烂熟于心,所以能达到取舍自如!

第二层到第三层的转变应该不是简单的时间累计,而是取决一个人对系统深入的思考和理解,此时可能对你的挑战更多来自于对需求的理解和实现规划,以及对系统的创意。随后便只是如上了流水线一样的规格设计,软硬件分工与协同设计,完整的测试。现在的系统在你眼中更像一个自己创造的生机勃勃的生命:CPU 像大脑一样有条不紊的调度,电源如心脏一般向系统传递能量,每个模块的功耗都是如此恰到好处,数据流似血液一样在系统中流动。此时你可以享受追求技术给人生带来的愉悦了吧!

点击此处查看原文 >>

系统分类: DSP   |    用户分类: 无分类    |    来源: 转贴

评论(0) | 阅读(611)
发表于:2007-8-1 21:26:43
标签:无标签

0

Altera FPGA、CPLD 学习笔记

1.硬件设计基本原则

1)        速度与面积平衡和互换原则:一个设计如果时序余量较大,所能跑的频率远高于设计要求,能可以通过模块复用来减少整个设计消耗的芯片面积,这就是用速度优势换面积的节约;反之,如果一个设计的时序要求很高,普通方法达不到设计频率,那么可以通过数据流串并转换,并行复制多个操作模块,对整个设计采用 “乒乓操作”和“串并转换”的思想进行处理,在芯片输出模块处再对数据进行“并串转换”。从而实现了用面积复制换取速度的提高。

2)        硬件原则: 理解HDL本质

3)        系统原则: 整体把握

4)        同步设计原则:设计时序稳定的基本原则

 

2.Verilog作为一种HDL语言,对系统行为的建模方式是分层次的。比较重要的层次有系统级(system)、算法级(Algorithm)、寄存器传输级(RTL)、逻辑级(Logic)、门级(Gate)、电路开关级(Switch)。

 

3.实际工作中,除了描述仿真测试激励(Testbench)时使用for循环语句外,极少在RTL级编码中使用for循环,这是因为for循环会被综合器展开为所有变量情况的执行语句,每个变量独立占用寄存器资源,不能有效的复用硬件逻辑资源,造成巨大的浪费。一般常用Case代替。

 

4.If…else…和case在嵌套描述时是有很大区别的,If…else…是有优先级的,一般来说,第一个If的优先级最高,最后一个else的优先级最低。而case语句是平行语句,它是没有优先级的,而建立优先级结构需要耗费大量的逻辑资源,所以能用case的地方就不要用if…else…语句。补充:1.也可以用if….; if…; if…;描述不带优先级的“平行”语句。

     

5.FPGA一般触发器资源比较丰富,而CPLD组合逻辑资源更丰富。

 

6. FPGA和CPLD的组成

       FPGA基本有可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等6部分组成。

       CPLD的结构相对比较简单,主要由可编程I/O单元、基本逻辑单元、布线池和其他辅助功能模块组成。

 

7.Block RAM:

       3种块RAM结构,M512 RAM(512bit)、M4K RAM(4Kbit)、M-RAM(64Kbit).

              M512 RAM:适合做一些小的Buffer、FIFO、DPRAM、SPRAM、ROM等;

              M4K RAM: 适用于一般的需求

       M-RAM: 适合做大块数据的缓冲区。

Xlinx 和 Lattice FPGA的LUT可以灵活配置成小的RAM、ROM、FIFO等存储结构,这种技术被称为分布式RAM。

 

8.善用芯片内部的PLL或DLL资源完成时钟的分频、倍频率、移相等操作,不仅简化了设计,并且能有效地提高系统的精度和工作稳定性。

 

9.异步电路和同步时序电路的区别

异步电路:

电路核心逻辑有用组合电路实现
       异步时序电路的最大缺点是容易产生毛刺。
       不利于器件移植
       不利于静态时序分析(STA)、验证设计时序性能。
同步时序电路:

       电路核心逻辑是用各种触发器实现

       电路主要信号、输出信号等都是在某个时钟沿驱动触发器产生的

       同步时序电路可以很好的避免毛刺

       利于器件移植

利于静态时序分析(STA)、验证设计时序性能。

 

10.同步设计中,稳定可靠的数据采样必须遵从以下两个基本原则:

1)        在有效时钟沿到达前,数据输入至少已经稳定了采样寄存器的Setup时间之久,这条原则简称满足Setup时间原则;

2)        在有效时钟沿到达后,数据输入至少还将稳定保持采样寄存器的Hold时钟之旧,这条原则简称满足Hold时间原则。

 

11.同步时序设计注意事项:

异步时钟域的数据转换。

组合逻辑电路的设计方法。

同步时序电路的时钟设计。

同步时序电路的延迟。同步时序电路的延迟最常用的设计方法是用分频或者倍频的时钟或者同步计数器完成所需的延迟,对比较大的和特殊定时要求的延时,一般用高速时钟产生一个计数器,根据计数产生延迟;对于比较小的延迟,可以用D触发器打一下,这样不仅可以使信号延时了一个时钟周期,而且完成了信号与时钟的初次同步。在输入信号采样和增加时序约束余量中使用。另外,还有用行为级方法描述延迟,如“#5 a<=4’0101;”这种常用于仿真测试激励,但是在电路综合时会被忽略,并不能起到延迟作用。

Verilog 定义的reg型,不一定综合成寄存器。在Verilog代码中最常用的两种数据类型是wire和reg型,一般来说,wire型指定的数据和网线通过组合逻辑实现,而reg型指定的数据不一定就是用寄存器实现,如下例就是个纯组合逻辑设计,综合与实现结果没有使用FF。

module Reg_c( Reset,cs,Din,Dout,Addr)

       input  Reset;

       input  cs;

       input  [7:1]  Din;

       input  [1:0]   Addr;

output  [1:0]  Dout;

       reg [1:0]      Dout

     

       always @(Reset or cs or Addr or Din)

        if(Reset)

             Dout = 0;

        else if(!cs)

             begin

             case(Addr)

                    2'b00: Dout = Addr[1:0];

                    2'b01: Dout = Addr[3:2];

                    2'b10: Dout = Addr[5:4]

                    default: Dout = Addr[7:6]

             endcase

              end

       else

              Dout = 2'bzz;

       Endmodule

 

12.常用设计思想与技巧

       乒乓操作(P27)

       串并转换

       流水线操作

异步时钟域数据同步。是指如何在两个时钟不同步的数据域之间可靠地进行数据交换的问题。数据时钟域不同步主要有两种情况:

两个域的时钟频率相同,但是相差不固定,或者相差固定但是不可测,简称为同频异相问题。

两个时钟频率根本不同,简称异频问题。

 

13.两种不推荐的异步时钟域操作方法:

一种是通过增加Buffer或者其他门延时来调整采样;

另一种是盲目使用时钟正负沿调整数据采样。

 

14.异步始终域数据同步常用方法:

(1).同频异相问题

解决

P31

15.模块划分基本原则:

1)        对每个同步时序设计的子模块的输出使用寄存器(用寄存器分割同步时序模块原则)。

2)        将相关逻辑和可以复用的逻辑划分在同一模块内(呼应系统原则)。

3)        将不同优化目标的逻辑分开。

4)        将送约束的逻辑归到同一模块。

5)        将存储逻辑独立划分成模块。

6)        合适的模块规模。

16.组合逻辑的注意事项

1.避免组合逻辑反馈环路(容易毛刺、振荡、时序违规等)
解决:

a.  牢记任何反馈回路必须包含寄存器

b.  检查综合、实现报告的warning信息,发现反馈回路(combinational loops)后进行相应修改。

2.替换延迟链
解决:用倍频、分频或者同步计数器完成。

3.替换异步脉冲产生单元(毛刺生成器)
解决:用同步时序设计脉冲电路

4.慎用锁存器

解决:

a.  使用完备的if…else语句

b.  检查设计中是否喊有组合逻辑反馈环路

c.  对每个输入条件,设计输出操作,对case语句设置default操作。特别是在状态机设计中,最好有一个default的状态转移,而且每个状态最好也有一个default的操作。

d.  如果使用case语句时,特别是在设计状态机时,尽量附加综合约束属性,综合为完全条件case语句。

小技巧:仔细检查综合器的综合报告,目前大多数的综合器对所综合出的latch都会报“warning”,通过综合报告可以较为方便地找出无意中生成的latch。

17.时钟设计的注意事项

1.同步时序电路推荐的时钟设计方法
       时钟经全局时钟输入引脚输入,通过FPGA内部专用的PLL或DLL进行分频/倍频、移相等调整与运算,然后经FPGA内部全局时钟布线资源驱动到达芯片内所有寄存器和其他模块的时钟输入端。

点击此处查看原文 >>

系统分类: CPLD/FPGA   |    用户分类: 无分类    |    来源: 转贴

评论(3) | 阅读(1016)
发表于:2007-7-5 19:18:40
标签:无标签

1

联合仿真并且使用ModelSim验证VHDL以及Verilog语言

Link for ModelSim@
——联合仿真并且使用ModelSim验证VHDL以及Verilog语言

Link for ModelSim@是一个把MATLAB/Simulink和针对FPGA 和ASIC的硬件设计流程无缝连结起来的联合仿真的接口扩展模块。 它提供一个快速的双向连接将MATLAB/Simulink和硬件描述语言仿真器ModelsSim连接起来,使二者之间直接的联合仿真成为可能,并且更高效的在MATLAB/Simulink中验证ModelSim中的寄存器传输级(RTL)模型。

传统的Simulink系统级设计和其仿真环境支持M语言,C/C++以及Simulink模块。而通过添加硬件描述语言(HDL)到MATLAB/Simulink中,扩展了MATLAB/Simulink的并行运行能力、直接性以及混合语言编程的能力。这使得Link for ModelSim模块缩小了算法和系统设计同硬件实现之间的巨大鸿沟。

  
 特点:
  • ModelSim与MATLAB和Simulink的连接是双向的,可进行联合仿真,验证,可视化;
  • 支持ModelSim的PE和SE版本。
  • 支持MATLAB/Simulink和ModelSim之间的用户可选通信模式。
  • 提供共享存储器获得更快的系统性能,同时提供TCP/IP Socket字加强多样性。
  • 提供联合仿真的Simulink模块的库文件。
  • 可以把输出测试结果转成VCD(value change dump)文件格式。
  • 支持多个并行的ModelSim实例以及支持在Simulink和MATLAB函数中的多个硬件描述实体。
  • 提供在MATLAB环境下与硬件描述语言交互式或批处理模式来进行联合仿真、调试、测试、以及验证工作。
 函数和模块应用:
  • 生成VCD格式的文件;
  • 联合仿真硬件(HDL)器件
  • 提供同ModelSim软件的HDL模型输入接口功能
  • 提供读取ModelSim里的HDL模型输出的功能
  • 可配置ModelSim以联合使用MATLAB和Simulink
  • 通过Link for ModelSim启动ModelSim
  • 载入VHDL模型实体(entity)的例子以联合使用MATLAB
  • 载入VHDL模型实体(entity)的例子以联合使用Simulink
  • 对Verilog代码进行打包封装

  函数和模块支持联合仿真以及对VHDL和Verilog语言设计验证,以此将MATLAB 、Simulink、ModelSim联合起来进行仿真。  
                
 强大功能:  

  Link for ModelSim使用客户端/服务器体系来提供MATLAB/Simulink和ModelSim之间的接口。可以在一个单独的MATLAB环境或Simulink模型下提供与多个HDL实体和ModelSim的接口。
                
  • 典型应用

       使用Link for ModelSim,工程师可以建立一个有效的环境来进行联合仿真、器件建模、以及分析和可视化。可进行如下的实例开发:
    • 在MATLAB或Simulink中针对HDL实体开发软件测试程序
    • 在Simulink中对包含在大规模系统模型中的HDL模型进行开发和仿真
    • 生成测试向量进行测试、调试,以及同MATLAB/Simulink下的规范原型进行HDL代码的验证
    • 在MATLAB/Simulink下对HDL行为级建模
    • 在MATLAB/Simulink下对HDL的实现进行验证、分析、可视化Link for ModelSim中MATLAB与ModelSim接口和Simulink与ModelSim接口是独立的。用户可以单独使用一个接口或同时使用两个。

  • ModelSim和MATLAB的接口   

      使用Link for ModelSim后,工程师可以使用MATLAB和它提供的工具箱,比如设计和仿真信号处理,或者其它的数值计算算法。 工程师还可以用HDL来取代算法和系统设计中的器件模型,并直接完成HDL器件和MATLAB中剩余算法的联合仿真。
  • ModelSim和Simulink的接口

      工程师可以通过Simulink和相关的Blockset创建关于信号处理方面或者通信系统方面的系统级设计。工程师也可以把HDL器件合并到设计中或者用HDL模块来取代相应的子系统。 将MATLAB中获得的测试基准代码输出到VHDL实体中,并把ModelSim的输出送入到MATLAB函数中。并借此来创建软件测试基准来验证工程师的HDL实现。ModelSim中联合仿真模 块的参数对话框可以让工程师很容易的设置输入输出端口、二者连接的属性、时钟以及TCL命令。
                    
  • Link for ModelSim还提供一个模块来生成VCD的文件格式,可以用来:

      用户可以对产生的代码进行手工优化,也可以在Simulink里使用预先优化好的模块来搭建模型,这样在产生代码时,会调用库里经过优化的汇编代码实现这些模块,达到优化效果。C62x和C64x的优化库支持位对齐(bit true)仿真。
    • 观察在HDL仿真环境下的Simulink仿真波形
    • 使用相同或不同的仿真环境来比较多个不同仿真运行的结果。
    • 提供到后仿真分析工具的输入端口。

                    
      对于滤波器的应用实例,联合仿真以及软件测试基准是作为其设计实现的一部分,相当于在ModelSim中运行VHDL代码
  • 支持Verilog语言
      Link for ModelSim本身就提供对VHDL语言的联合仿真的支持。同时工程师还可以通过在VHDL wrapper中自动封装Verilog代码, 使得其可以支持Verilog语言的联合仿真。于是Verilog代码相当于直接在ModelSim前端就执行完毕,而忽略其性能影响。Verilog代码和MATLAB的连接可以通过VHDL wrapper和Link for ModelSim来实现,这就使工程师可以使用Verilog硬件描述设计来完成和MATLAB之间联合仿真、软件测试基准、验证以及可视化。
                    
      Manchester接收器的联合仿真和软件测试基准的实例。
  • 与Xilinx System Generator 以及Altera DSP Builder的统一
      Link for ModelSim可以和Xilinx System Generator或Altera DSP Builder协同工作。这意味着可以使用Xilinx System Generator 以及Altera DSP Builder来完成部分系统设计。因此可以在一个完整的环境下进行MATLAB、 C/C++、Simulink blocks、自己设计的HDL实体、以及Xilinx System Generator 所提供的模块或Altera DSP Builder blocks所提供模块的联合仿真。
 需要的产品:
    
  使用Link for ModelSim需要以下的产品:
  • MathWorks产品:
    • 针对只使用同MATLAB联合仿真功能需要
    • MATLAB
    • 推荐 Fixed-Point Toolbox
    • 针对使用MATLAB和SIMULINK联合仿真功能需要
    • MATLAB
    • Simulink
    • Simulink Fixed-point
  • 第三方产品:
    • Code Composer  Studio Development Tools

点击此处查看原文 >>

系统分类: CPLD/FPGA   |    用户分类: 无分类    |    来源: 转贴

评论(1) | 阅读(1556)
发表于:2007-7-5 18:53:16
标签:无标签

0

DSP Builder系统设计工具

 DSP Builder是Altera推出的一个数字信号处理(DSP)开发工具,它在Quartus Ⅱ FPGA设计环境中集成了MathWorks的Matlab和Simulink DSP开发软件。Altera的DSP系统体系解决方案是一项具有开创性的解决方案,它将FPGA的应用领域从多通道高性能信号处理扩展到很广泛的基于主流DSP的应用,是Altera第一款基于C代码的可编程逻辑设计流程。

        在Altera基于C代码的DSP设计流程中,设计者编写在Nios Ⅱ嵌入处理器上运行的C代码。为了优化DSP算法的实现,设计者可以使用由Matlab和Simulink工具开发的专用DSP指令。这些专用指令通过Altera的DSP Builder和SOPC Builder工具集成到可重配置的DSP设计中。对DSP设计者而言,与以往FPGA厂商所需的传统的基于硬件描述语言(HDL)的设计相比,这种流程会更快、更容易。

        除了全新的具有软件和硬件开发优势的设计流程之外,Altera DSP系统体系解决方案还引入了先进的Stratix和Stratix Ⅱ系列FPGA开发平台。Stratix器件是Altera第一款提供嵌入式DSP块的FPGA,其中包括能够有效完成高性能DSP功能的乘法累加器(MAC)结构。Stratix Ⅱ FPGA能够提供比Stratix器件高四倍的DSP带宽,更适合于超高性能DSP应用。

6.1  DSP Builder安装

6.1.1  软件要求

        使用DSP Builder创建HDL设计需要有下面的软件支持:

        ?  Matlab 6.1或6.5版本;

        ?  Simulink4.1或5.0版本;

        ?  Quartus Ⅱ 2.0以上版本;

        ?  Synplify 7.2以上版本或LeonardoSpectrum 2002c以上版本(综合工具);

        ?  ModelSim5.5以上版本(仿真工具)。

6.1.2  DSP Builder软件的安装

        在安装DSP Builder之前,首先安装Matlab和Simulink软件以及Quartus Ⅱ软件。如果要使用第三方EDA综合和仿真工具,需要安装综合工具LeonardoSpectrum或Synplify以及仿真工具ModelSim。

        在Windows 98/NT/2000操作系统上安装DSP Builder,其操作步骤如下:
        (1)  关闭以下应用软件:Quartus Ⅱ、MAX+PLUS Ⅱ、LeonardoSpectrum、Synplify、Matlab和Simulink以及ModelSim。

        (2)  找到软件所在目录,双击DSPBuilder-v2.1.3.exe文件。

        (3)  在出现的安装向导中,根据提示操作即可完成DSP Builder的安装。

        如果在安装DSP Builder之前还没有安装Matlab软件,则在DSP Builder安装向导的最后将弹出如图6.1所示的对话框。

点击看大图


        完成DSP Builder安装之后,依据下面的操作步骤在Matlab软件中查看DSP Builder的库:

        (1)  启动Matlab软件。

        (2)  点击Matlab工具条上的Simulink快捷按钮,或在Matlab命令窗口输入Simulink命令,打开Simulink Library Browser界面,如图6.2所示。

        (3)  在Simulink Library Browser界面中打开Altera DSP Builder文件夹。


 
点击看大图
        DSP Builder安装程序在磁盘上的目录结构如图6.3所示。

点击看大图


6.1.3  授权文件的安装

在使用DSP Builder之前,必须得到Altera的授权文件。如果没有安装DSP Builder的授权文件,用户只能用DSP Builder模块建立Simulink模型,但不能生成硬件描述语言(HDL)文件或Tcl脚本文件。

注意:在安装DSP Builder授权之前,必须已经安装了授权的Quartus Ⅱ软件。

1. 授权文件安装

得到DSP Builder授权文件后,可以直接将授权文件的内容粘贴到Quartus Ⅱ授权文件(license.dat)中,或在Quartus Ⅱ软件中单独指定DSP Builder授权文件。

方法一:粘贴授权内容到Quartus Ⅱ授权文件中,其操作步骤如下:

(1)  关闭运行的下列应用软件:Quartus Ⅱ、MAX+PLUS Ⅱ、LeonardoSpectrum、Synplify、Matlab和Simulink以及ModelSim。

(2)  在文本编辑器中打开DSP Builder授权文件,其中包含FEATURE行。

(3)  在文本编辑器中打开Quartus Ⅱ授权文件license.dat。

(4)  从DSP Builder授权文件中拷贝FEATURE行内容并粘贴到Quartus Ⅱ授权文件中。

(5)  保存Quartus Ⅱ授权文件。

更新后的Quartus Ⅱ授权文件如图6.4所示。

方法二:在Quartus Ⅱ软件中指定DSP Builder授权文件,其操作步骤如下:

(1) 将DSP Builder的授权文件以一个不同的文件名单独保存,如dsp_builder_license.dat。

(2)  启动Quartus Ⅱ软件。

(3)  选择Tools→License Setup命令,弹出Options对话框的License Setup页面。

(4)  在License File栏中,在已经存在的Quartus Ⅱ授权文件后面加一个分号“;”,在分号后面输入DSP Builder授权文件所在的目录及文件名。

(5)  点击0K按钮保存设置。

2. 授权有效性检查

  安装好DSP Builder授权文件以后,可以在Matlab软件中验证授权的功能是否有效。

1) 单机版授权

  在Matlab命令窗口输入下面的命令:

      dos(`lmutil lmdiag C4D5_5l2A`)

如果授权文件安装正确,则该命令产生的DsP Builder授权状态输出如图6.5所示。


2) 网络版授权

如果在授权文件中存在SERVER,在Matlab命令窗口输入下面的命令:

      dos(`lmutil lmstat-a`)

如果网络版授权文件安装正确,则该命令产生的DSP Buildel授权状态输出如图6.6所示。

点击看大图


6.2 嵌入式DSP设计流程

为使信号处理设计者直接领悟可编程逻辑的优点,无需学习新的设计流程或编程语言, Altera提出了一套新颖的设计流程。

6.2.1  DSP设计流程

Altera DSP设计流程提供了系统级综合,并且为DSP系统的软、硬件分离设计提供了灵活性。另外,Altera支持基于硬件描述语言(HDL)和基于C/C++的设计流程。Altera的整套开发工具提供了完整的设计平台,包括DSP Buildel、SOPC Builder和Quartus Ⅱ软件,允许用户在系统设计中提高性能,并获得软、硬件综合设计的灵活性。图6.7给出了Altera DSP设计的总体流程图。

点击看大图

6.2.2  DSP Builder设计流程

DSP设计者可以使用DSP Builder和Quartus Ⅱ软件单独进行硬件设计。DSP Builder提供了一个无缝链接的设计流程,允许设计者在Matlab软件中完成算法设计,在Simulink软件中完成系统集成,然后通过SignalCompiler模块生成在Quartus Ⅱ软件中可以使用的硬件描述语言文件。使用DSP Builder工具,设计者可以生成寄存器传输级(RTL)设计,并且在Simulink中自动生成RTL测试文件。这些文件是已经被优化的预验证RTL输出文件,可以直接用于Altera Quartus Ⅱ软件中进行时序仿真比较。这种开发流程对于没有丰富可编程逻辑设计软件开发经验的设计者来说非常直观、易学。

DSP Builder具备一个友好的开发环境,它可以通过帮助设计帅创建一个DSP设计的硬件表示来缩短DSP开发的周期。现有的Matlab功能和Simulink块与Altera的DSP Builder块和Altera的知识产权(IP)MegaCore功能块组合在一起,从而把系统级的设计和DSP算法的实现连接在一起。DSP Builder允许系统、算法和硬件设计共享一个通用的开发平台。

在DSP Builder中,设计者可以使用DSP Builder中的块来为Simulink中的系统模型创建一个硬件。DSP Builder中包含了按位和按周期精确的Simulink块,这些块覆盖了最基本的操作,例如运算和存储功能。通过使用MageCore功能,复杂的功能也可以被集成进来。MegaCore功能支持Altera的IP评估特性,用户在购买授权之前可以进行功能和时序上的验证。

  (1)  OpenCore使工程师能够不用任何花费在Quartus Ⅱ软件中测试IP核,但不能生成器件的编程文件,从而无法在硬件上测试IP核。

(2)  OpenCore Plus是增强的OpenCore,可以支持免费在硬件上对IP进行评估。这个特性允许用户为包含了Altera MageCore功能的设计产生一个有时间限制的编程文件。通过这个文件,设计者可以在购买授权许可之前就在板级对MegaCore功能进行验证。

DSP Builder的SignalCompiler块读入Simulink模型文件(.mdl),该模型文件是用DSP Builder和MegaCore块生成的,然后生成VHDI文件和Tcl脚本文件,用于综合、硬件的实现以及仿真。

图6.8所示为DSP Builder的设计流程。

点击看大图


6.3 DSP Builder设计过程

本节利用DSP Builder软件提供的一个幅度调制设计实例来说明DSP Builder设计过程。该设计实例文件在<DSP Builder安装目录>\DesignExamples\GettingStarted\SinMdl文件夹中,设计中包括正弦波发生器模块、积分乘法器模块和延时单元,每个模块都是参数可变的。

6.3.1  创建Simulink设计模型

1. 创建新模型

  创建新模型的步骤如下:

  (1)  启动Matlab软件。

  (2)  点击Matlab工具条上的Simulink快捷按钮,或在Matlab命令窗口输入Simulink命令,打开Simulink Library Browser界面,如图6.2所示。

  (3)  选择File→New→Model命令,建立一个新的模型文件。

  (4)  选择File→Save命令,保存文件到指定文件夹中,在文件名栏中输入Singen.mdl。

  2.加入SignalCompiler模块

  (1)  在Simulink Library Browser界面中,打开Altera DSP Builder文件夹。

  (2)  在Altera DSP Builder文件夹中选择AltLab库。

  (3)  拖动SignalCompiler模块到新建的模型文件中。

  (4)  用鼠标左键双击SignalCompiler模块,在弹出的对话框中点击Analyze按钮,弹出Signal Compiler Version 2.1.3对话框,如图6.9所示。

点击看大图
(5)  在Signal Compiler Version 2.1.3对话框中选择目标器件类型;指定综合工具,可选LeonardoSpectrum、Synplify或Quartus Ⅱ;选择优化条件,可选Speed或Area。

(6)  点击OK按钮。

(7)  选择File→Save命令保存文件。

3.为SignalCompiler指定综合软件路径信息

在设计模型文件中加入SignalCompiler模块以后,需要指定综合工具软件,如LeonardoSpectrum、Synplify或Quartus Ⅱ。默认情况下,SignalCompiler在执行综合过程中从PC机的注册表中查找指定综合软件所在的安装路径。如果综合过程中SignalCompiler找不到综合软件所在的路径,在Message栏中将提示综合失败。

DSP Builder 2.0以上版本允许用户为SignalCompiler指定综合工具路径。在<DSPBuilder安装目录>\Altlib文件夹中包含一个XML配置文件edaconfig.xml,其中包含SignalCompiler综合工具的路径信息。通过文本编辑器或任何XML编辑器可以修改这个配置文件。

XML配置文件中每个EDA工具有三种配置信息:

?<GetPathFromRegistry><on or off></GetPathFromRegistry>

?<ForcedPath><安装路径></ForcedPath>

?<ToolVersion><版本号></ToolVersion>

其中<GetPathFromRegistry>部分可设置为on或off。默认为on,表示SignalCompiler从注册表文件中读取路径。当设为off时,SignalCompiler读取<ForcedPath>部分所指定的路径。

edaconfig.xml配置文件的内容如图6.10所示。

图6.10  edaconfig.xml配置文件

4.加入正弦波产生模块

(1)  在SimulinkLibraryBrowser界面点击Simulink中的Sources库,从中找到SineWave模块。

(2)  将Sine Wave模块拖动到Singen.mdl文件中。

(3)  在Sine Wave模块上双击鼠标左键,弹出模块属性对话框,如图6.11所示。

(4)  设置正弦波模块参数,点击OK确定。


5.加入总线端口模块AitBus

(1)  在Altera DSP Builder文件夹中选择Bus Manipulation库。

(2)  从库中选择AltBus模块,拖动到Singen.mdl文件中。

(3)  点击AltBus模块下面的文本,将AltBus改为Sinln。

(4)  双击SinIn模块,弹出模块参数对话框,如图6.12所示,在该对话框中可以设置6位整型输入总线。

(5)  设置模块参数,点击OK按钮确定。


图6.12  模块参数对话框

  6.加入延时模块

  (1)  在Altera DSP Builder文件夹中选择Storage库。

  (2)  选择Delay模块,拖动到Singen.mdl文件中。

  (3)  双击Delay模块,在弹出的模块参数对话框中指定延时深度,如图6.13所示。


(4)  点击OK按钮确认。

  7.加入正弦波延时输出总线模块

  (1)  在Altera DSP Builder文件夹中选择BusManipulation库。

  (2)  选择AltBus模块,将其拖动到Singen.mdl文件中。

  (3)  修改AltBus模块的名称为SinDelay。

  (4)  双击SinDelay模块,在模块参数对话框中选择Node Type为Output Port。

  (5)  选择[number of bits]为16位,并点击OK按钮确定。

  8.加入多路复用MUX模块

  (1)  在Simulink Library Browser界面中选择Simulink下面的Signal Routing库。

(2)  选择Mux模块,将其拖动到Singen.mdl文件中。

(3)  双击Mux模块,设置模块参数,如图6.14所示。

(4)  点击OK按钮确定。

点击看大图
图6.14  加入Mux模块并设置其参数

9.加入随机数模块

(1)  在Simulink Library Browser界面中选择Simulink下面的Sources库。

(2)  选择Random Number模块,将其拖动到Singen.mdl文件中。

(3)  双击Random Number模块,设置模块参数,如图6.15所示,并点击OK确定。


图6.15  设置随机数模块参数

10.加入噪声总线模块

(1)  在Altera DSP Builder文件夹中选择Bus Manipulation库。

(2)  选择AltBus模块,将其拖动到Singen.mdl文件中。

(3)  修改AltBus模块的名称为Noise。

(4)  双击Noise模块,在模块参数对话框中选择Bus TVpe为Single Bit。

(5)  选择[number of bits]为l位,并点击OK按钮确定。

11.加入BusBuild总线模块

(1)  在Altera DSP Builder文件夹中选择Bus Manipulation库。

(2)  选择BusBuild模块,将其拖动到Singen.mdl文件中。

(3)  双击BusBuild模块,设置模块参数,如图6.16所示,点击OK按钮确定。


图6.16  BusBuild总线模块参数设置

12.加入GND模块
(1) 在Altera DSP Builder文件夹中选择BusManipulation库。

(2)  选择GND模块,将其拖动到Singen.mdl文件中。

13.加入乘法器(Product)模块

(1)  在Altera DSP Builder文件夹中选择Arithmetic库。

(2)  选择Product模块,将其拖动到Singen.mdl文件中。

(3)  双击Product模块,设置模块参数,如图6.17所示,点击OK按钮确定。


                                                                   图6.17  乘法器模块参数设置
14.加入乘法器输出总线模块

(1)  在Altera DSP Builder文件夹中选择Bus Manipulation库。

(2)  选择AltBus模块,将其拖动到Singen.mdl文件中。

(3)  修改AltBus模块的名称为StreamMod。

(4)  双击StreamMod模块,在模块参数对话框中选择Bus Xype为Signed Integer,NodeType为Output Port,[number of bits]为19位,并点击OK按钮确定。

15.加入示波器模块

(1)  在Simulink Library Browser界面中选择Simulink下面的Sinks库。

(2)  选择Scope模块,将其拖动到Singen.mdl文件中。

(3)  双击Scope模块,弹出Scope波形显示对话框。

(4)  点击参数设置快捷按钮,在General标签页的Number of axes框中输入3,即以同一时间轴同时显示3个信号波形,如图6.18所示,点击OK按钮确定。

点击看大图
图6.18  示波器显示模块设置

16.连线

将所有模块全部插入Singen.mdl模型文件后,按照图6.19所示连接模块,完成模型文件的设计。


图6.19幅度调制设计实例的模型文件
   
为了在示波器显示模块中区分信号波形,在引入Scope模块的信号线上双击鼠标左键,分别键入SinWave、Modulated BitStream和BitsStream作为信号名。

6.3.2  Simulink设计模型仿真

连接好整个设计模型以后,可以在Simulink软件中仿真设计模型。

(1) 选择Simulation→Simulation Parameters命令,弹出仿真参数设置对话框。

(2) 在Simulation time栏中的Stop time框中输入0.00004(或4e-6),显示2个信号周期(160个采样点),其他参数采用默认设置,如图6.20所示。


图6.20  仿真参数设置

(3)  点击OK按钮退出仿真参数设置对话框。

(4)  选择Simulation→Start命令,或按下Ctrl+T键启动仿真。

(5)  双击模型文件中的Scope模块,打开示波器显示窗口。

(6)  点击示波器显示窗口工具条上的自动范围按钮,则波形显示如图6.2l所示。



图6.12  Sinfen.mdl 实例仿真波形

6.3.3 完成RTL级仿真

完成Simulink软件中的模型设计,仿真成功以后,双击模型设计文件中的SignalCompiler模块,弹出Signal Compiler Version 2.1.3对话框,点击Analyze按钮,弹出如图6.22所示的埘话框。

为了生成模型设计文件的RTL级仿真文件,应完成下面的步骤:

(1)  在图6.22所示的对话框中,点击1-Convert MDL to VHDL按钮,在Messages框中将出现以下提示信息:

    >Generated top level'singen.vhd'files

    >See'singen_DspBuilder_Report.html'report file for additional information

(2)  在可选择的标签页中选择Testbench标签页,选中Generate Stimuli for VHDLTestbench选项,如图6.22所示。

(3)  点击OK按钮确认以上操作。

(4)  在Simulink软件中启动仿真,Signal Compiler生成一个仿真脚本文件和一个VHDL测试台文件,分别为Tb_SinGen.tcl和Tb_SinGen.vhd。

在ModelSim软件中完成RTL仿真,操作步骤如下:

(1)  启动ModelSim软件。

(2)  选择File→Change Directiory命令,指定工作目录。

(3)  选择Tools→Execute Macro…命令(不同的ModelSim版本菜单项可能不同)。

                                                       图6.22  产生VHDL及仿真文件

(4)  在Execute Do File对话框中选择tb_singen.tcl脚本文件,点击打开按钮,ModelSim开始执行脚本文件,最后的结果在波形窗口显示,如图6.23所示。
 


图6.23  ModelSim仿真波形窗口(数字显示)

ModelSim波形可以用数字或模拟两种方式显示。在波形窗口的信号名上双击鼠标左键,或点击鼠标右键选择Signal Properties,则弹出波形信号属性对话框,如图6.24所示。选择Format标签页,并选择Analog选项,此时Analog Display设置框有效。在Scale框中输入合适的比例值,在Height框中输入合适的波形高度值,点击OK按钮确定,波形显示方式变为模拟形式,如图6.25所示。可以将该波形与图6.2l在Simulink中仿真的波形进行比较。



6.3.4  simulink模型设计的综合与编译

对于DSP Builder设计,Altera提供自动和手动两种综合、编译流程。如果DSP Builder.模型是顶层设计,则两种综合与编译流程都可以使用;如果DSP Builder模型不是顶层设计,而是非DSF Builder硬件设计中的一个独立模块,则只能使用手动综合、编译流程,在DSP Buildei软件之外建立项层编译设置,包括:

?  将DSF Builder模型生成的VHDI文件加入顶层综合工程。

?  将所有用到的IP库加入Quartus Ⅱ工程。

这些工作可以通过Signal Compiler生成的对应综合工具的Tc1文件完成。

1. 自动综合、编译

Signal Compiler可以将设计模型文件(如SinGen.mdl)中的每个Altera DSP Builder模块映射为DSP Builder VHDL库。自动综合、编译流程可以直接在Simulink软件中,使用SignalCompiler Version 2.1.3对话框中Hardware Compilation框中的按钮操作,后台完成模型设计的综合、编译过程。

(1)  在Simulink的设计模型文件中(如SinGen.mdl)双击SignalCompiler模块。

(2)  点击Analyze按钮,弹出Signal Compiler Version 2.1.3对话框。

(3)  在Device列表中选择目标器件系列,如Stratix。

(4)  在Synthesis列表中选择综合工具,如LeonardoSpectrum,也可以选择Ouartus Ⅱ软件综合工具。

(5)  在Optimization列表中选择优化条件,如Speed。

(6)  点击按钮1-Convert MDL to VHDL,由模型设计生成VHDL文件。

(7)  点击按钮2一Synthesize,使用指定的综合工具开始综合设计。

(8) 点击按钮3-Quartus Ⅱ,使用Quartus Ⅱ软件编译设计。

注意:使用Quartus Ⅱ软件自动编译,要求所安装的Quartus Ⅱ软件具有Quartus ⅡTc1脚本支持功能。如果使用的Quartus Ⅱ软件版本不支持Tc1脚本(如Quartus Ⅱ WebEdition),将提示Tc1脚本支持功能不可用信息。

(9) 所有步骤完成之后,点击OK按钮退出Signal Compiler Version 2.1.3对话框。

上面每个操作过程在Message框中都有对应的信息显示,如图6.26所示。

点击看大图



2.  手动综合、编译

当要完成下面的操作时,必须进行手动综合和编译过程:

(1)  使用其他综合工具软件(Signal Compiler可选综合工具软件有LeonardoSpectrum、Synplify和Quartus Ⅱ)。

(2)  在综合工具或Quartus Ⅱ软件中指定特殊的综合设置,如LogicLock功能或时间驱动编译。

1) 手动综合

在这里以LeonardoSpectrum综合工具为例,说明如何手动综合由Simulink模型文件生成的VHDL文件。步骤如下:

(1)  在Simulink的设计模型文件中(如SinGen.mdl)双击SignalCompiler模块。

(2)  点击Analyze按钮,弹出Signal Compiler Version 2.1.3对话框。

(3)  点击按钮1-Convert MDL to VHDL,则SignalCompiler将模型设计生成VHDL文件。

(4)  点击OK按钮关闭Signal Compiler Version 2.1.3对话框。

(5) 启动综合工具软件,如LeonardoSpectrum软件。

对于SignalCompiler模块中支持的综合工具来说,SignalCompiler自动生成综合软件的Tc1脚本文件,如SinGen_leo.tc1(LeonardoSpectrum软件)、SinGen_spl.tc1(Synplify软件)、SinGen_quartus.tc1(Quartus Ⅱ软件)。可以在综合工具软件中直接执行对应的Tc1脚本文件完成综合。如启动LeonardoSpectrum综合软件以后,选择File→Run 命令,在弹出的对话框中选择SinGen_leo.tc1脚本文件,则LeonardoSpectrum自动执行脚本文件中的Tc1命令,完成对SinGen.vhd文件的综合。

如果不直接执行Tc1脚本文件,则继续进行下面的步骤:

(6)  在综合工具软件中加入DSP Builder模块映射库文件:

        <DSP Builder安装目录>\DSPBuilder\AltLib\DSPBUILDERPACK.VHD

(7)  在综合工具软件中加入并打开由SignalCompiler生成的VHDL文件,如SinGen.vhd。

(8)  在综合工具软件中完成综合,结果如图6.27所示。


图6.27  在LeonardoSpectrum软件中完成手动综合结果

2) 在Quartus Ⅱ软件中完成设计的手动编译

综合软件在工作目录下生成原子网表文件(EDIF网表文件(.edf)或Verilog Quartus映射文件(.vqm))。网表文件中的原子都是参数化的,符合Altera器件特性的WYSIWYG原语描述,如逻辑单元、I/O单元、乘积项以及嵌入式系统块(ESB)。在Quartus Ⅱ软件中可以直接编译原子网表文件生成用于Altera器件编程的编程器目标文件(.pof)。

在Quartus Ⅱ软件中完成设计的编译步骤如下:

(1)  启动Quartus Ⅱ软件。

(2)  选择View→Auxiliary Windows→Tc1 Console命令。

(3)  在Tc1控制台窗口,使用DOS命令进入DSP Builder设计文件的工作目录。

(4)  在Tc1控制台窗口,输入source<模型文件名>_quartus.tc1后按回车键,如sourcesingen_quartus.tc1,则Quaruts Ⅱ软件自动执行Tc1脚本文件中的建立工程以及环境设置命令。

(5)  选择Processing→Start Compilation命令开始编译。

(6)  在编译报告窗口,选择Fitter文件夹下面的Floorplan View查看编译结果。

图6.28所示为Quartus Ⅱ编译结果的底层图显示。

点击看大图
3. 创建DSP Builder设计的Quartus Ⅱ符号

作为一个功能模块,可以对DSP Builder的设计创建一个Quartus Ⅱ符号,在顶层设计中调用。Quartus Ⅱ编译完成之后,Quartus Ⅱ软件在工作目录中建立一个名为atom_netlists的子目录,其中包含DSP Builder设计的Verilog Quartus映射文件(.vqm),如SinGen.vqm,使用该文件创建Quartus Ⅱ符号的步骤如下:

(1)  在Quartus Ⅱ软件中打开DSP Builder设计的工程文件,如SinGen.qPf。

(2)  选择File→Open,在目录查找中指定工作目录中的atom_netlists子目录。

(3)  打开<设计文件名>.vqm,如SinGen.vqm。

(4)  选择File→Create/Update→Create Symbo1Files for Current File命令,则创建了符号并将其添加到工程中。

思 考 题
1.什么是DSP Builder?如何看待基于FPGA的嵌入式DSP设计?

2.Altera DSP设计流程包括哪几部分?

3.DSP Builder是如何将Simulink的系统级设计生成硬件描述语言的?

4.如何在Quartus Ⅱ软件中调用DSP Builder设计的系统模块?

点击此处查看原文 >>

系统分类: DSP   |    用户分类: 无分类    |    来源: 转贴

评论(5) | 阅读(1266)
发表于:2007-6-4 11:01:17
标签:无标签

0

转帖----中国最昂贵的房价——大学生宿舍

转帖----中国最昂贵的房价——大学生宿舍
一个朋友老是和我抱怨:现在真是住不起房子了,一平方米都是3000多。不要说买了,就是连租也租不起,这不我刚刚租了个房子都要我1500元每月。3000元的工资除了租房子,养家,都所剩无几,唉!这世道真是活不下去了……
  
  “1500元/月?”,我笑了笑,“你这也算贵?”
  
  这还不贵?都占我工资1/2强了。
  
  不贵!一点也不贵!
  
  那你说还有什么房子比这更贵?
  
  学生宿舍!
  
  你不会在胡说吧,学生们千把多块钱都可以住一年呢!(朋友在一边似乎是嘲笑。)
  
  你不相信?
  
  不相信
  
  好,那我算算帐给你听!
  
  算就算,还看你能算出什么金子银子来?
  
  我先问你,一个宿舍的平方面多大?
  
  大概30平米左右吧?
  
  一个宿舍住几个人?
  
  4个人!
  
  一个人的住宿费是多少?
  
  1200
  
  那也就是说30平方米一个学期的租金是4*1200=4800元
  
  恩!(朋友的表情开始有点不自然了。)
  
  一个学生在学校住宿几个月?
  
  除去暑假、寒假三个月,还剩下9个月。
  
  也就是说30平方米每个月的租金是4800/9=533.3元
  
  你住的房子是多大?
  
  100平方。
  
  那把学生宿舍折算成100平方,那么每个月的租金便是533.3*100/30=1777.7元
  
  学生公寓豪华版
  
  不会吧,那么贵?朋友的脸色开始有点挂不住了!
  
  这还不算,你的房子是在那里?
  
  市中心!
  
  市中心的房价是郊区房价的多少?(学校现在一般都是在郊区)
  
  2倍多吧!
  
  ok,就算是2倍!
  
  那么,把这1777.7*2=3555.5元
  
  你的房子里面带厨房,卫生间,家电,家具吗?
  
  有!
  
  与没有(这些设备)的房价相比呢?
  
  贵些!
  
  贵多少?
  
  大概是1.3倍吧?
  
  那么再将3555.5*1.3=4622.2元
  
  对了,你的房子有物业吗?
  
  有
  
  怎么算?
  
  一个单位是0。7元钱!
  
  ok,那再加上70元,就是4622.2+70=4692.2元
  
  天拉!怎么那么贵?(我的朋友开始尖叫了)不可能,不可能,你肯定是算错了!
  
  没错,不信你再算一遍???
  
  朋友一把夺过了我的计算器,我可以看见得出他的手指在不停地颤抖……
  
  “天拉!4692.2元再除于我所住的房子的租金1500元简直是3倍还有余……”朋友身子慢慢
  
  地嵌进了沙发里面……
  
  这还不算呢!我得意地笑了一笑!如果按照6人间1000元/人和8人间800元/人的标准算来,这个房价还要更高!
  
  亲爱的朋友们你们都算出来了吗?(按照100平方米的单位每月租金算!)
  
  答案(5865元/月,6256元/月)
  
  可怜那些天之骄子们,算了一辈子的算术,这点帐都没有算过来!
  
  注:上述物价均参考中部某省的物价水平

点击此处查看原文 >>

系统分类: 生活点滴   |    用户分类: 无分类    |    来源: 转贴

评论(0) | 阅读(340)
发表于:2007-6-1 20:45:53
标签:无标签

0

AVR

如果要学好GCC,就必须学会写makefile。而且如想自己做一个IDE,那么也必须先学会makefile。

GCC没有集成开发环境,使用起来很不方便。我们可以用Source Insight(一个很强大的程序编辑器)设计个性化的单片机集成开发环境。

下面我们来学习如何在Source Insight的软件界面上加上WinAVR编译器。

首先,选择Option=>Custom Commands,单击Add,输入新命令WinAVR Complier,然后在Command栏内输入“make clean:make all”,其中分号表示依次执行若干命令。在Output选项中选择Iconic Windows和Capture output,在control选项中选定Save Files first。最后,也是最关键的是,在Source Link in Output中选定Parse Link in Output,并将Pattern改为^\(a-zA-Z.\*);([0-9].\*).

这样,就将WinAVR的编译命令集成进Source Insight里了。而且,Source Insight还具备了自动跳转到出错行的功能。

接下来的工作就是将这个“自定义命令”置于Source Insight的软件界面里。在Options =>Menu Assignments中。在WinAVR Complier加入到Source Insight的我日卡选项中。

可以用类似的方法将其他的软件加入Source Insight中。

做完上述步骤后,一个自制的IDE就完成了。

 

点击此处查看原文 >>

系统分类: 单片机   |    用户分类: 无分类    |    来源: 原创

评论(0) | 阅读(595)
发表于:2007-5-30 15:44:56
标签:无标签

0

微机械传输线

微机械传输线有多种形式,其中使用最多的是微带传输线,它可以集成在微波集成电路中,能够保证近乎TEM的传播模态。应用MEMS技术的目的在于除去传输线下方的高介电衬底,从而大大减小传播中的损耗、频散和非TEM模。

 

方法之一是采用高阻硅衬底,通过体硅工艺制作悬空的膜片,在上面制作Au带信号线。这种传输线的传播模几乎是TEM的,且介电损耗接近于零,因此单模的带宽很大(DC320 GHz)     

方法之二是在信号线下方制作带屏蔽的空腔,以防止相邻信号线间的串扰。LIGA工艺具有可以在多种衬底上制作大深宽比金属结构的特点。这种技术可以用来制作需要高电磁祸合或大功率通过能力的微波结构

 

ME M S 术在天线方面的应用分两个不同频段。一是在毫米波和更高的频段,为了高速传输数据的需要,工作在毫米波和TeraHz(1012 Hz)的微波器件、电路和辐射体I须集成为一体。MEMS技术可以让偶极子和槽形天线悬空于介电薄膜上,实现自由空间辐射;或者通过各向异性腐蚀在天线附近制作微型的喇叭形辐射体,提高辐射的方向性。

二是在普通微波波段,此时如果让薄膜悬空,天线的尺寸将变得过大而无法实用化。MEMS技术则可以通过在天线下的介电薄膜上开孔等办法,调节其介电常数,来提高天线效率。特别是可以通过将衬底腐蚀掉一部分或使之具有适当的通孔分布的办法,让其等效的介电常数调节到所希望的值。这样频率为1213 GHz的微带天线的效率可以从55%增加到85%,类似的技术已应用于汽车雷达(77 GHz)

 

通过对MEMS目前在天线领域的应用分析,可以看到,MEMS的出现使得天线发生了巨大变化。从而改变了天线形状(变小)到改变天线性能(可重构),MEMS在天线领域必定大有前途。同时,我们也不得不看到,MEMS在天线应用中仍存在一些问题,如MEMS开关速度臂PIN二极管开关速度慢,驱动电压很高,MEMS寿命不够长等。如何进一步开拓并完善MEMS在天线相关领域的应用研究,仍是非常紧迫的课题。

 

点击此处查看原文 >>

系统分类: 资源共享   |    用户分类:    |    来源: 原创

评论(0) | 阅读(600)
发表于:2007-5-30 15:40:40
标签:无标签

0

2007-5-15

基于HAL程序的启动顺序:

(1)        刷新指令和数据高速缓存;

(2)        配置堆栈指针

(3)        配置全局指针

(4)        使用_bss_start_bss_end来零初始化BSS

(5)        复制.rwdata.rodata和异常区到RAM

(6)        调用alt_main()函数。

如果用户没有提供alt_main()函数,则缺省执行下面的步骤:

(1)        调用alt_os_init()执行操作系统初始化,如果系统中没有操作系统调度,则该宏没有作用;

(2)        如果HAL使用操作系统,则初始化alt_fd_list_lock信号量来控制访问HAL文件系统;

(3)