dac verilog ad5601
首先从官网下载数据手册。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的更多相关文章
- 基于小脚丫DDS 调频 调幅 调相 切换波形 AD5601输出模拟波形
先讲讲里面的矩阵键盘,矩阵键盘列有下拉电阻,默认全为0000,默认行输入为1111,当有按键按下的时候,列输入会被拉高,这时控制行的输出做行扫描,电子琴用key_flag_r0电平作为使能,这里用ke ...
- STM32之DAC君
如花说得好:呃呃呃.是俗话说得好:有了ADC,怎可少了DAC..我觉得奇怪.今天我开头就直奔主题了.我想了想,总结了一句话:孙悟空纵然有七十二变.无论是变成猫也好,变成狗也罢.始终还是会变回他本身.所 ...
- DAC Usage4:从 Backup Package(.bacpac)还原DB
使用DAC,能够将database的schema 和 data 从一个server 或 cloud 上复制到另外一个server上,存储schema 和 data的文件是 .bacpac 文件. 方法 ...
- DAC Usage3:Monitor Data-tier Applications
If you deploy a DAC to a managed instance of the Database Engine, information about the deployed DAC ...
- DAC Usage2:通过DAC实现DB Schema的Migration和Upgrade
一,Introduce Extract DAC 是从现存的DB中创建DAC,抽取DB Object的definition 和 与之相关的实例级别的元素,比如Login,以及Login 和User之间的 ...
- 基于STM32Cube的DAC数模转化
1. STM32Cube配置 1.1 DAC配置 1.2 TIM6 配置 1.3 利用Cube产生工程程序,MDK打开软件 在主循环上添加语句: HAL_TIM_Base_S ...
- Verilog学习笔记简单功能实现(二)...............全加器
先以一位全加器为例:Xi.Yi代表两个加数,Cin是地位进位信号,Cout是向高位的进位信号.列表有: Xi Yi Cin Sum Cout 0 0 0 0 0 0 0 1 1 0 ...
- Verilog HDL模型的不同抽象级别
所谓不同的抽象类别,实际上是指同一个物理电路,可以在不同层次上用Verilog语言来描述.如果只从行为功能的角度来描述某一电路模块,就称作行为模块.如果从电路结构的角度来描述该电路模块,就称作结构模块 ...
- Verilog学习笔记基本语法篇(十二)········ 编译预处理
h Verilog HDL语言和C语言一样也提供编译预处理的功能.在Verilog中为了和一般的语句相区别,这些预处理语句以符号"`"开头,注意,这个字符位于主键盘的左上角,其对应 ...
随机推荐
- vue+element-ui 实现分页
<el-table ref="multipleTable" :data="tableData.slice((currentPage-1)*pagesize,curr ...
- 远程桌面连接KVM虚拟机
问题描述 有些时候,由于网络存在问题,虚拟机无法获取到IP地址,无法使用spice或vnc来连接虚拟机,但是又需要连到虚拟机来排查故障 解决办法 编辑虚拟机配置 设置xml命名空间 <domai ...
- GXU - 7D - 区间求和 - 前缀和
https://oj.gxu.edu.cn/contest/7/problem/D 描述 有一个所有元素皆为0的数组A,有两种操作: 1 l r x表示将A区间[l,r]内所有数加上x: 2 l r表 ...
- (linux)修改MySQL密码方法
1,在/etc/my.cnf末尾 加入skip-grant-tables,保存,跳过身份验证. 2,重启MySql,使刚才修改的配置生效. 3,终端输入mysql,然后再输入use mysql; 4 ...
- 使用js页面添加或删除标签
// 添加var container = document.getElementById('divAudio');container.appendChild(audio); // 删除var cont ...
- 【转】C#里partial关键字的作用
源地址:http://www.cnblogs.com/OpenCoder/archive/2009/10/27/1590328.html
- docker 推送镜像到私有地址
下面针对的都是docker官网的地址 先登录 docker login 输入docker ID ID不是你的注册邮箱,指的是你登录后显示的ID,然后输入密码 ....此时认为你已经登陆成功了 接着看下 ...
- 为RHEL6配置软件源 YUM安装
为RHEL6配置软件源(一)更改yum由于 redhat的yum在线更新是收费的,如果没有注册的话不能使用,如果要使用,需将redhat的yum卸载后,重启安装,再配置其他源,以下为详细过程:1.删除 ...
- 浏览器Quirksmode(怪异模式)与标准模式
由于历史的原因,各个浏览器在对页面的渲染上存在差异,甚至同一浏览器在不同版本中,对页面的渲染也不同.在W3C标准出台以前,浏览器在对页面的渲染上没有统一规范,产生了差异(Quirks mode或者称为 ...
- rsync简单总结
rsync是一个远程数据同步工具,算法是同步文件差异部分,因此针对非第一次同步传输速度快 (首次备份,没有复制优势)rsync作者:Andrew Tridgell 和 Paul Mackerras r ...