在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2557|回复: 1

VHDL描述的ad转换和ad转换器有什么区别呢? 有这个还要ad转换器干嘛

[复制链接]
发表于 2004-10-20 23:15:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
有什么区别? 下面是见过的一个VHDL描述的ad转换
Package defining types used by the system memory
PACKAGE rampac IS
             SUBTYPE addr10 IS NATURAL RANGE 0 TO 1023;
             SUBTYPE data16 IS INTEGER RANGE -32768 TO +32767;
             TYPE ram_array IS ARRAY(addr10'LOW TO addr10'HIGH) OF data16;
             CONSTANT z_val : data16 := -1;
END rampac;
Package defining a basic analogue type
PACKAGE adcpac IS
     SUBTYPE analogue IS REAL RANGE -5.0 TO +5.0;
END adcpac;
16-bit Analogue to Digital Converter
USE WORK.rampac.ALL;
USE WORK.adcpac.ALL;
ENTITY adc16 IS
    GENERIC(tconv : TIME := 10 us); --conversion time
    PORT(vin : IN analogue; digout : OUT data16; --input and output
              sc : IN BIT; busy : OUT BIT); --control
END adc16;
ARCHITECTURE behaviour OF adc16 IS
BEGIN
     PROCESS
           VARIABLE digtemp : data16;
           CONSTANT vlsb : analogue := (analogue'HIGH -
analogue'LOW)/REAL(2*ABS(data16'LOW));
     BEGIN
           digtemp := data16'LOW;
           busy <= '0';
           WAIT UNTIL (sc'EVENT AND sc = '0');
           busy <= '1';
           FOR i IN 0 TO (2*data16'HIGH) LOOP
               IF vin >= (analogue'LOW + (REAL(i) + 0.5)*vlsb)
               THEN digtemp := digtemp + 1;
               ELSE EXIT;
               END IF;
           END LOOP;
           WAIT FOR tconv;
           digout <= digtemp;
           busy <= '0';
     END PROCESS;
END behaviour;
发表于 2004-10-21 08:43:47 | 显示全部楼层

VHDL描述的ad转换和ad转换器有什么区别呢? 有这个还要ad转换器干嘛

这个只是个模型
不是硬件
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-15 02:53 , Processed in 0.021241 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表