简易计算机系统综合设计--函数发生器

  函数发生器的主要的是对两个操作数进行逻辑运算,比如加、减、与,或者对操作数进行取非运算。还有一种情况就是不需要对操作数进行操作,即直传,比如移位操作的时候(因为移位操作在后续单独的一个部件进行)。该部分为一个组合逻辑电路,不需要时钟的控制,只根据输入的数据以及运算的类型输出运算结果。

(1)VHDL代码:

LIBRARY ieee;  
USE ieee.std_logic_1164.ALL; 
use ieee.std_logic_unsigned.all;   
entity ALUYSQ is      
Port ( M : in  STD_LOGIC;
       A : in  STD_LOGIC_VECTOR (7 downto 0);            
       B : in  STD_LOGIC_VECTOR (7 downto 0); 
       S : in  STD_LOGIC_VECTOR (3 downto 0);             		       
       F : out  STD_LOGIC_VECTOR (7 downto 0);            
       C,Zz : out  STD_LOGIC); 
end ALUYSQ; 
architecture ST of ALUYSQ is

begin
   process(S,A,B,M)
   variable midc:std_logic:='0';
   variable midz:std_logic:='0';
   variable res:std_logic_vector(8 downto 0);
   begin
   if(S="1001"and M='1')then
        res:=('0'&A)+('0'&B);
        midc:=res(8);
        F<=res(7 downto 0);
        if(res(7 downto 0)="00000000")then midz:='1';
        else midz:='0';
        end if;
   elsif(S="0110"and M='1')then
        res:=('0'&A)-('0'&B);
        midc:=res(8);
        F<=res(7 downto 0);
        if(res(7 downto 0)="00000000")then midz:='1';
        else midz:='0';
        end if;
   elsif(S="1110"and M='1')then
        F<=(A and B);
   elsif(S="0101"and M='1')then
        F<=(not B);
   elsif(S="1010"and M='0')Then
        F<=B;
   elsif(S="1111"and M='0')Then
        F<=A;
   else F<="ZZZZZZZZ";
   end if;
   C<=midc;
   Zz<=midz;
   end process;
end ST;
        

(2)

引脚说明:


输入输出端口分别为:

M:ALU函数反生器的控制端,M为高电平时进行逻辑运算,M为低电平时进行数据的直传;

A,B:两个运算数据的输入端;

S  :区分ALU的操作类型的输入;

F  :ALU的结果输出;

C  :ALU的进位输出,当存在进位时C=‘1’,否则C=‘0’;

Zz :ALU的结果判断,当ADD或者SUB的结果为0时,Zz=‘1’,否则Zz=‘0’。


(3)波形仿真:


最开始C和Zz的输出均为X,这是正常现象,因为还没有进行ADD和SUB运算,当进行了运算之后,由波形图可知C和Zz的输出正确。在S和M的控制下,F的输出为A,B两个数据输入输入的数据进行函数运算后的结果,符合设计要求。


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值