




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一:五人表决器方案1-编程:library ieee;use ieee.std_logic_1164.all;entity vote5 isport(a,b,c,d,e:in std_logic; f:out std_logic);end;architecture vo of vote5 isbeginf=(a and b and c) or (a and b and d) or (a and b and e) or (a and c and d) or (a and c and e) or (a and d and e) or (b and c and d) or (b and c and e) or (b and d and e) or (c and d and e); end;方案2-作图:实验二一位全加器一、布尔方程实现全加器:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY fulladder ISPORT (a,b,ci:IN STD_LOGIC; S, co:OUT STD_LOGIC);END fulladder; -以下是一位全加器结构体数据流描述ARCHITECTURE Dataflow OF fulladder ISBEGINS = a XOR b XOR ci;co = (a AND b) OR (b AND ci) OR (a AND ci);END Dataflow;二、with select when实现全加器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY fulladder ISPORT (a, b, ci: IN STD_LOGIC; s, co: OUT STD_LOGIC);END fulladder;ARCHITECTURE behavioral OF fulladder ISSIGNAL inputsingal:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL outputsingal:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINinputsingal=a&b&ci;WITH inputsingal SELECToutputsingal = 00 WHEN 000,10 WHEN 001,10 WHEN 010,01 WHEN 011,10 WHEN 100,01 WHEN 101,01 WHEN 110,11 WHEN 111,00 WHEN OTHERS;s=outputsingal(1);co=outputsingal(0); END behavioral;三、when else实现全加器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY fulladder ISPORT (a, b, ci: IN STD_LOGIC; s, co: OUT STD_LOGIC);END fulladder;ARCHITECTURE behavioral OF fulladder ISBEGIN s = 1 WHEN (a= 0 AND b= 1 AND ci= 0) ELSE 1 WHEN (a= 1 AND b= 0 AND ci= 0) ELSE 1 WHEN (a= 0 AND b= 0 AND ci= 1) ELSE 1 WHEN (a= 1 AND b= 1 AND ci= 1) ELSE 0; co = 1 WHEN (a= 1 AND b= 1 AND ci= 0) ELSE 1 WHEN (a= 0 AND b= 1 AND ci= 1) ELSE 1 WHEN (a= 1 AND b= 0 AND ci= 1) ELSE 1 WHEN (a= 1 AND b= 1 AND ci= 1) ELSE 0;END behavioral;四、if then else实现全加器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY fulladder ISPORT (a, b, ci: IN STD_LOGIC; s, co: OUT STD_LOGIC);END fulladder;ARCHITECTURE behavioral OF fulladder ISBEGINp1:PROCESS(a, b, ci)BEGINIF(a= 0 AND b= 0 AND ci= 0) THEN s = 0;co = 0; ELSIF(a= 0 AND b= 0 AND ci= 1) THEN s = 1;co = 0; ELSIF(a= 0 AND b= 1 AND ci= 0) THEN s = 1;co = 0;ELSIF(a= 0 AND b= 1 AND ci= 1) THEN s = 0;co = 1; ELSIF(a= 1 AND b= 0 AND ci= 0) THEN s = 1;co = 0;ELSIF(a= 1 AND b= 0 AND ci= 1) THEN s = 0;co = 1;ELSIF(a= 1 AND b= 1 AND ci= 0) THEN s = 0;co = 1;ELSIF(a= 1 AND b= 1 AND ci= 1) THEN s = 1;co = 1; Elses = 0;co = 0;END IF;END PROCESS p1; END behavioral;五、case when实现全加器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY fulladder ISPORT (a, b, ci: IN STD_LOGIC; s, co: OUT STD_LOGIC);END fulladder;ARCHITECTURE behavioral OF fulladder ISSIGNAL inps:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL outs:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINinps outs outs outs outs outs outs outs outs outs=00;END CASE;s=outs(0);co=outs(1);END PROCESS p1;END behavioral;实验三四位全加器第一种方法:顶层文件为原理图第二种方法library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity add4 isport(a3,a2,a1,a0,b3,b2,b1,b0:in std_logic; f:out std_logic_vector(4 downto 0);end;architecture add of add4 isbeginprocess(a3,a2,a1,a0,b3,b2,b1,b0)variable c,d:std_logic_vector(4 downto 0):=00000;beginc:=(0,a3,a2,a1,a0);d:=(0,b3,b2,b1,b0);f=c+d;end process;end;实验四 16进制数码显示library ieee;use ieee.std_logic_1164.all;entity tran isport(a:in std_logic_vector(3 downto 0); s:out std_logic_vector(2 downto 0); f:out std_logic_vector(6 downto 0);end;architecture tt of tran isbeginprocess(a)begins f f f f f f f f f f f f f f f f = 1110001; -f end case;end process;end;实验六 交通灯LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY traffic isGENERIC( green1:integer:=25;-定义主道绿灯亮25S yellow1 :integer:=5 ;-定义主道黄灯亮5S green2:integer:=25;-定义支道绿灯亮15S yellow2 :integer:=5);-定义支道黄灯亮5SPORT( CLK,RST: IN STD_LOGIC; lgt1_r,lgt1_y,lgt1_g,lgt2_r,lgt2_y,lgt2_g: out STD_LOGIC);End traffic;ARCHITECTURE rtl of traffic isType states is (st0,st1,st2,st3);-定义控制器各种状态Signal state:states:=st0; -初始化状态Signal cnt:integer range 0 to 30:=1;-定义计数器Signal cnt_enb:std_logic:=0; -初始化计数器使能信号beginProcess(clk,rst)Begin if (rst=1) then state=st0; cnt=1;Elsif (clkevent and clk=1) then if (cnt_enb=1) then cnt=cnt+1;-计数器计数 else cnt if (cnt=green1 ) then state=st1;Elsestate if (cnt=yellow1 ) then state=st2;Elsestate if (cnt=green2 ) then state=st3;Elsestate if (cnt=yellow2 ) then state=st0;Elsestate lgt1_r=0; lgt1_y=0; lgt1_g=1; lgt2_r=1; lgt2_y=0; lgt2_g=0; Cnt_enb=1; if (cnt=green1) then cnt_enb lgt1_r=0; lgt1_y=1; lgt1_g=0; lgt2_r=1; lgt2_y=0; lgt2_g=0; Cnt_enb=1; if (cnt=yellow1) then cnt_enb lgt1_r=1; lgt1_y=0; lgt1_g=0; lgt2_r=0; lgt2_y=0; lgt2_g=1; Cnt_enb=1; if (cnt=green2) then cnt_enb lgt1_r=1; lgt1_y=0; lgt1_g=0; lgt2_r=0; lgt2_y=1; lgt2_g=0; Cnt_enb=1; if (cnt=yellow2) then cnt_enb=0; end if;End case;End process;end rtl;实验六 60进制计数器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity con60 isport(clk3,clk5,rst,en:in std_logic; seg_sel:out std_logic_vector(2 downto 0); seg_da:out std_logic_vector(7 downto 0); co:out std_logic);end;architecture cc of con60 is COMPONENT CNT10 PORT(CLK,rst,cin:IN STD_LOGIC; CNT_VAL:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT :OUT STD_LOGIC); END COMPONENT; COMPONENT CNT6 PORT(CLK,rst,cin :IN STD_LOGIC; CNT_VAL:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT:OUT STD_LOGIC); END COMPONENT;SIGNAL SEG_BUF1,SEG_BUF2:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL SEG_CNT :STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL SEG_TEMP:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL COUT:STD_LOGIC_VECTOR(5 DOWNTO 0); SIGNAL CLK:STD_LOGIC; BEGIN PROCESS (CLK3) BEGIN IF CLK3EVENT AND CLK3=1 THEN CLK=NOT CLK ; END IF; END PROCESS; PROCESS (CLK) BEGIN IF CLKEVENT AND CLK=1 THEN IF seg_cnt=001 THEN SEG_CNT=000; ELSE SEG_CNT=SEG_CNT+1; END IF; END IF; END PROCESS; SEG_SEL SEG_TEMP SEG_TEMP NULL; END CASE; END PROCESS; PROCESS (SEG_TEMP) BEGIN CASE SEG_TEMP IS WHEN 0000 = SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA=x6F; END CASE; END PROCESS; U1 : CNT10 PORT MAP (CLK5,RST,1,SEG_BUF1,COUT(0); U2 : CNT6 PORT MAP (CLK5,RST,COUT(0),SEG_BUF2,co); END ; LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;ENTITY CNT10 IS PORT(CLK :IN STD_LOGIC; RST :IN STD_LOGIC; CIN :IN STD_LOGIC; CNT_VAL:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT:OUT STD_LOGIC );END CNT10;ARCHITECTURE BEHAVE OF CNT10 ISSIGNAL CNT_T:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(CLK) BEGIN IF RST=1 THEN CNT_T=0000; ELSIF CLKEVENT AND CLK=1 THEN IF CIN=1 THEN IF CNT_T/= 9 THEN CNT_T=CNT_T+1; ELSE CNT_T=00
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025昆明市第二人民医院融城老年病医院(5人)考前自测高频考点模拟试题及答案详解一套
- 2025贵州黔晨综合发展有限公司招聘录用人员模拟试卷完整参考答案详解
- 2025江苏连云港灌江农业发展集团有限公司招聘拟聘(第二批)考前自测高频考点模拟试题及答案详解(夺冠)
- 2025技术岗位劳动合同范本
- 2025贵州铜仁市江口县人民医院招聘青年就业见习岗位人员2人模拟试卷附答案详解(黄金题型)
- 2025大连市产品购销合同
- 2025湖北交投实业发展有限公司服务区管理员遴选人员模拟试卷及答案详解(新)
- 编导理论考试题库及答案
- 福建电力考试题库及答案
- 员工培训资料与认证管理工具
- 胸痛的鉴别诊断和诊断流程课件
- 混料错料预防措施培训课件
- 白鹿原名著导读读书分享
- 医疗设备采购 投标技术方案 (技术方案)
- 国开《建设监理》形成性作业1-4答案
- 合同法教案(第十版)教案全套
- 定密理论与实务3定密的依据课件
- 工伤预防知识培训PPT
- 同济大学信纸
- 室早的危险分层及治疗选择
- 交通运输工程施工安全监管台帐(参考)用表样表分享
评论
0/150
提交评论