打印

求Verilog HDL程序

[复制链接]
1695|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
16个数据通道,在针时钟的上升沿选择选择偶数通道在下降沿选择奇数通道,并且在位时钟的上升沿时开始采数,在位时钟的6个周中采12位数,采这12位数的时候最高位是不是符号位,关键是通道的选择,由于我编程刚刚起步,在这下手有时候找不到突破口,高手一看就明白!下面我附带时序文档和我截取的时序图,在另一个附件(afe5851中有完整的)

时序图.png (64.33 KB )

时序图.png

afe5851.pdf

1.22 MB

相关帖子

沙发
dong_dt| | 2012-3-16 12:53 | 只看该作者
这个很简单啊。一个通道在DCLK上升沿采数据,另一个通道在DCLK下降沿才数据。当两个采样通道数据都采样到6个数的时候,将两个通道的数做一个合并。
另外还有一种方法,就是用一个比DCLK更高频率(建议至少高2倍)来检测DCLK的上升沿和下降沿。每当采集到边沿时(前提是FCLK为高),将数据移入移位寄存器,每移位12此,将移位寄存器的数据取出。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
GoldSunMonkey + 1
板凳
GoldSunMonkey| | 2012-3-16 14:11 | 只看该作者
如果是我一定采用2倍的时钟速率。

使用特权

评论回复
地板
y9084| | 2012-3-16 17:07 | 只看该作者
:)

使用特权

评论回复
5
Backkom80| | 2012-3-17 10:06 | 只看该作者
如是xilinx的芯片用原语更方便,IDDR2,.v代码中直接例化。:lol

使用特权

评论回复
6
GoldSunMonkey| | 2012-3-18 00:04 | 只看该作者
:)给个例子呗。哈哈

使用特权

评论回复
7
Backkom80| | 2012-3-19 15:05 | 只看该作者
IDDR2 #(
      .DDR_ALIGNMENT("NONE"), // Sets output alignment to "NONE", "C0" or "C1"
      .INIT_Q0(1'b0), // Sets initial state of the Q0 output to 1'b0 or 1'b1
      .INIT_Q1(1'b0), // Sets initial state of the Q1 output to 1'b0 or 1'b1
      .SRTYPE("SYNC") // Specifies "SYNC" or "ASYNC" set/reset
   ) IDDR2_inst (
      .Q0(Q0), // 1-bit output captured with C0 clock
      .Q1(Q1), // 1-bit output captured with C1 clock
      .C0(C0), // 1-bit clock input
      .C1(C1), // 1-bit clock input
      .CE(CE), // 1-bit clock enable input
      .D(D),   // 1-bit DDR data input
      .R(R),   // 1-bit reset input
      .S(S)    // 1-bit set input
   );

参数的设置及端口的定义参见xilinx相关的手册

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
GoldSunMonkey + 2
8
GoldSunMonkey| | 2012-3-19 18:39 | 只看该作者
好兄弟~

使用特权

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

本版积分规则

0

主题

1

帖子

1

粉丝