首先从官网下载数据手册。DAC有串行有并行,ad5601是串行,(需要好多时钟沿的移位内部转换为并行在输出)。

按照手册的时序编写程序,

关注下芯片的波特率范围

看看手册的数据传输那些事有效的数据位

module dac
(
input clk,
input rst_n_in,
output reg sclk,
output reg sync,
output reg din
);

//产生状态
reg[5:0] cnt=0;
always@(posedge clk or negedge rst_n_in)
begin
if(!rst_n_in)
cnt<=0;
else
begin
if(cnt>=34)cnt<=0;
else cnt<=cnt+1;
end
end

reg[15:0] data_reg=16'h1740;

always@(posedge clk or negedge rst_n_in)
begin
if(!rst_n_in)begin sclk=0;sync=1; end
else begin
case(cnt)
0: begin
data_reg=16'h1740;//显示的数据,16位中前两位无效位,最后6位无效位,中间8位为数据位
end

1:begin sclk=1;din=data_reg[15];sync=0;end
2:begin sclk=0;end //

3:begin sclk=1;din=data_reg[14];end
4:begin sclk=0;end //

5:begin sclk=1;din=data_reg[13];end
6:begin sclk=0;end //

7:begin sclk=1;din=data_reg[12];end
8:begin sclk=0;end //

9:begin sclk=1;din=data_reg[11];end
10:begin sclk=0;end //

11:begin sclk=1;din=data_reg[10];end
12:begin sclk=0;end //

13:begin sclk=1;din=data_reg[9];end
14:begin sclk=0;end //

15:begin sclk=1;din=data_reg[8];end
16:begin sclk<=0;end //

17:begin sclk=1;din=data_reg[7];sync=0;end
18:begin sclk=0;end //

19:begin sclk=1;din=data_reg[6];end
20:begin sclk=0;end //

21:begin sclk=1;din=data_reg[5];end
22:begin sclk=0;end //

23:begin sclk=1;din=data_reg[4];end
24:begin sclk=0;end //

25:begin sclk=1;din=data_reg[3];end
26:begin sclk=0;end //

27:begin sclk=1;din=data_reg[2];end
28:begin sclk=0;end //

29:begin sclk=1;din=data_reg[1];end
30:begin sclk=0;end //

31:begin sclk=1;din=data_reg[0];sync=0;end
32:begin sclk=0;end //
33:begin sclk=1; sync=1;end //

endcase

end
end
endmodule

dac verilog ad5601的更多相关文章

  1. 基于小脚丫DDS 调频 调幅 调相 切换波形 AD5601输出模拟波形

    先讲讲里面的矩阵键盘,矩阵键盘列有下拉电阻,默认全为0000,默认行输入为1111,当有按键按下的时候,列输入会被拉高,这时控制行的输出做行扫描,电子琴用key_flag_r0电平作为使能,这里用ke ...

  2. STM32之DAC君

    如花说得好:呃呃呃.是俗话说得好:有了ADC,怎可少了DAC..我觉得奇怪.今天我开头就直奔主题了.我想了想,总结了一句话:孙悟空纵然有七十二变.无论是变成猫也好,变成狗也罢.始终还是会变回他本身.所 ...

  3. DAC Usage4:从 Backup Package(.bacpac)还原DB

    使用DAC,能够将database的schema 和 data 从一个server 或 cloud 上复制到另外一个server上,存储schema 和 data的文件是 .bacpac 文件. 方法 ...

  4. DAC Usage3:Monitor Data-tier Applications

    If you deploy a DAC to a managed instance of the Database Engine, information about the deployed DAC ...

  5. DAC Usage2:通过DAC实现DB Schema的Migration和Upgrade

    一,Introduce Extract DAC 是从现存的DB中创建DAC,抽取DB Object的definition 和 与之相关的实例级别的元素,比如Login,以及Login 和User之间的 ...

  6. 基于STM32Cube的DAC数模转化

    1. STM32Cube配置 1.1 DAC配置   1.2 TIM6 配置 1.3 利用Cube产生工程程序,MDK打开软件       在主循环上添加语句:      HAL_TIM_Base_S ...

  7. Verilog学习笔记简单功能实现(二)...............全加器

    先以一位全加器为例:Xi.Yi代表两个加数,Cin是地位进位信号,Cout是向高位的进位信号.列表有:   Xi     Yi    Cin Sum Cout 0 0 0 0 0 0 0 1 1 0 ...

  8. Verilog HDL模型的不同抽象级别

    所谓不同的抽象类别,实际上是指同一个物理电路,可以在不同层次上用Verilog语言来描述.如果只从行为功能的角度来描述某一电路模块,就称作行为模块.如果从电路结构的角度来描述该电路模块,就称作结构模块 ...

  9. Verilog学习笔记基本语法篇(十二)········ 编译预处理

    h Verilog HDL语言和C语言一样也提供编译预处理的功能.在Verilog中为了和一般的语句相区别,这些预处理语句以符号"`"开头,注意,这个字符位于主键盘的左上角,其对应 ...

随机推荐

  1. CocoaPods常用操作命令

    查看镜像: gem sources -l 删除镜像 gem sources --remove https://rubygems.org/ 添加镜像 gem sources -a https://gem ...

  2. 【mysql存储引擎】

    看你的mysql现在已提供什么存储引擎: mysql> show engines;   看你的mysql当前默认的存储引擎: mysql> show variables like '%st ...

  3. 【关于msyql5.6创建存储过程的一些记录】

    -- 秒杀执行存储过程DELETE $$ -- console的结束符号由;转换成 $$-- in输入参数:out:输出参数-- ROW_COUNT():返回上条dml影响的条数: 小于0:sql语句 ...

  4. 洛谷P2828 Switching on the Lights(开关灯)

    P2828 Switching on the Lights(开关灯) 题目背景 来源:usaco-2015-dec Farm John 最近新建了一批巨大的牛棚.这些牛棚构成了一个N*N的矩形网络.( ...

  5. DMZ主机

    DMZ称为"隔离区",也称"非军事化区".为了解决安装防火墙后外部网络不能访问内部网络服务器的问题,而设立的一个非安全系统与安全系统之间的缓冲区.这个缓冲区位于 ...

  6. Oracle的RBO和CBO

    Oracle的优化器有两种优化方式,即基于规则的优化方式(Rule-Based Optimization,简称为RBO)和基于代价的优化方式(Cost-Based Optimization,简称为CB ...

  7. 关于text-overflow实现·多余字符省略·的正确打开方式

    1. 字符包裹元素要能控制宽度 2. 包裹元素中包含代码 .wrapper { ... text-overflow: ellipsis; overflow: hidden; white-space: ...

  8. c# log4Net 详细说明

    转载 http://www.cnblogs.com/kissazi2/p/3392605.html

  9. Luogu P3265 [JLOI2015]装备购买

    好吧刚开始不知道自己在写什么,,,后来写了线性方程组,又过了一天一上午终于明白了... 当然题意很显然:求代价最小的极大线性无关组. 那就高斯消元(好吧刚开始我不会用它来解这道题qwq) 第一个循环是 ...

  10. codeforces C. Vasya And The Mushrooms (思维+模拟)

    题意:给定一个2*n的矩形方格,每个格子有一个权值,从(0,0)开始出发,要求遍历完整个网格(不能重复走一个格子),求最大权值和,(权值和是按照step*w累加,step步数从0开始). 转载: 题解 ...