打印

用FPGA驱动AD7714,编程出错,请打家帮帮忙看一下

[复制链接]
2036|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
anqi0126|  楼主 | 2010-11-16 09:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
LIBRARY IEEE;
USE IEEE.std_logic_1164.all;
ENTITY AD7714xiaosong IS
     PORT(
         AD7714sclk:OUT std_logic;
         AD7714pol:OUT std_logic;
         AD7714sync:OUT std_logic;
         AD7714reset:OUT std_logic;
         AD7714standby:OUT std_logic;
         AD7714din:OUT std_logic;
         AD7714cs:OUT std_logic;
         AD7714drdy:IN std_logic;
         AD7714dout:IN std_logic;
         AD7714buffer:OUT std_logic;
         clk:IN std_logic
         );
END AD7714xiaosong;
ARCHITECTURE AD7714DATA OF AD7714xiaosong IS
     SIGNAL Read_AD7714DATA:std_logic_vector(23 downto 0);
     SIGNAL AD7714in_DATA:std_logic_vector(7 downto 0);
     BEGIN
     PROCESS(clk)
        VARIABLE i:INTEGER RANGE 0 TO 6;
        VARIABLE m:INTEGER RANGE 0 TO 23;
        VARIABLE n:INTEGER RANGE 0 TO 6;                                               --读数据
       BEGIN
          AD7714pol<='1';                              --初始化
          AD7714sync<='1';
          AD7714standby<='1';
          AD7714buffer<='1';
          AD7714cs<='0';
          AD7714reset<='1';
          IF(clk'EVENT and clk='1')THEN
                IF n<8 THEN
                  CASE n IS
                  WHEN 0 => AD7714in_DATA<="00100000";              
                  WHEN 1 => AD7714in_DATA<="00010001";              
                  WHEN 2 => AD7714in_DATA<="00110000";
                  WHEN 3 => AD7714in_DATA<="00000000";
                  WHEN 4 => AD7714in_DATA<="00010000";
                  WHEN 5 => AD7714in_DATA<="00100000";
                  WHEN 6 => AD7714in_DATA<="00011000";  --选择数据寄存器
                  WHEN OTHERS => AD7714in_DATA<="00011000";
                  END CASE;
                END IF;
                 IF i< 8 THEN
                   AD7714sclk<='0';
                   AD7714din<=AD7714in_DATA(i);       --把数据写入AD7714
                   i:=i+1;
                   AD7714sclk<='1';
                 ELSIF n=6 THEN
                               IF AD7714drdy='0' THEN             --如果AD有新数据产生,就读AD输出数据
                                         IF m<24 THEN
                                              AD7714sclk<='0';
                                              Read_AD7714DATA(m)<=AD7714dout;   
                                              i:=0;
                                              AD7714sclk<='1';
                                         END IF;
                               END IF;
                            ELSE i:=0;
                            n:=n+1;
               END IF;
   
       END IF;
        
     END PROCESS;
END AD7714DATA;

相关帖子

沙发
anqi0126|  楼主 | 2010-11-16 09:27 | 只看该作者
提示好多错误,都是868。IN2' missing source

使用特权

评论回复
板凳
lelee007| | 2010-12-21 19:25 | 只看该作者
不会VHDL的路过

使用特权

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

本版积分规则

0

主题

206

帖子

0

粉丝