打印
[Actel FPGA]

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

[复制链接]
1205|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
北京户口|  楼主 | 2010-4-26 22:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何用verilog语言实现arinc 561总线与RS232总线的互换?
561总线为3对屏蔽双绞线,12KHz,0~12V,可以信号调理芯片转换成为FPGA能够接收的电平。附图如不能查看,可参考[url=http://zhidao.baidu.com/question/147211053.html]http://zhidao.baidu.com/question/147211053.html[/url]
小弟写了接收模块的代码,如下:
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核,最好。请求赐教,不胜感激。

相关帖子

沙发
六楼的窗户| | 2010-4-26 22:57 | 只看该作者
初学者,不是很懂,帮顶

使用特权

评论回复
板凳
六楼的窗户| | 2010-4-26 22:58 | 只看该作者
初学者,不是很懂,帮顶

使用特权

评论回复
地板
tiger2010| | 2010-4-26 23:00 | 只看该作者
怎么发了两个一样的?

使用特权

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

本版积分规则

107

主题

521

帖子

1

粉丝