最新日志

发表于:2008-4-26 10:53:12
标签:无标签

0

LVDS

LVDS(Low Voltage Differential Signaling)低电压差分信号即低压差分信号传输 ,是一种满足当今高性能数据传输应用的新型技术。 由于其可使系统供电电压低至 2V,因此它还能满足未来应用的需要。 此技术基于 ANSI/TIA/EIA-644 LVDS 接口标准。
LVDS 技术拥有 330mV 的低压差分信号 (250mV MIN and 450mV MAX) 和快速过渡时间。 这可以让产品达到自 100 Mbps 至超过 1 Gbps 的高数据速率。 此外,这种低压摆幅可以降低功耗消散,同时具备差分传输的优点。
LVDS 技术用于简单的线路驱动器和接收器物理层器件以及比较复杂的接口通信芯片组。 通道链路芯片组多路复用和解多路复用慢速 TTL 信号线路以提供窄式高速低功耗 LVDS 接口。 这些芯片组可以大幅节省系统的电缆和连接器成本,并且可以减少连接器所占面积所需的物理空间。
LVDS 解决方案为设计人员解决高速 I/O 接口问题提供了新选择。 LVDS 为当今和未来的高带宽数据传输应用提供毫瓦每千兆位的方案。
更先进的总线 LVDS (BLVDS)是在LVDS 基础上面发展起来的,总线 LVDS (BLVDS) 是基于 LVDS 技术的总线接口电路的一个新系列,专门用于实现多点电缆或背板应用。 它不同于标准的 LVDS,提供增强的驱动电流,以处理多点应用中所需的双重传输。
BLVDS 具备大约 250mV 的低压差分信号以及快速的过渡时间。 这可以让产品达到自 100 Mbps 至超过 1Gbps 的高数据传输速率。 此外,低电压摆幅可以降低功耗和噪声至最小化。 差分数据传输配置提供有源总线的 +/-1V 共模范围和热插拔器件。
BLVDS 产品有两种类型,可以为所有总线配置提供最优化的接口器件。 两个系列分别是:线路驱动器和接收器 和串行器/解串器芯片组。
总线 LVDS 可以解决高速总线设计中面临的许多挑战。 BLVDS 无需特殊的终端上拉轨。 它无需有源终端器件,利用常见的供电轨(3.3V 或 5V),采用简单的终端配置,使接口器件的功耗最小化,产生很少的噪声,支持业务卡热插拔和以 100 Mbps 的速率驱动重载多点总线。 总线 LVDS 产品为设计人员解决高速多点总线接口问题提供了一个新选择。

                                    LVDS信号传输组成 

差分信号发送器:将非平衡传输的TTL信号转换成平衡传输的LVDS信号。通常由一个IC来完成,如:DS90C031
差分信号接收器:将平衡传输的LVDS信号转换成非平衡传输的TTL信号。通常由一个IC来完成,如:DS90C032
差分信号互联器:包括联接线(电缆或者PCB走线),终端匹配电阻。按照IEEE规定,电阻为100欧。我们通常选择为100,120欧。

点击此处查看原文 >>

系统分类: 工业控制   |    用户分类: 无分类    |    来源: 整理

评论(0) | 阅读(175)
发表于:2008-4-24 13:59:16
标签:无标签

2

扩展汉明码的verilog hdl 实现

源代码:

module mhammingd16(hamin,dataout,ce,de,inter);
input [21:0] hamin;
output [15:0]dataout;
output ce;
output de;
output inter;
reg ce;
reg de;
reg inter;
reg [5:0] syndrome;
reg [15:0]dataout;
always@(hamin)
begin
 syndrome[0]=hamin[6] ^ hamin[7] ^ hamin[9] ^ hamin[10] ^ hamin[14] ^ hamin[15] ^ hamin[16] ^ hamin[19] ^ hamin[0] ;
 syndrome[1]=hamin[6] ^ hamin[8] ^ hamin[9] ^ hamin[11] ^ hamin[12] ^ hamin[14] ^ hamin[17] ^ hamin[20] ^ hamin[1] ;
 syndrome[2]=hamin[7] ^ hamin[8] ^ hamin[10] ^ hamin[11] ^ hamin[13] ^ hamin[15] ^ hamin[18] ^ hamin[21] ^ hamin[2] ;
 syndrome[3]=hamin[6] ^ hamin[7] ^ hamin[8] ^ hamin[12] ^ hamin[13] ^ hamin[16] ^ hamin[17] ^ hamin[18] ^ hamin[3] ;
 syndrome[4]=hamin[9] ^ hamin[10] ^ hamin[11] ^ hamin[12] ^ hamin[13] ^ hamin[19] ^ hamin[20] ^ hamin[21] ^ hamin[4] ;
 syndrome[5]=hamin[14] ^ hamin[15] ^ hamin[16] ^ hamin[17] ^ hamin[18] ^ hamin[19] ^ hamin[20] ^ hamin[21] ^ hamin[5] ;
  if(syndrome==6'b0)
   begin
    ce="1"'b0;de=1'b0;
   inter="1"'b0; 
    dataout[15:0]=hamin[21:6];
   end
   else
    case(syndrome[5:0])
     6'b001011:
     begin
    ce="1"'b0;
    de="1"'b1;
    inter="1"'b0;
    dataout[0]=~hamin[6];
    dataout[15:1]=hamin[21:7];
     end
     6'b001101:
  begin
     ce="1"'b0;
    de="1"'b1;
    inter="1"'b0;
    dataout[1]=~hamin[7];
    dataout[0]=hamin[6];
    dataout[15:2]=hamin[21:8];
    end
     6'b001110:
 begin
    ce="1"'b0;
    de="1"'b1;inter=1'b0;
    dataout[2]=~hamin[8];
    dataout[1:0]=hamin[7:6];
    dataout[15:3]=hamin[21:9];
 end
     6'b010011:
 begin
    ce="1"'b0;
    de="1"'b1;inter=1'b0;
    dataout[3]=~hamin[9];
    dataout[2:0]=hamin[8:6];
    dataout[15:4]=hamin[21:10];
      end
     6'b010101:
     begin
    ce="1"'b0;
    de="1"'b1;inter=1'b0;
    dataout[4]=~hamin[10];
    dataout[3:0]=hamin[9:6];
    dataout[15:5]=hamin[21:11];
     end
     6'b010110:
    begin
    ce="1"'b0;
    de="1"'b1;inter=1'b0;
    dataout[5]=~hamin[11];
    dataout[4:0]=hamin[10:6];
    dataout[15:6]=hamin[21:12];
    end
     6'b011010:
     begin
    ce="1"'b0;
    de="1"'b1;inter=1'b0;
    dataout[6]=~hamin[12];
    dataout[5:0]=hamin[11:6];
    dataout[15:7]=hamin[21:13];
    end
     6'b011100:
     begin
     ce="1"'b0;
     de="1"'b1;inter=1'b0;
    dataout[7]=~hamin[13];
    dataout[6:0]=hamin[12:6];
    dataout[15:8]=hamin[21:14];
    end
     6'b100011:
    begin
    ce="1"'b0;
    de="1"'b1;inter=1'b0;
    dataout[8]=~hamin[14];
    dataout[7:0]=hamin[13:6];
    dataout[15:9]=hamin[21:15];
     end
     6'b100101:
    begin
    ce="1"'b0;
    de="1"'b1;inter=1'b0;
    dataout[9]=~hamin[15];
    dataout[8:0]=hamin[14:6];
    dataout[15:10]=hamin[21:16];
    end
     6'b101001:
    begin
    ce="1"'b0;
    de="1"'b1;
    inter="1"'b0;
    dataout[10]=~hamin[16];
    dataout[9:0]=hamin[15:6];
    dataout[15:11]=hamin[21:17];
    end
  6'b101010:
  begin
 ce=1'b0;
    de="1"'b1;
    inter="1"'b0;
 dataout[11]=~hamin[17];
    dataout[10:0]=hamin[16:6];
    dataout[15:12]=hamin[21:18];
     end
     6'b101100:
    begin
    ce="1"'b0;
    de="1"'b1;
    inter="1"'b0;
    dataout[12]=~hamin[18];
    dataout[11:0]=hamin[17:6];
    dataout[15:13]=hamin[21:19];
    end
     6'b110001:
    begin
    ce="1"'b0;
    de="1"'b1;
    inter="1"'b0;
    dataout[13]=~hamin[19];
    dataout[12:0]=hamin[18:6];
    dataout[15:14]=hamin[21:20];
    end
     6'b110010:
      begin
    ce="1"'b0;
    de="1"'b1;
    inter="1"'b0;
    dataout[14]=~hamin[20];
    dataout[13:0]=hamin[19:6];
    dataout[15]=hamin[21];
      end
     6'b110100:
     begin
    ce="1"'b0;
    de="1"'b1;
    inter="1"'b0;
    dataout[15]=~hamin[21];
    dataout[14:0]=hamin[20:6];
     end
     6'b000001, 6'b000010, 6'b000100, 6'b001000, 6'b010000, 6'b100000 :
      begin
      ce="1"'b1;
      de="1"'b0;
     inter="1"'b0;
     dataout[15:0]=hamin[21:6];
      end
     default:
      begin
      inter="1"'b1;
      dataout="16"'b0;
      end
    endcase
  end
 endmodule

能过纠一位错,并能检超过两位的错!!!

欢迎大家莅临参观指导

另外本来也正在做CRC 同时欢迎大家一起讨论。

点击此处查看原文 >>

系统分类: CPLD/FPGA   |    用户分类: 无分类    |    来源: 原创

评论(0) | 阅读(394)
总共 , 当前 /