图片展示
  • AG32 MCU
  • DAP LINK
  • HIZYUAN
  • AMD/XILINX-2

AG32 ***发布——极简架构的光端机参考设计

作者:Robin 浏览: 发表时间:2025-09-22 11:42:34 来源:AGM

一、新方案与传统方案的对比


      传统光端机方案中,采用CPLD+串化器+解串器等外围电路实现信号处理是常见选择。



      现在我们推出全新替代方案——只需AG32(内置2k CPLD MCU) + MS21112S(差分接收芯片),差分发送用电阻网络,即可完美实现光模块150M稳定收发




二、硬件参考设计






三、代码参考设计


以下分享部分参考设计代码,如需要了解更多设计内容,欢迎联系我们。


1. AHB通信的模块参考代码


//------hizyuan 2025.9 -------------------

module ahb2reg #(parameter READ_WAIT = 0)(

  input             ahb_clock,

  input             ahb_resetn,

  input      [1:0]  ahb_htrans,

  input             ahb_hready,

  input             ahb_hwrite,

  input      [31:0] ahb_haddr,

  input      [2:0]  ahb_hsize,

  input      [2:0]  ahb_hburst,

  input      [31:0] ahb_hwdata,

  output reg        ahb_hreadyout,

  output            ahb_hresp,

  output reg [31:0] ahb_hrdata,

  output     [31:0] reg_addr,

  output            reg_write,

  output     [31:0] reg_wrdata,

  output            reg_read,

  input      [31:0] reg_rddata

);

assign ahb_hresp = 1'b0;

 

reg [31:0] haddr_reg;

reg hwrite_reg;

reg ahb_data_phase;

reg [$clog2(READ_WAIT+1)-1:0] read_counter;

 

wire ahb_sel = ahb_htrans[1] && ahb_hreadyout;

wire ahb_write = ahb_data_phase && !ahb_hreadyout &&  hwrite_reg;

wire ahb_read  = ahb_data_phase && !ahb_hreadyout && !hwrite_reg && read_counter == 0;

 

always @(posedge ahb_clock or negedge ahb_resetn) begin

  if (!ahb_resetn) begin

    haddr_reg  <= 32'h0;

    hwrite_reg <= 1'b0;

  end else if (ahb_sel) begin

    haddr_reg  <= ahb_haddr;

    hwrite_reg <= ahb_hwrite;

  end

end

 

always @(posedge ahb_clock or negedge ahb_resetn) begin

  if (!ahb_resetn) begin

    ahb_data_phase <= 1'b0;

  end else if (ahb_hreadyout) begin

    ahb_data_phase <= ahb_htrans[1];

  end

end

 

always @(posedge ahb_clock or negedge ahb_resetn) begin

  if (!ahb_resetn) begin

    ahb_hreadyout <= 1'b1;

  end else if (ahb_sel) begin

    ahb_hreadyout <= 1'b0;

  end else if (!ahb_read || read_counter == READ_WAIT)begin

    ahb_hreadyout <= 1'b1;

  end

end

 

always @(posedge ahb_clock or negedge ahb_resetn) begin

  if (!ahb_resetn) begin

    read_counter <= 0;

  end else if (!ahb_read) begin

    read_counter <= 0;

  end else begin

    read_counter <= read_counter + 1;

  end

end

 

always @ (posedge ahb_clock or negedge ahb_resetn) begin

  if (!ahb_resetn) begin

    ahb_hrdata <= 32'h0;

  end else if (ahb_read || read_counter > 0) begin

    ahb_hrdata <= reg_rddata;

  end

end

 

assign reg_addr   = haddr_reg;

assign reg_write  = ahb_write;

assign reg_wrdata = ahb_hwdata;

assign reg_read   = ahb_read;

 

endmodule


2. 以下是 clk_recovery_ip.v 模块的部分代码:




3. 以下是 serializer.v 模块的部分代码:




四、方案优势


•性能更优:AG32 内置 2K cpld,资源更丰富;

•成本更低:减少外围元件数量,简化电路布局,提升 PCB 空间利用率;

•设计更灵活:AG32 MCU + CPLD 架构,拓展接口丰富,满足更多功能需求。AG32 具有多种封装(32/48/64/100)可供选择。

•提供方案定制开发:对量大的需求,AGM 可以提供方案定制开发。




如需了解更多资讯,欢迎联系海振远科技销售人员获取支持。

 

联系海振远科技

 

电话:0755-2780 9180;  15323895320;

邮箱: tech@hizyuan.com

Lucy@hizyuan.com



暂无链接

电话:0755-2780 9180   E-mail: tech@hizyuan.com
地址:中国广东省深圳市宝安区新安街道广兴源互联网智慧科技园D栋508
Copyright 版权所有  海振远科技 All rights reserved  

在线客服
联系方式
热线电话
0755-27809180
E-mail地址
tech@hizyuan.com
二维码
二维码
微信在线客服-(添加请备注:海振远产品咨询)
在线客服
添加微信好友,详细了解产品
使用企业微信
“扫一扫”加入群聊
复制成功!
添加微信好友,详细了解产品
我知道了
粤ICP备19051499号-1