

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.VHDL语言实例例1:设计一七段显示译码器,用它来驱动七段发光管LED显示十六进制数字0到9和字母A到F。LED显示数码管为共阳极。LIBRARY ieee; USE ieee.std_logic_1164.all;
2、60; ENTITY HEX2LED IS PORT(
3、160; HEX :IN std_logic_vector(3 DOWNTO 0); LED : OUT std_logic_vector(6 TO 0)
4、 ); END HEX2LED;
5、 图例1 七段显示译码器实体 ARCHITECTURE HEX2LED_arc OF HEX2LED IS BEGIN &
6、#160; - HEX-TO-SEVEN-SEGMENT DECODER - SEGMENT ENCODING
7、; - 0 &
8、#160; - -
9、60; - 5 | |1 - - <-6
10、 - 4 | |2
11、60;- - - 3 &
12、#160; WITH HEX SELECT LED<= "1111001" when "0001",
13、0; "0100100" when "0010", "0110000" when "0011",
14、160; "0011001" when "0100", "0010010" when "0101",
15、; "0000010" when "0110", "1111000" when "0111",
16、 "0000000" when "1000", "0010000" when "100
17、1", "0001000" when "1010", "0000011&
18、quot; when "1011", "1000110" when "1100", &
19、#160; "0100001" when "1101", "0000110" when "1110",
20、; "0001110" when "1111", "1000000" when others; END HEX2LED_arc;例2:设计一个八选一数据选择器1)s是通道选择信号, d0,d1
21、,d2,d3,d4,d5,d6,d7数据输入 out1是数据输出ENTITY sels IS PORT(d0,d1,d2,d3,d4,d5,d6,d7:IN BIT; s :INTEGER RANGE 0 TO 7; out1 :OUT BIT);END sels;图例2(a) 八选一数据选择器实体ARCHITECTURE sel
22、s_arc OF sels ISBEGIN WITH s SELECT out1 <= d0 WHEN 0, d1 WHEN 1,
23、0; d2 WHEN 2, d3 WHEN 3, d4 WHEN 4, d5 WHEN 5, &
24、#160; d6 WHEN 6, d7 WHEN 7;END sels_arc;2)A,B,C是通道选择信号, I0,I1,I2,I3,I4,I5,I6,I7数据输入 Q是数据输出LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY mux8 ISPOR
25、T(I0,I1,I2,I3,I4,I5,I6,I7,A,B,C:IN std_logic; Q :OUT std_logic);END mux8; 图例2(b) 八选一数据选择器实体ARCHITECTURE mux8_arc OF mux8 IS SIGNAL sel :INTEGER ;BEGIN Q <= I0 AFTER 10 ns WHEN sel= 0 ELSE &
26、#160; I1 AFTER 10 ns WHEN sel= 1 ELSE I2 AFTER 10 ns WHEN sel= 2 ELSE I3 AFTER
27、 10 ns WHEN sel= 3 ELSE I4 AFTER 10 ns WHEN sel= 4 ELSE I5 AFTER 10 ns WHEN sel= 5 ELSE
28、60; I6 AFTER 10 ns WHEN sel= 6 ELSE I7 AFTER 10 ns ; sel <= 0 WHEN A= 0 AND B= 0 AND C= 0 ELSE
29、; 1 WHEN A= 1 AND B= 0 AND C= 0 ELSE 2 WHEN A= 0 AND B= 1 AND C= 0 ELSE 3 WHEN A= 1 AND B= 1 AND C= 0 ELSE
30、160; 4 WHEN A= 0 AND B= 0 AND C= 1 ELSE 5 WHEN A= 1 AND B= 0 AND C= 1 ELSE
31、0; 6 WHEN A= 0 AND B= 0 AND C= 1 ELSE 7;END mux8_arc;例3:设计一D触发器d是输入端,clk是时钟信号控制端,q是触发器的输出端。其程序如下:LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY reg
32、IS PORT(d,clk:IN BIT; q:OUT BIT);END reg;图例3 D触发器实体ARCHITECTURE reg_arc OF reg IS BEGIN PROCESS BEGIN WAIT UNTIL clk= 1;
33、 q <= d; END PROCESS; PROCESSEND reg_arc;例4:设计一基本RS触发器r、s为触发器的输入信号,q、not_q为触发器的输出信号。LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY RSFF IS PORT(r,s:IN BIT; q,not_q:OUT BIT);END RSFF;图例4 基本RS触发器实体ARCHITECTU
34、RE RSFF_arc OF RSFF IS BEGIN PROCESS(r,s) VARIABLE last_state:BIT:= 0; BEGIN ASSERT NOT(r= 1 AND s= 1) REPORT “Both r AND s equal to
35、 1” SEVERITY error; IF r= 0 AND s= 0 THEN last_state:= last_state ; ELSIF r= 1 AND s= 0 THEN
36、0; last_state:= 0; ELSE - r= 0 AND s= 1 last_state:= 1; END IF; q <= last_state AFTER 10 ns; &
37、#160; not_q <= NOT(last_state) AFTER 20 ns; END PROCESS;END RSFF_arc;当r和s同时等于1时,触发器处于不定状态。程序设计中设置了断言语句是为了判断r和s都等于1时,输出终端将显示报告“Both r AND s equal to 1”,同时终止模拟过程,并显示错误的严重error,以便设计者调试和修正模块程序。从IF到END IF是条件语句,用到了可选项ELSIF和ELSE来判别RS触发器的其它三种情况。IF语句后面是一赋值语句,将IF语句中赋值的中间变量lsat_state经10 ns后送到q端。
38、图8-12是RS触发器的逻辑电路图。例5:设计一个带有异步清零、同步置数、使能控制的四位二进制计数器LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY COUNT2 IS PORT(A: IN INTEGER RANGE 0 TO 3; CLK: IN STD_LOGIC; CLR: IN STD_LOGIC;
39、160; EN: IN STD_LOGIC; LD: IN STD_LOGIC; Cout: OUT INTEGER RANGE 0 TO 3 );END COUNT2;图例5 四位二进制计数器实体ARCHITECTURE COUNT2_arc OF COUNT2 IS SIGNAL
40、SIG: INTEGER RANGE 0 TO 3;BEGIN PROCESS (CLK, CLR) BEGIN IF CLR = '0' THEN SIG <= 0; ELSIF (CLK'EVENT AND CLK = '1') THEN IF LD = '1' THEN
41、; SIG <= A; ELSE IF EN = '1' THEN SIG <= SIG + 1; ELSE
42、0; SIG <= SIG; END IF; END IF; END IF; END PROCESS; Cout <= SIG;END COUNT2_arc例6:设计一个存储容量为28×8的RAM。CS为RAM的片选信号,WR为RAM的写信号,RD为RAM读信号,ADR:八位地址信号,Din:八位数据输入线,Dout为八位数
43、据输出线。library IEEE;use IEEE.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity RAM is port (WR: in STD_LOGIC; RD: in STD_LOGIC;
44、60; ADR: in STD_LOGIC_VECTOR (7 downto 0); CS: in STD_LOGIC; Din: in STD_LOGIC_VECTOR (7
45、 downto 0); Dout: out STD_LOGIC_VECTOR (7 downto 0) );end RAM;图例6 RAM实体architecture RAM_arch of RAM is sub
46、type word is std_logic_vector(7 downto 0); type memory is array (0 to 15)of word; signal adr_in:integer range 0 to 15; signal sram:memory; begin adr_in<=conv_integer(ADR); process(wr)begin&
47、#160; if(wr'event and wr='1')then if(cs='1'and wr='1')then sram(adr_in)<=din after 2 ns;&
48、#160; end if; end if; end process; process(rd,cs)begin if(rd='0'and cs='1'
49、)then dout<=sram(adr_in)after 3 ns; else dout<="ZZZZZZZZ"after 4 ns;
50、 end if; end process;end RAM_arch;例7:利用枚举类型设计一个状态机,用灯的颜色代表相应的状态名。library IEEE;use IEEE.std_logic_1164.all;ENTITY traffic_light IS PORT ( sensor,clock :in std_logic; red_light,green_light,yellow_ligh
51、t:out std_logic );end traffic_light;architecture abc of traffic_light is type t_state is (red,green,yellow); signal present_state,next_state:t_state;begin process(present_state,sensor) b
52、egin case present_state is when green=> next_state<=yellow; red_light<='0' green_light<='1' &
53、#160; yellow_light<='0' when red=> red_light<='1' green_light<='0' yellow_light<='0' &
54、#160; if(sensor='1')then next_state<=green; else next_state<=red;
55、; end if; when yellow=> red_light<='0' green_light<='0' yellow_light<='1'
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大隐静脉瘤的健康宣教
- 二期梅毒湿疣护理措施
- 云南省玉溪市通海三中2025年物理高二第二学期期末联考模拟试题含解析
- 习惯性牙磨损个案护理
- 文化科技融合发展新业态的发展趋势
- 胸腔感染的护理查房
- 足部烧伤的护理课件
- 皮肤弹性改善-洞察及研究
- 髁突恶性肿瘤护理措施
- 2025年苏州市苏州实验中学高一物理第二学期期末达标检测模拟试题含解析
- 检验科管理手册
- 行车安全风险点告知牌
- 2019-2020鞍山八年第二学期语文期末考试带答案
- 心脏粘液瘤超声诊断
- 国家开放大学电大2022年春季期末考试《商务英语阅读》试题试卷代号4050
- 2023年音乐考试真题
- NB/T 10751-2021矿用往复式气动注浆泵
- 装卸搬运课件
- GB/T 18391.2-2009信息技术元数据注册系统(MDR)第2部分:分类
- GB/T 16924-2008钢件的淬火与回火
- 基础护理学:肌内注射
评论
0/150
提交评论