版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024某科技公司与某广告公司之间关于应用程序推广服务的合作协议
- 2024甲乙双方关于电子产品生产与销售的合作合同
- 二零二五年度标准化厂房租赁与设备维修服务合同2篇
- 二零二五年度建筑工程施工班组中途退场合同终止及责任追溯协议3篇
- 二零二五年度钢结构工程制造与安装合同范本3篇
- 二零二五年度集装箱房屋定制与售后维护服务合同3篇
- 2024版商标使用许可合同范文
- 二零二五年度窗帘行业慈善捐赠合作协议3篇
- 二零二五年度船舶货物保险合同制定指南3篇
- 二零二五年度科技成果转化合同范本3篇
- 《国有企业管理人员处分条例》重点解读
- cn.7a一种酱香型大曲酒固态发酵的生态控制方法
- TLFSA 003-2020 危害分析与关键控制点(HACCP)体系调味面制品生产企业要求
- LY/T 2244.3-2014自然保护区保护成效评估技术导则第3部分:景观保护
- GB/T 8491-2009高硅耐蚀铸铁件
- GB/T 26480-2011阀门的检验和试验
- 供水安全与抢修
- DB31 595-2021 冷库单位产品能源消耗指标
- 第三章果蔬采后生理课件
- 【英语手写体】26英文字母手写体描红书写字帖
- 实习护生压疮相关知识掌握情况及预防态度的调查问卷
评论
0/150
提交评论