找回密码
 注册
关于网站域名变更的通知
查看: 432|回复: 1
打印 上一主题 下一主题

FPGA控制DAC0832 

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-5-8 10:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
FPGA控制DAC0832

2 c7 b) v) L5 t2 u, L& ?
- S0 b# z4 g7 NDAC0832是常用的8位DA转换芯片,建立时间为1us,用verilog硬件描述语言控制如下:' V& h, I8 R3 @/ C$ P/ D. y% O$ u
//name : ADC_0832
( ?9 A3 @; P0 E( `! ~! N; l6 a//author : qin wei he;8 i% K$ v4 R& U( c
//date :2011.04.30;% ]. r$ h' z/ t" f. y4 Y
//function:! H, x+ h. R$ F' j5 K! w+ m: a
! G1 ^$ a+ e& f5 Y! k
module DAC_0832(4 J" x0 w+ o9 X2 Y7 D+ _% r- x- X
    input clk,      //外部时钟输入50M" \6 S& |& M' D7 w% \% i
    input reset,  //复位4 \4 v$ ]" |! V* M2 @( Z
    input[7:0]data_in, //8位数据输入! ~/ J% z0 c5 S
    input EN, //使能,只保持一个时钟周期3 y' \9 z, L2 n  \  `1 ~: \
    output reg CS,//DA0832片选信号
$ t' v( k4 g. K( j& y    output reg WR, //读入信号
: z2 ]/ }0 e4 D# I    output reg[7:0] data);//8位数据输出
' v, |1 s/ `" W
+ r6 Q# j* E, f- v: h& vreg[7:0]data_in_reg;
3 e0 G* ?( |& P$ salways @(posedge clk or negedge reset)//判断使能信号,锁存输入数据
- c/ d. R, I. y; u if( ! reset ) data_in_reg<=0;
% k& f0 ^) u$ y2 ~. \3 ~ else if(EN) data_in_reg <= data_in_reg;' q& M( X4 E3 L, C' N; O
else data_in_reg <= data_in_reg;5 u9 [$ H4 o9 z7 t0 o: C
; [) W. H; }* q. g
reg[2:0]cnt1;
. R+ N# _4 {5 F/ a, falways @(posedge clk or negedge reset)////100NS计数5 G  K- B/ d+ k- G. k' R( r
if( ! reset ) cnt1 <= 3'b0;6 Z, |  H/ |6 A  B5 e7 f+ E/ Y
else begin4 @$ e( M0 }- G  e' u6 d
   if(cnt1 == 3'd5) cnt1 <= 0;
6 n& [  V6 P; R( Y( j% T4 f   else cnt1 <= cnt1+ 1'b1;
! g0 i: e% n; w  end
" [% R8 z9 r0 }1 w* O2 }) Dreg[3:0]cnt2;2 y- ~0 s7 s. y2 |
always @(posedge clk or negedge reset)7 P5 E; G! m: y7 a. i
if( ! reset ) cnt2 <= 4'b0;
+ k; j- E; C6 p7 h! h else begin2 h2 h- a! x6 g! h% ]" i$ i1 {, K- `. V
   if(cnt2== 4'd11) cnt2 <= 3'b0;
, ^/ q3 L3 M# O7 Q8 S/ p* O   else if(cnt1 == 3'd5) cnt2 <= cnt2 + 1'b1;0 H$ x9 T9 e; a6 ]) T3 Z2 t) s
   else cnt2 <= cnt2;
  r9 ~# t3 [- O6 Z- v% L& p$ X* x  end7 ]% ]$ D" h  t0 X7 ~$ _
always @(posedge clk or negedge reset)- n+ x5 f4 [2 B4 j, _2 o" O! R
if( ! reset ) begin, h0 ~: k" @3 n" b; h* F# x
  CS<=1'b1;1 e# t; S4 M6 b0 g! H/ W: d
  WR <=1'b1;
% \0 L4 N& `" _4 o$ b$ o  data<=8'b0;
* d6 O2 ?( X  q) i1 I end/ k' T! o% K7 F  k1 r$ n: L
5 d2 r+ k, k/ A! U
else begin
5 x! w6 w" {! o  e8 T( o& P  case ( cnt2 )
) X; M$ H" ]: O& f2 q  1,2,3,4,5,6,7,8, : begin CS <= 1'b0;end& b! K% Q6 w1 {2 b- u
  default : CS <= 1'b1;% H+ w/ e) x3 J- f
  endcase
2 d# M$ H* B- A) Q7 [5 u+ t  % B, J, ^" b) J, m
  case (cnt2), ^: `0 E( L, y8 @5 e# e! V
  2,3,4,5,6,7 : begin WR <= 1'b0;end
( \( x. T8 R+ g* T/ `- w# F  default : WR <= 1'b1;* e9 y5 e" B5 V, E) a3 c! ]1 f
  endcase
6 e  ~# J8 A+ m" ~9 z, w" J3 X' b  ) ^8 s& w- V( G9 @' B7 v
  case (cnt2). l$ h4 W0 [- C7 b! T3 G
  1 : data <= data_in_reg;5 K2 O: b% [2 m0 L* Y
  default : ;
5 b/ d8 e; ~0 u0 g  endcase
, F3 s/ q1 k" v6 ? end7 Q1 R" B( y0 A9 F" H( c
endmodule9 h( H* \$ l, P+ M; e( Z) I$ D* ?

  u- ]8 \) V# C( i4 o$ L, B
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-2 08:33 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表