版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VHDL语言实例例1:设计一七段显示译码器,用它来驱动七段发光管LED显示十六进制数字0到9和字母A到F。LED显示数码管为共阳极。LIBRARY ieee; USE ieee.std_logic_1164.all;
2、0; ENTITY HEX2LED IS PORT(
3、60; HEX :IN std_logic_vector(3 DOWNTO 0); LED : OUT std_logic_vector(6 TO 0) &
4、#160; ); END HEX2LED; &
5、#160; 图例1 七段显示译码器实体 ARCHITECTURE HEX2LED_arc OF HEX2LED IS BEGIN
6、160; - HEX-TO-SEVEN-SEGMENT DECODER - SEGMENT ENCODING
7、 - 0
8、160; - -
9、0; - 5 | |1 - - <-6 &
10、#160; - 4 | |2
11、0;- - - 3
12、160; WITH HEX SELECT LED<= "1111001" when "0001",
13、; "0100100" when "0010", "0110000" when "0011",
14、60; "0011001" when "0100", "0010010" when "0101",
15、 "0000010" when "0110", "1111000" when "0111", &
16、#160; "0000000" when "1000", "0010000" when "1001
17、", "0001000" when "1010", "0000011&q
18、uot; when "1011", "1000110" when "1100",
19、160; "0100001" when "1101", "0000110" when "1110",
20、 "0001110" when "1111", "1000000" when others; 2 / 15END HEX2LED_arc;
21、60; 例2:设计一个八选一数据选择器1)s是通道选择信号, d0,d1,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
22、 :OUT BIT);END sels;图例2(a) 八选一数据选择器实体ARCHITECTURE sels_arc OF sels ISBEGIN WITH s SELECT out1 <= d0 WHEN 0,
23、60; d1 WHEN 1, d2 WHEN 2, d3 WHEN 3, d4 WHEN 4,
24、 d5 WHEN 5, d6 WHEN 6, d7 WHEN 7;END sels_arc;2)A,B,C是通道选择信号, I0,I1,I2,I3,I4,I5,I6,I7数据输入
25、 Q是数据输出LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY mux8 ISPORT(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 ;BEGI
26、N Q <= I0 AFTER 10 ns WHEN sel= 0 ELSE I1 AFTER 10 ns WHEN sel= 1 ELSE I2 AFTER 10 ns WHEN sel= 2 ELSE
27、60; I3 AFTER 10 ns WHEN sel= 3 ELSE I4 AFTER 10 ns WHEN sel= 4 ELSE I5 AFTER 10 ns WHEN se
28、l= 5 ELSE 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 &
30、#160; 3 WHEN A= 1 AND B= 1 AND C= 0 ELSE 4 WHEN A= 0 AND B= 0 AND C= 1 ELSE 5 WHEN A
31、= 1 AND B= 0 AND C= 1 ELSE 6 WHEN A= 0 AND B= 0 AND C= 1 ELSE 7;END mux8_arc; &
32、#160; 例3:设计一D触发器d是输入端,clk是时钟信号控制端,q是触发器的输出端。其程序如下:LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY reg IS PORT(d,clk:IN BIT; q:OUT BIT);END reg;图例3 D触发器实体ARCHITECTURE reg_arc OF reg IS BEGIN PROCESS &
33、#160; BEGIN WAIT UNTIL clk= 1; q <= d; END PROCESS; PROCESSEND reg_arc; 例4:设计一基本RS触发器r、s为触发器的输入信号,q、not_q为触发器的输出信号。LIBRARY ieee; U
34、SE ieee.std_logic_1164.all;ENTITY RSFF IS PORT(r,s:IN BIT; q,not_q:OUT BIT);END RSFF;图例4 基本RS触发器实体ARCHITECTURE RSFF_arc OF RSFF IS BEGIN PROCESS(r,s) VARIABLE last_state:BIT:= 0;
35、160; BEGIN ASSERT NOT(r= 1 AND s= 1) REPORT “Both r AND s equal to 1” SEVERITY error; IF r= 0 AND s= 0 THEN &
36、#160; last_state:= last_state ; ELSIF r= 1 AND s= 0 THEN last_state:= 0; ELSE - r= 0 AND s= 1
37、60; last_state:= 1; END IF; q <= last_state AFTER 10 ns; not_q <= NOT(last_state) AFTER 20 ns; END PROCESS;END RSFF_arc;当r和s同时等于1时,触发器处于不定状态。程序设计中设置了断言语句是为了判断r和s都等于1时,输出终端将显示
38、报告“Both r AND s equal to 1”,同时终止模拟过程,并显示错误的严重error,以便设计者调试和修正模块程序。从IF到END IF是条件语句,用到了可选项ELSIF和ELSE来判别RS触发器的其它三种情况。IF语句后面是一赋值语句,将IF语句中赋值的中间变量lsat_state经10 ns后送到q端。图8-12是RS触发器的逻辑电路图。 例5:设计一个带有异步清零、同步置数、使能控制的四位二进制计数器LIBRARY ieee;USE ieee.std_logic_1164.all;ENTIT
39、Y COUNT2 IS PORT(A: IN INTEGER RANGE 0 TO 3; CLK: IN STD_LOGIC; CLR: IN STD_LOGIC; EN: IN STD_LOGIC; LD: IN STD_LOGIC;
40、160; Cout: OUT INTEGER RANGE 0 TO 3 );END COUNT2;图例5 四位二进制计数器实体ARCHITECTURE COUNT2_arc OF COUNT2 IS SIGNAL SIG: INTEGER RANGE 0 TO 3;BEGIN PROCESS (CLK, CLR) BEGIN IF CLR =
41、'0' THEN SIG <= 0; ELSIF (CLK'EVENT AND CLK = '1') THEN IF LD = '1' THEN SIG <= A; ELSE
42、; IF EN = '1' THEN SIG <= SIG + 1; ELSE SIG <= SIG; END IF
43、; END IF; END IF; END PROCESS; Cout <= SIG;END COUNT2_arc 例6:设计一个存储容量为28×8的RAM。CS为RAM的片选信号,WR为RAM的写信号,RD为RAM读信号,ADR:八位地址信号,Din:八位数据输入线,Dout为八位数据输出线。library IEEE;use IEEE.std_logic_1164.all;use ieee.std_logic_u
44、nsigned.all;entity RAM is port (WR: in STD_LOGIC; RD: in STD_LOGIC; ADR: in STD_LOGIC_VECTOR (7 down
45、to 0); CS: in STD_LOGIC; Din: in STD_LOGIC_VECTOR (7 downto 0);
46、 Dout: out STD_LOGIC_VECTOR (7 downto 0) );end RAM;图例6 RAM实体architecture RAM_arch of RAM is subtype word is std_logic_vector(7 downto 0); type memory
47、 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 if(wr'event an
48、d wr='1')then if(cs='1'and wr='1')then sram(adr_in)<=din after 2 ns; end if
49、; end if; end process; process(rd,cs)begin if(rd='0'and cs='1')then
50、dout<=sram(adr_in)after 3 ns; else dout<="ZZZZZZZZ"after 4 ns; end if; end process;end RAM_arch;
51、160; 例7:利用枚举类型设计一个状态机,用灯的颜色代表相应的状态名。library IEEE;use IEEE.std_logic_1164.all;ENTITY traffic_light IS PORT ( sensor,clock :in std_logic; red_light,green_light,yellow_light:out std_lo
52、gic );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) begin
53、160; case present_state is when green=> next_state<=yellow; red_light<='0' green_light<='1' &
54、#160; yellow_light<='0' when red=> red_light<='1' green_light<='0' yellow_light<='0' &
55、#160; if(sensor='1')then next_state<=green; else next_state<=red; end if;
56、60; 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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB42-T 2542-2026 市政管涵基坑工程技术规程
- 2026 年监理工程师《监理概论》时间、数字、计算公式考点归纳
- 2026年高二地理下学期期中考试卷及答案(三)
- 2026年初一地理第二学期期末考试卷及答案(共九套)
- 2026年护理不良事件报告与管理制度指南课件
- 棉印染行业掘金指南-市场趋势竞争策略与未来机遇
- 商务礼仪在家居销售中的应用-提升销售代表形象与交流技巧
- 汽车共享经济的发展趋势-市场分析师
- 高三学生的学业压力与应对策略-教育心理学家
- 初中生物教学中课外活动的探究
- 全册背记资料-2024-2025学年七年级地理上学期湘教版
- 北京版八年级生物(上册)知识点总结
- 消除艾梅乙工作专班制度汇编手册修订版艾滋病梅毒乙肝
- 乳腺腔镜手术科普
- 面密度仪设备原理培训课件
- OPC通讯DCOM配置手册
- 风电场项目升压站施工测量施工方案与技术措施
- 北师大新版八年级下册数学前三章复习培优题
- 主港潮汐的查取与计算
- 国开农业生态学形考任务阶段作业1-4答案
- 某中学图书馆电气设计毕业设计论文
评论
0/150
提交评论