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

求dac8668的verilog驱动代码?

[复制链接]
  • TA的每日心情

    2019-11-19 15:29
  • 签到天数: 1 天

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    我需要同时驱动两路da  因为这个da8568上有两个模拟输出A,B2 j; U* E7 s2 ]& C" p# O8 n+ `
    希望大神帮我解决

    $ Z0 g" |0 B" P2 s1 ^3 @8 d  I1 T8 X/ U0 S  U3 H. _+ H
    , k" [9 J# t8 f8 {% _
    另外  我自己拙劣代码   也给大神们看看 & l+ Y# p% W# l" w, w% A( w
    / n, _2 @& |2 u' c* e: {

    $ z  ~( l( C3 y+ P- `! R
    • `timescale 1ns / 1ps
    • module da(
    • input clk,//125M的时钟!!!
    • input rst_n,
    • output sclk,//为50M  所以周期20ns
    • output cs_n,////输出通道   就是那个sync
    • output reg clr_n,//接高电平   这样处理
    • output reg load_n,///ci此程序定义的那个接地  同步不需要管
    • output din,
    •         //input [15:0] reg1,
    •         //input [15:0] reg2,
    • output reg LED
    • );
    • 4 W6 K& Y( o, d+ i9 L# \2 ~- q5 ~

    • 4 }3 L  b% j! C( U1 p
    • wire clk1;
    • wire [15:0] reg1,reg2;
    • //四个变量用了一个
    • //parameter CMD_SOFT_RST = 32'h1FFF_FFFF;//0001 11XX XXXX XXXX XXXX XXXX XXXX XXXX
    • //parameter CMD_POWER_ON = 32'h090A0000;
    • parameter CMD_WRITE_INPUT_REG = 32'h00000000;
    • //parameter CMD_LOAD = 32'h060000FF;//32'h060000FF0000 0110 0000000000  涓嶅  鏀逛笅; 0000 0110 0000 0000 0000 0000 1111 1111
    • wire [15:0]DA1buff;
    • wire [15:0]DA2buff;
    • reg [31:0]PSbuff;
    • reg [12:0]dacnt;  //max=4095
    • reg  xdaccsf;
    • wire xdaccsb;
    • wire we1,we2;
    • " b+ [! L" V) k1 _8 U5 l2 k1 [+ R1 w
    • 2 y- Y6 ~+ J! }

    • " f- y& L% f/ T: @/ ]" x2 o& W
    • ) @1 S! ^: z! L' B: ~
    • clk_wiz_0 q
    •        (
    •         // Clock out ports
    •         .clk_out1(sclk),
    •         .clk_out2(clk1),    // output clk_out1
    •         // Status and control signals
    •         .reset(rst_n), // input reset
    •        // Clock in ports
    •         .clk_in1( clk));   
    •    
    •    
    •     wave_gen  a( .clk1(clk1),
    •          .rst_n(rst_n),
    •          .reg1(reg1),
    •          .reg2(reg2)
    •    
    •         );
    • // DAC8568 是32位寄存器,写一次寄存器需要32个sclk        
    • assign we1     = (dacnt == 12'd1)  ?  1'b1 : 1'b0; //we1 cnt 1   + 32 = 33
    • assign we2     = (dacnt == 12'd38) ?  1'b1 : 1'b0; //we2 cnt 38  + 32 = 70
    • assign xdaccsb =        (dacnt > 12'd0   && dacnt < 12'd33)  ? 1'b0 :        //片选?  给100ns转换时间
    •                                         (dacnt > 12'd38  && dacnt < 12'd71)  ? 1'b0 : 1;                                 
    • assign DA1buff   =   reg1; //12'h555;//12'hFFF - DA1 ;
    • assign DA2buff   =   reg2; //12'hAAA;//12'hFFF - DA2 ;
    • //assign sclk = clk;
    • assign cs_n = xdaccsf;
    • assign din  = PSbuff[31];
    • //assign clr_n = 1'b1;
    • always @(posedge sclk or negedge rst_n) begin
    •         IF (rst_n)
    •         begin
    •                 xdaccsf <= 1'b1;
    •                 led<=1'b0;
    •                 end
    •         else
    •         begin
    •                 xdaccsf <= xdaccsb;
    •                 led<=1'b1;
    •                 end
    • end
    •      
    • always @(posedge sclk or negedge rst_n) begin
    •         if (rst_n)
    •              begin
    •              clr_n=1'b1;
    •                    load_n=1'b0;
    •               dacnt <= 12'd0;
    •                 PSbuff <= 32'h00000000;
    •                 end
    •         else if( dacnt==12'd72) // 澶嶄綅鍚庣涓?涓懆鏈熻繘琛屽垵濮嬪寲     daenable 浣胯兘  
    •                
    •                 dacnt <= 12'd0;
    •         else
    •                   begin
    •                   clr_n=1'b1;
    •           load_n=1'b0;
    •                   dacnt <= dacnt+1'd1;
    •                                 if (we1)
    •                                         PSbuff <=  CMD_WRITE_INPUT_REG | 0<<20 | DA1buff << 4; //因为后四位没用  无关的  移动是因为地址在动
    •                                 else if (we2)
    •                                         PSbuff <=  CMD_WRITE_INPUT_REG | 1<<20 | DA2buff << 4;
    •         
    •                                 else         
    •                                         PSbuff <= {PSbuff[30:0],1'bZ};        //默认高阻态
    •                         end
    •         
    • end
    • endmodule
    • `timescale 1ns / 1ps
    • module wave_gen( clk1,
    •          rst_n,reg1,reg2
    •   );
    • parameter  c=16'd655;
    • input clk1, rst_n;
    • output [15:0] reg1, reg2;
    • reg [15:0] y=1'b1;
    • reg  [15:0] cnt =1'b1;
    • reg  [15:0] cnt1 =1'b0;
    • reg[15:0]  reg1,reg2;         
    •    always @(posedge clk1 or negedge rst_n) begin
    •       if (rst_n)  
    •       begin      
    •       cnt1 <= 12'd0;
    •        cnt <= 12'd1;
    •          end
    •       else if(cnt1==12'd72) // 澶嶄綅鍚庣涓?涓懆鏈熻繘琛屽垵濮嬪寲     daenable 浣胯兘  
    •           begin
    •           cnt1 <= 12'd0;
    • / u/ p8 Y) H5 x1 X2 f" n, X3 o- |* N
    •               cnt<=cnt+1;
    •                 y<=c*cnt;
    •                 end
    •           else  if  (cnt==100)
    •                        cnt<=1;                  
    •     else
    •       begin
    •           cnt1 <= cnt1+1'd1;
    •           reg1<=y;
    •            reg2<=y;     
    •           end
    •   end

    • 8 |1 V- J$ K3 r3 k* g* `
    • ' e1 I7 k% t  c3 l9 p) J$ Q+ t8 r
    • // always @(posedge clk or negedge rst_n) begin
    •         // if(rst_n)
    •         // begin
    •           // cnt1<=12'd0;
    •          //  end
    •       //  else  
    •           //  begin
    •            // reg1<=y;
    •            // reg2<=y;
    •               //   end;  
    •    // end
    • endmodule5 x3 f# |) V8 U6 |9 H# A& N$ M( D

    1 E2 {# Y4 R; C( E

    ( W- h' `1 U+ F9 k' \
    1 d# A6 Q9 q: u( F- B) g- m$ A$ x: t) ^5 f: m, A0 z2 F

    ! e4 q8 z. s" r! ^% y: p0 L# Z3 `" h% J& m

    ' W3 a# j7 \- D" S% \8 E8 f; R( x
    ) s0 v- g4 e5 [0 S5 r" {

    9 W2 G* {! j0 Z8 B. }! e% c

    " B: A5 D" e: p3 R7 T
    8 Y9 a% S  I9 V3 s2 G

    ; w+ D' N8 T7 O( s1 l$ |
    # c) H, ]1 ?2 x4 R
    0 v9 K6 |: q! J) e6 {# Q5 s
  • TA的每日心情

    2019-11-19 15:29
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
     楼主| 发表于 2019-10-8 16:16 | 只看该作者
    给自己打个气,希望大神帮忙
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-18 13:27 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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