微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 基于FPGA的ADS7822模数转换芯片控制程序设计

基于FPGA的ADS7822模数转换芯片控制程序设计

时间:10-02 整理:3721RD 点击:
这个程序是想通过fpga来控制ADS7822,ADS7822时序图如下


引脚图


程序的时序仿真图如下:
由于图太大没法全部截下来,先是输入


输出却是这样的


想请教各位大神,我的程序哪里出问题了,还是仿真波形没有设置好呢?已经困扰好几天了,跪求解答!源程序如下
library ieee;
use ieee.std_logic_1164.all;
entity adc is
        port(clk:std_logic;--时钟
                 key:std_logic_vector(3 downto 0);--按键输入,“0111”时开始转换,”1011“时停止转换
                 cs:out std_logic;
                 D_in:in std_logic_vector(15 downto 0);--数据输入
                 D_out:out std_logic_vector(15 downto 0));--数据输出
end adc;
architecture rt1 of adc is
signal keyon:std_logic:='0';
begin
        process(clk)
                variable count:integer range 0 to 15;--数据输入计数,16位时置0
                variable x:integer range 0 to 2;
                variable state:integer range 0 to 2;--状态变量,0状态是转换刚开始,但须2个时钟周期来进行采样;
                begin                                                                --1状态是数据传输,传送12位数据;2时截止状态
                        if(key="0111")then
                                keyon cs if(count cs cs if(count cs<='1';state:=0;
                                        end case;
                                --end if;
                        else        cs<='1';
                        end if;
                        end if;
                end process;
end rt1;

建议 在仿真时添加中间变量的仿真波形  key_on,x ,state, count等  查看是否触发 执行条件

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top