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

FPGA控制DAC0832 

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
FPGA控制DAC0832
& J) Q0 x: I1 u8 X0 g

5 s0 y5 T1 c+ T& J! o2 G$ VDAC0832是常用的8位DA转换芯片,建立时间为1us,用verilog硬件描述语言控制如下:- d( b& T% z4 o  E0 O! Q% G$ H
//name : ADC_0832
* ]& T. U2 ]( h0 E/ d9 L2 G$ z5 {8 a//author : qin wei he;
( `* z; v9 o. e8 K) K& }//date :2011.04.30;
4 T: j5 ?& J% m6 X  e  Q//function:
- a% |4 i' r2 K: l- \: ~: f7 V6 y' a7 l$ W
module DAC_0832(2 t9 \" }# a4 e* \( ^6 a) ?
    input clk,      //外部时钟输入50M4 u" h+ s' W2 N; [6 ^& p
    input reset,  //复位% E7 p; ]/ `% B! t1 _
    input[7:0]data_in, //8位数据输入' O0 `/ b# O3 h
    input EN, //使能,只保持一个时钟周期
' ], T& f! [  l, L5 A8 e    output reg CS,//DA0832片选信号
( b3 A* F: X% d* g4 D4 Z4 `    output reg WR, //读入信号
6 c0 q) `  F/ `    output reg[7:0] data);//8位数据输出
: h& D  V/ `( s& i) d& g7 G  \" P* i/ `8 e" e# G8 J1 S6 c
reg[7:0]data_in_reg;
" v# ^! f5 N) yalways @(posedge clk or negedge reset)//判断使能信号,锁存输入数据
5 ^6 x7 O1 v. H$ U# o& ` if( ! reset ) data_in_reg<=0;! V, o( C. [" J& {1 Q
else if(EN) data_in_reg <= data_in_reg;$ m& @: R2 J/ h2 L5 G
else data_in_reg <= data_in_reg;! n/ F& ~8 {$ L7 O

  U7 ?% l8 ^! K' {; \, E# `reg[2:0]cnt1;9 z2 Z- i  w8 h2 Z8 n
always @(posedge clk or negedge reset)////100NS计数
$ [  t+ I2 L9 s' O6 B" v4 W; F if( ! reset ) cnt1 <= 3'b0;# b3 _2 D- Y5 Q6 t: V
else begin
9 A+ \% S( Q! d- w9 e   if(cnt1 == 3'd5) cnt1 <= 0;& W8 ?% P8 c; e7 v) a" J5 p
   else cnt1 <= cnt1+ 1'b1;5 O3 g# ?8 m$ }: g) E& [
  end
( H. Y3 B" ]1 a, ?# J* _reg[3:0]cnt2;0 Q4 X7 |  @( N+ }4 M
always @(posedge clk or negedge reset)
2 f; M0 I" B, O- U6 D' f5 ` if( ! reset ) cnt2 <= 4'b0;4 M' O6 D6 {9 k$ t; W' C7 A3 w6 o" C
else begin
- H9 i7 R+ `' }( Y/ w, A   if(cnt2== 4'd11) cnt2 <= 3'b0;; P6 P7 G: l8 I+ i
   else if(cnt1 == 3'd5) cnt2 <= cnt2 + 1'b1;
/ N; V) M0 v) ~  @2 S0 o   else cnt2 <= cnt2;
3 K$ q* E' J: C- x  end
3 r+ e" E0 g2 \always @(posedge clk or negedge reset)/ P7 [) E5 D  t* d& R* i2 T
if( ! reset ) begin/ E' M$ f# ~' z; Q5 w
  CS<=1'b1;) G1 e9 s7 A# `! c  T. {
  WR <=1'b1;0 c5 B6 b5 P6 D& I! c
  data<=8'b0;; z1 W: h* c4 D3 Y( u7 R
end
1 [' [' x$ [8 v, e( i& s( A
* c+ u+ G8 i8 \& B+ P) U5 Y else begin/ l0 a" }  R' V# R4 f- _) x1 V
  case ( cnt2 )
6 y7 w4 {4 A0 Z/ T  1,2,3,4,5,6,7,8, : begin CS <= 1'b0;end( Y: S6 y6 N) x& Y6 Z9 b- c' p
  default : CS <= 1'b1;/ e' ^/ X5 H* r
  endcase( q0 e" R$ [" Z
  - p$ R+ l! G. e5 F- |
  case (cnt2)
5 n- h* a* o5 ~" u) b1 f  2,3,4,5,6,7 : begin WR <= 1'b0;end+ Y6 m- l  e& h: ?
  default : WR <= 1'b1;
. o4 X: m4 Y" Q9 H5 i4 w  N* _  endcase
7 U0 I3 ?. T; O2 t7 w1 X3 u; D. B  
% c" g) H. q$ E# s  case (cnt2)
5 K* ]# b0 Y. J9 |- N$ V: l7 Z6 N  1 : data <= data_in_reg;7 j* [% \/ n  w% g, u
  default : ;
6 p' g. j4 g! w, A* H9 N& e/ R  endcase6 Q$ [4 e. l# ^( z% V
end0 H0 I2 Q; }- M/ Q' X
endmodule: J. ~% }0 A; C% ~% z8 d
  b5 u# W  d8 Q/ l( ~# Z8 Y
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-9 11:00 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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