eda技术实用教程课后答案---潘松-黄继业

上传人:小** 文档编号:57316110 上传时间:2018-10-20 格式:DOC 页数:19 大小:273.84KB
返回 下载 相关 举报
eda技术实用教程课后答案---潘松-黄继业_第1页
第1页 / 共19页
eda技术实用教程课后答案---潘松-黄继业_第2页
第2页 / 共19页
eda技术实用教程课后答案---潘松-黄继业_第3页
第3页 / 共19页
eda技术实用教程课后答案---潘松-黄继业_第4页
第4页 / 共19页
eda技术实用教程课后答案---潘松-黄继业_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《eda技术实用教程课后答案---潘松-黄继业》由会员分享,可在线阅读,更多相关《eda技术实用教程课后答案---潘松-黄继业(19页珍藏版)》请在金锄头文库上搜索。

1、3-3 给出一个 4 选 1 多路选择器的 VHDL 描述。选通控制端有四个输入:S0、S1、S2、S3。当且仅当 S0=0 时:Y=A;S1=0 时:Y=B;S2=0 时:Y=C;S3=0 时:Y=D。 -解:4 选 1 多路选择器 VHDL 程序设计。LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux41a ISPORT( A,B,C,D : IN STD_LOGIC;S0,S1,S2,S3 : IN STD_LOGIC;Y : OUT STD_LOGIC);END ENTITY mux41a;ARCHITECTURE one OF m

2、ux41a ISSIGNAL S0_3 : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINS0_3xin,y=yin, diff=a, s_out=b);u2: h_suber PORT MAP(x=a, y=sub_in, diff=diff_out,s_out=c);sub_out x0,yin=y0,diff_out=diff0,sub_in=sin,sub_out=a0); u1:f_suber PORT MAP(xin=x1,yin=y1,diff_out=diff1,sub_in=a0,sub_out=a1); u2:f_suber PORT MAP(xin=

3、x2,yin=y2,diff_out=diff2,sub_in=a1,sub_out=a2); u3:f_suber PORT MAP(xin=x3,yin=y3,diff_out=diff3,sub_in=a2,sub_out=a3); u4:f_suber PORT MAP(xin=x4,yin=y4,diff_out=diff4,sub_in=a3,sub_out=a4); u5:f_suber PORT MAP(xin=x5,yin=y5,diff_out=diff5,sub_in=a4,sub_out=a5); u6:f_suber PORT MAP(xin=x6,yin=y6,di

4、ff_out=diff6,sub_in=a5,sub_out=a6); u7:f_suber PORT MAP(xin=x7,yin=y7,diff_out=diff7,sub_in=a6,sub_out=sout); END ARCHITECTURE s8;3-8 设计一个求补码的程序,输入数据是一个有符号的 8 位二进制(原码)数。-解:5-9 设计一个求补码的程序,输入数据是一个有符号的 8 位二进制数。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY org_patch ISP

5、ORT( org_data : IN STD_LOGIC_VECTOR(7 DOWNTO 0);-原码输入patch_data : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-补码输出END org_patch;ARCHITECTURE BHV OF org_patch ISBEGINPROCESS(org_data)BEGINIF(org_data(7)=0) THENpatch_data=0,补码=原码。elsepatch_data=4 THEN G_40); -计数器异步复位 ELSIF CLKEVENT AND CLK=1 THEN -检测时钟上升沿IF EN=

6、1 THEN -检测是否允许计数或加载(同步使能)IF LOAD=0 THEN Q:=DATA; -允许加载ELSE IF Q0); -大于等于 9 时,计数值清零END IF;END IF;END IF;END IF; IF Q=9 THEN COUT 0); -计数器异步复位ELSIF LOAD = 1 THEN CQI:=DATA; -LS_LOAD:=0; -计数器异步复位ELSIF CLKEVENT AND CLK=1 THEN -检测时钟上升沿IF ADD_EN=1THEN -检测是否允许计数(同步他能)IF CQI 0); -大于 65535,计数值清零END IF;IF CQI

7、=16#FFFF# THEN COUT0 THEN CQI:=CQI-1; -允许计数,检测是否小于 65535ELSE CQI:=(OTHERS = 1); -大于 65535,计数值清零END IF;IF CQI=0 THEN COUTqqqqqq stx Y Y NULL ;END CASE;END PROCESS;END ARCHITECTURE sxdl;图 3-20 RTL 图(c) -解 1:实现图 3-20(c) RTL 图的 VHDL 程序 mux21a.vhd 底层设计描述。 - 用(WHEN_ELSE)实现 2 选 1 多路选择器程序(mux21a.vhd)。LIBRAR

8、Y IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux21a ISPORT(a,b : IN STD_LOGIC;s : IN STD_LOGIC;y : OUT STD_LOGIC);END ENTITY mux21a;ARCHITECTURE one OF mux21a ISBEGINyCLK,D=D,Q=Q,ENA=EN,PRE=0,CLR=RST);Q15)END g_5_cmp;ARCHITECTURE BHV OF g_5_cmp ISBEGINPROCESS(d_in)BEGINIF(d_in“0101“) THENcmp_out=1; -输

9、入数据大于 5,比较输出 1。elsecmp_out=0; -输入数据小于等于 5,比较输出 0。 END IF;END PROCESS;END BHV;8-6用 VHDL 输入方式设计一个周期性产生二进制序列 01001011001 的序列发生器,用移位寄存器或用同步时序电路实现,并用时序仿真器验证其功能。 同步时序电路LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY S_generator ISPORT(CLK,CLR: IN STD_LOGIC; -工作时钟/复位信号S_out: OUT STD_LOGIC);-序列输出位END S_gene

10、rator;ARCHITECTURE behav OF S_generator ISSIGNAL D: STD_LOGIC_VECTOR(10 DOWNTO 0); -11 位循环移位寄存器BEGINPROCESS(CLK,CLR)BEGINIF CLKEVENT AND CLK=1 THEN -时钟到来时,逐位左移循环输出序列位IF CLR=1 THEN D=“01001011001“; -复位操作,产生 11 位待输出序列ELSED(10 DOWNTO 1)=D(9 DOWNTO 0);D(0)=D(10);S_out=D(10);END IF;END IF;END PROCESS; EN

11、D behav; 移位寄存器library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity add is PORT(clk,rest: IN STD_LOGIC; So: OUT STD_LOGIC); end add; architecture bhv of add is begin process(clk,rest) variable a:std_logic_vector(10 downto 0):=“01001011001“;

12、variable b:std_logic_vector(3 downto 0); begin if rest=1 then so=0; elsif clkevent and clk=1 then b:=b+1; if b=“1100“ then b:=“0000“; end if; so=a(10); a:=TO_STDLOGICVECTOR(to_bitvector(a) rol 1); end if; end process; end bhv;EDA 实验-格雷码变换 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY graycode IS PORT(a:IN STD_LOGIC_VECTOR(3 DOWNTO 0);en:IN STD_LOGIC;g:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END graycode; ARCHITECTURE arc OF graycode IS BEGIN PROCESS(a,en)BEGINIF en=0 THENg=“0000“;ELSE g(3)=a(3);FOR i IN 0 TO 2 LOOPg(i)=a(i+1) XOR a(i);END LOOP;END IF;END PROCESS; END arc;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号