打印
[VHDL]

DAC驱动

[复制链接]
1981|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
cnb12345| | 2016-7-15 14:55 | 只看该作者
看不到图

使用特权

评论回复
板凳
用劲儿飞吧|  楼主 | 2016-7-15 15:58 | 只看该作者

把图上了,帮忙看看代码行不

library IEEE;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
--实体
entity da1_test is
    port (
          clk:in STD_LOGIC  ;  --系统主时钟
          da1_clk:out std_logic;  --给DA的时钟
          da1_d:out std_logic_vector(13 downto 0)  --给DA的数据
                        );
end da1_test;
------------------------------------------------
architecture topdesign_arch of da1_test is
------------------------------------------------
signal count_clk:std_logic_vector(13 downto 0);
------------------------------------------------

begin
-------------------------------------------------
da1_clk <=clk;  --给DA的时钟
--da_clk <=not count_clk(0);  --给DA的时钟
-------------------------------------------------

process(clk)
begin
        if clk'event and clk='1' then
-------------------------------------------------
           count_clk<=count_clk+1;
           da1_d<=count_clk(13 downto 0);
-------------------------------------------------
        end if ;
-------------------------------------------------
end process;
-------------------------------------------------
end topdesign_arch;

使用特权

评论回复
地板
用劲儿飞吧|  楼主 | 2016-7-15 15:59 | 只看该作者

这是个生成锯齿波的程序。。。

使用特权

评论回复
5
玄德| | 2016-7-15 16:22 | 只看该作者

先把WRTx、CLKx拉低,然后输出DATA IN数据;
延时ts时间之后,再把它们拉高,并保持tLPW、tCPW时间,然后拉低;
上述动作重复一次,前次给查的DATA IN数据将在DAC端输出。

时序就是这意思,实现这个波形就可以。

使用特权

评论回复
6
用劲儿飞吧|  楼主 | 2016-7-15 17:00 | 只看该作者
玄德 发表于 2016-7-15 16:22
先把WRTx、CLKx拉低,然后输出DATA IN数据;
延时ts时间之后,再把它们拉高,并保持tLPW、tCPW时间,然后 ...

延时怎么实现啊,计数器么?

使用特权

评论回复
7
玄德| | 2016-7-15 17:08 | 只看该作者
用劲儿飞吧 发表于 2016-7-15 17:00
延时怎么实现啊,计数器么?


当然。


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

21

帖子

1

粉丝