打印
[Actel FPGA]

[求助]如何用verilog语言实现arinc 561总线的收发

[复制链接]
1334|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
米其林r|  楼主 | 2010-4-15 20:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何用verilog语言实现arinc 561总线与RS232总线的互换?
561总线为3对屏蔽双绞线,12KHz,0~12V,可以信号调理芯片转换成为FPGA能够接收的电平。小弟写了接收模块的代码,如下:
module rec561(c561,d561,s561,dat,WR);
input c561,d561,s561;
output [31:0]dat;
output WR;

    reg dat_reg=0;
    reg WR_reg=0;
    reg [8:0] clockcount=0;    //receive 561 clock, record the clock number
   
    parameter bity561=32;  
    parameter gapclockcount=8;

    always @(negedge c561 or posedge s561)  
        begin
         if(clockcount==0 || clockcount==gapclockcount-1)
          WR_reg=0;
         else if(clockcount==bity561)
          begin
           clockcount=0;
           WR_reg=1;
          end
         else
          begin
           WR_reg=0;
              clockcount=clockcount+1; //record the clock number
               dat_reg=dat_reg<<1;   //first in high
              dat_reg=dat_reg&d561;
            end  
  end
// assign dat=dat_reg; //为什么这两句用assign不行呢?
// assign WR=WR_reg; //怎么样才能正确实现561转32并口输出?

endmodule
总的目的是ARINC 561转RS 232,逻辑不复杂,但我刚刚接触verilog语言,使用libero等软件,所想不能所得,哎,痛苦啊。
我想这个如果采用电平和边沿触发或异步状态机,虽然可能不能综合,也是可以简单实现实现。
如果有现成的IP核,最好。请求赐教,不胜感激。

相关帖子

沙发
米其林r|  楼主 | 2010-4-15 20:42 | 只看该作者

使用特权

评论回复
板凳
米其林r|  楼主 | 2010-4-15 20:52 | 只看该作者
[img]file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/[7U6$91R103)VKR}CD7)_0G.jpg[/img]

使用特权

评论回复
地板
米其林r|  楼主 | 2010-4-15 20:53 | 只看该作者
图片怎么老发不上去呢

使用特权

评论回复
5
guolh| | 2010-4-16 14:12 | 只看该作者
看看HI-8683,HI-8684的资料,也许对你有帮助,实现你所要求的功能应该不难~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

340

主题

1587

帖子

3

粉丝