教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

EDA课程设计 - 图文(3)

来源:网络收集 时间:2026-05-29
导读: q2 if EC='1' then if q q q '0'); --等于9计数器清零 end if; end if; end if; end process; EC '0'; db ---打开endfreq.vhd 原文件 --频率计 (测量范围 1Hz~6M) library ieee; use ieee.std_logic_1164.all; use

q2<=q1; q1<=a; -- 延时2个系统时钟周期

if EC='1' then

if q<9 then -- 计数器加一

q<=q+1; else

q<=( others=>'0'); --等于9计数器清零 end if; end if; end if;

end process;

EC<=not q2 and q1; --微分电路 cy<='1' when q=9 and ec='1' else --进位信号输出

'0';

db<=q; --计数值输出 s<=EC; --微分信号输出 end beha;

---打开endfreq.vhd 原文件

--频率计 (测量范围 1Hz~6M) library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity endfreq is

port ( clk: in std_logic; -- 系统时钟(12M)输入

f2: in std_logic; -- 待测信号输入 sel: out std_logic_vector(2 downto 0); -- 显示位选信号输出 outa: out std_logic_vector( 6 downto 0) -- 显示数据输出 );

end endfreq;

architecture behave of endfreq is

component count10 -- 十进制同步计数器组件 port ( cp: in std_logic;

clr: in std_logic; a: in std_logic; s: out std_logic;

db: out std_logic_vector(3 downto 0); cy: out std_logic

);

end component;

signal hex: std_logic_vector( 3 downto 0); signal data: std_logic_vector(31 downto 0); signal data1: std_logic_vector(31 downto 0); signal clr1: std_logic;

signal c0,c1,c2,c3,c4,c5,c6:std_logic;

·11·

signal cy1: std_logic;

signal count: std_logic_vector( 2 downto 0); signal ms: std_logic; signal sec: std_logic; begin

free_count: block -- 产生 400Hz 时钟信号 signal q: std_logic_vector( 14 downto 0); signal rst1,dly: std_logic; begin

process( clk) begin

if rst1='1' then

q<=( others=>'0');

elsif ( clk'event and clk='1') then

q<=q+1; dly<=q(14); end if;

end process;

rst1<='1' when q=30000 else '0';

ms<= dly and not q(14); end block free_count; process( ms) begin

if( ms'event and ms='1') then count<=count+1; end if;

end process;

--8 个十进制同步计数器

u1: count10 port map (cp=>clk,clr=>clr1,a=>f2,s=> open, db=>data(3 downto 0),cy=>c0);

u2: count10 port map (cp=>clk,clr=>clr1,a=>c0,s=> open, db=>data(7 downto 4),cy=>c1);

u3: count10 port map (cp=>clk,clr=>clr1,a=>c1,s=> open, db=>data(11 downto 8),cy=>c2);

u4: count10 port map (cp=>clk,clr=>clr1,a=>c2,s=> open, db=>data(15 downto 12),cy=>c3);

u5: count10 port map (cp=>clk,clr=>clr1,a=>c3,s=> open, db=>data(19 downto 16),cy=>c4);

u6: count10 port map (cp=>clk,clr=>clr1,a=>c4,s=> open, db=>data(23 downto 20),cy=>c5);

u7: count10 port map (cp=>clk,clr=>clr1,a=>c5,s=> open, db=>data(27 downto 24),cy=>c6);

u8: count10 port map (cp=>clk,clr=>clr1,a=>c6,s=> open, db=>data(31

·12·

downto 28),cy=>open);

--8选1数据选择器

hex <= data1(3 downto 0) when count=0 else

data1(7 downto 4) when count=1 else data1( 11 downto 8) when count=2 else data1(15 downto 12) when count=3 else data1(19 downto 16) when count=4 else data1( 23 downto 20) when count=5 else data1(27 downto 24 ) when count=6 else data1(31 downto 28) when count=7 else \

sel<=count; --显示位选信号输出 process( hex) -- 七段译码器 begin

case hex is -- 7 segment encoder

when \when \when \when \when \when \when \when \when \when \when \when \when \when \when \when \

when others => outa<=\

end case; end process;

second: block -- 产生 1 Hz 时钟信号

signal qq: std_logic_vector(23 downto 0); signal rst2,dly: std_logic;

begin

process( clk) begin

if rst2='1' then qq<=(others=>'0');

elsif ( clk'event and clk='1') then qq<=qq+1;

·13·

dly<=qq(23); end if;

end process;

rst2<='1' when qq=12000000 else

'0';

sec<=dly and not qq(23); end block second; process( sec) begin

if( sec'event and sec='1') then —秒信号上升沿时刻读计数值,并存储

data1<=data; end if; end process;

clr1<= sec; --秒信号高电平时,清除全部计数器 end behave;

引脚分配(ACEX EP1K30TC144-3):

out0-P144、out1-P8、out2-P9、out3-P10 、out4-P12、 out5-P13、 out6-P17 sel0-P101、sel1-P102、sel2-P117、clk-P125、f2-P88

管脚标号dout0到dout6分别接到LED的8位段码中的7位上;sel0到sel2接到实验箱中74ls138的输入端;clk1HZ为1HZ标准时钟输入,接到频率源上的clk5;sysclk为LED显示时钟输入,接到频率源上的clk1;freq接入待测信号。管脚标号对应的I/O如下图所示:

User

Assignments Node Name Clk1@125 CLK1HZ endfreq@144 DOUT0 endfreq@8 DOUT1 endfreq@9 DOUT2 endfreq@10 DOUT3 endfreq@12 DOUT4 endfreq@13 DOUT5 endfreq@17 DOUT6 endfreq@88 FREQ endfreq@101 SEL0 endfreq@102 SEL1 endfreq@117 SEL2 sysclk@119 SYSCLK 五、实验现象:显示器上显示实验所测信号的频率值。 六、实验说明:精确:误差小于0.1% 。

·14·

D/A设计

一、目的:了解EDA在数模变换中的应用,学会用EDA控制DAC0832.

二、原理:DAC0832有三种连接方式:直通方式、单缓冲方式和双缓冲方式。在本实验中,DAC0832工作在直通方式下。如附录一NO6 A/D、D/A连接图所示:当SW1,SW2上拨时,ACEX1K30将与DAC0832的CS,WR1相连的I/O口置成低电平,即启动DAC0832工作;数据产生模块不停地将8bit的变化数据输入到DAC0832的8位数字量输入线上,DAC0832输出相应的变化的模拟量;数据产生模块不停地将8bit的变化数据输入到LED显示模块,由于数据变化太快将看到LED上显示88。其系统原理框图如图8.1所示:

…… 此处隐藏:2176字,全部文档内容请下载后查看。喜欢就下载吧 ……

EDA课程设计 - 图文(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/442749.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)