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

基于FPGA的DAC0832电路的驱动代码

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
基于FPGA的DAC0832电路的驱动代码' K5 T4 d/ ?5 t- q

6 O; [# `4 ^7 @. Q/ A9 W原理图
# U) i( G3 t1 W* S, M  M6 G3 R4 B# j
时序:
# P5 z" @, H5 R' |0 C' M
9 i4 `1 x+ Z6 ?: ^6 L" ?0 i! T这里的时序我分为 CS 拉低,WR拉低和赋值。WR拉高,CS拉高  4个阶段,) k* Q/ F: e4 D7 m5 c5 B) I6 _. d1 \. i
代码:
. C2 r. m1 H& N/ \6 cmodule dac: f; b2 n' M$ r- M# k0 Q& M1 ^
(4 N8 k5 n% q/ A5 N1 o
  sys_clk,reset_b,
1 G/ Z/ n" C* }" u  wr,cs,data
9 z' b8 O9 O& z& I1 d1 { );
" W( P( u% V$ \: |0 r input sys_clk,reset_b;  T4 E' D/ k" F. B+ M& z+ J) p
output [7:0] data;
) h# e6 i7 O8 j7 v# e/ |, [4 V output wr,cs;% Q' d5 G' |( h; S

7 P0 W- @+ B) J$ b8 k reg wr,cs;  [7 n, N" }3 T8 Z; F1 b$ d
reg adc_clk;4 z3 B* o: o9 P. |  a/ L
reg [7:0] data,data_buf;* b2 z$ u7 [1 F  q4 b! L  Y
reg [2:0] next;. R1 j+ Z3 j# ]& `5 t6 }, W
, V' V) _2 l4 a
parameter  state1 =3'd0;
8 m: A( t: P+ S0 a8 H6 ]1 j( l  x  i# C parameter  state2 =3'd1;
/ |4 c+ ~' g+ H( v' ?  R2 W parameter  state3 =3'd2;. N, Y/ T9 S  O8 C* l
parameter  state4 =3'd3;. B/ [- X! V* V
reg[15:0] count;& P' Z. F. m* d' }4 O
always @ (posedge sys_clk)
$ N4 u! y. G" a+ f( I  O4 x2 _ begin
  j$ ~$ }7 G. d3 D* d  if(!reset_b)  X2 d+ o- c" h/ G  y7 |! J+ v. `5 ^
  begin
7 [/ L. e8 S* X, w* p" X* l   count<=16'd0;
' S3 ]: {8 Q; [/ u   adc_clk<=1'b1;' s. o7 n5 Q& A& p9 `1 N
  end# {( J& v' N$ o$ y7 {3 f% A/ y
  else
( e7 b2 ]  X# _& `1 E  if(count==16'd100)
' z% e' p& r# t( W& E4 I  begin
, H* H+ q/ e$ O$ Z: l" c   count<=16'd0;
) c+ o4 |; L: f" L   adc_clk<=~adc_clk;
; x' k2 |: R; o  end
$ Z  B; M" \2 {* R9 {/ B5 _  else count<=count+1'b1;3 C) p5 T4 e! a% k# F1 N
end, [9 l1 z: Z$ Z; A
//=========data buf add=================
2 u! T* _+ w9 W. p9 A2 R reg[20:0] count_adc;
/ C, r: W/ R' J always @ (posedge sys_clk)
7 A$ X% L. |+ \; ?& }; e begin
1 p8 [& i* O, D/ s  if(!reset_b)
3 n" |5 o6 B. r, @6 L# T  begin! C, g, g  }' Z
   count_adc<=21'd0;
% z: X7 s5 A6 ~" w1 @   data_buf<=8'b0;* x) f2 F9 k$ e6 c1 A0 G& v
  end+ U0 x. l! X* J- J
  else& G& G6 V. ~3 j, {. l
  if(count_adc==21'd50000000)
( P, `/ j+ n$ O0 |' o  begin; z# k" V+ z3 p/ D
   count_adc<=21'd0;
: q1 O! S" O9 \   data_buf<=data_buf+1'b1;
% n4 P7 p7 W) e3 e3 a  end
& I/ A# {: L1 \) ~  else count_adc<=count_adc+1'b1;
5 H1 }. T$ v( s* ?7 k end7 N! ]# Q% [! y1 L$ G

# k7 I) H: G9 u* `$ [9 M+ m5 V7 Z- K' O& h: d
always @ (posedge adc_clk)
; f" ?4 Z- @% H: O begin
- e6 h7 @* T6 }  if(!reset_b)
' b$ m/ j3 O/ |+ K# Y7 Y7 p  begin& O. i/ [* r4 m5 S4 f
   next<=state1;) S0 h1 F1 E" T( D
   cs<=1'b1;
0 Y7 v9 Q  m' k+ r; R: B   wr<=1'b1;5 l0 _3 i! j9 C* P: O( o
  end+ x" v( D8 E9 t+ E, @0 E; n% B
  else
4 x1 x( L. i; N0 x  case (next): X- S# f6 R# s
  state1 :
# G$ j" ]) z; w2 t   begin
8 B8 x9 }) [/ a" V9 \7 P; ^    cs<=1'b0;
3 h' H1 a3 N: M' u) P) M  G    next<=state2;5 t* [# D/ Q& r
   end) a2 \7 e9 ?! P1 X8 V
  state2 :% I# f% P4 j9 @) J
   begin. r4 \! B' ]* m- _3 j* w  ]2 S
    wr<=1'b0;9 j  Q. T0 z( \  A6 r$ f# M
    data<=data_buf;
1 j5 r! l0 L- S9 s! d    next<=state3;
6 f4 K, e9 z+ n: z* ~# p- l   end
- L4 E& O& e% K/ P- a4 c  state3 :' |' v( f( o; h
   begin6 P% }$ z/ t8 |$ B  l% H( u
    wr<=1'b1;& n" K$ R- _; ?7 c
    next<=state4;) F3 k$ n7 P% I( B! p& N% v
   end
6 t0 n. c( S2 t' C6 w0 j6 }  state4 :+ Z/ ~! b, v' m
   begin; s. r6 o  m, Z) l7 P3 H7 S
    cs<=1'b1;% W5 D. o: W) |4 o7 e
    next<=state1;; ~7 x/ f  H1 o- a
   end
* |) n! p7 l7 X+ z! }  endcase* V! u8 r6 o; h4 Y4 ?1 }1 |3 d
  & e* J5 U6 {! {) J, X5 E7 V
end0 t/ I$ z# Q% I+ m% H

. C9 E0 z* }- b/ V5 d 1 X3 z% `3 Q) p& y
endmodule
# R+ a  u0 l' s! x" v* d3 P# w/ q3 m4 q- Y$ b

该用户从未签到

2#
发表于 2019-5-16 17:50 | 只看该作者
很棒的资料 谢谢

该用户从未签到

3#
发表于 2022-8-18 16:01 | 只看该作者
基于FPGA的DAC0832电路的驱动代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-6 13:07 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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