EDA课程设计 - 图文(3)
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所示:
相关推荐:
- [互联网资料]2022年厦门大学机电工程系824机械设计
- [互联网资料]东南大学2022年硕士研究生拟录取名单公
- [互联网资料]能源调研报告(精选多篇)
- [互联网资料]初三英语下学期 中考英语 语法填空训练
- [互联网资料]2022内蒙古选调生行测常识备考:新事物
- [互联网资料]自驾必备!在新西兰租什么样的车自驾游
- [互联网资料]佛教素食菜谱44页未完
- [互联网资料]盈利能力分析外文翻译
- [互联网资料]2022年南昌航空大学音乐学院736马克思
- [互联网资料]优选外贸跟单实习报告总结(精品版)
- [互联网资料]银行新员工培训总结
- [互联网资料]2_year_visa_new_guidance_190316
- [互联网资料]天津市五校宝坻一中静海一中杨村一中芦
- [互联网资料]2007--2008学年第一学期高三数学宁波市
- [互联网资料]Chromatic framework for vision in ba
- [互联网资料]幼儿园大班上学期美术教案《心愿树》含
- [互联网资料]2022年华中农业大学信息学院820微型计
- [互联网资料]硬盘坏道的表现 __硬盘使用久了
- [互联网资料]江苏省2016年会计从业资格考试《会计基
- [互联网资料]公共场所卫生监督试卷全解
- 高级英语第一册所有修辞方法及例子总结
- 综合交通枢纽规划与城市发展
- 沃尔玛的企业文化案例分析
- 美国Thanksgiving Day 感恩节 介绍
- PEP六年级英语上册Unit6How do you fee
- 最齐全的中国大型商场购物中心名单
- 数据结构实验报告八—哈夫曼编译码
- 杭州市余杭区人民政府(通知)
- 七年级语文成语运用专项训练
- 微观经济学第三章 消费者行为 课后习题
- 对_钱学森之问_的思考
- Excel_三级联动_下拉菜单
- 办公用品需求计划申请表
- 对外汉语教材必须要知道的发展史
- 挑战杯大学生学术科技作品竞赛作品申报
- 举办民办教育培训机构应具备下列条件
- 太阳能路灯项目设计方案
- 2013年八年级上最新人教版新教材Unit3I
- 【历史】 6-4 《近代科学之父牛顿》 课
- 高中生物《第四章 第二节 探讨加酶洗衣




