VHDL简单功能实现

2019-07-16 00:51发布

library ieee;
use ieee. std_logic_1164.all;
use ieee. std_logic_unsigned.all;
use ieee. std_logic_arith.all;

Entity select1 is
Port(
      S: in std_logic;
  sum_D: in integer range 0 to 9999;
  sum_N: in integer range 0 to 9999;
    sum: out integer range 0 to 9999
);
End;

Architecture one of select1 is
Begin
  Process
    要实现的功能:   当 S 为高电平时,  sum_N 的值赋给sum;
                   当 S 无任何状态时,sum_D 的值赋给sum;
  end Process;
End;

怎么实现此功能呢?先谢谢大家了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
123fashaoyou
1楼-- · 2019-07-16 06:18
Architecture one of select1 is
Begin
  Process(S,sum_N,sum_D)BEGIN
    --要实现的功能:   当 S 为高电平时,  sum_N 的值赋给sum;
     IF S = '1' THEN  sum <= sum_N;
    --- 当 S 无任何状态时,sum_D 的值赋给sum;
                   ELSE  sum <= sum_D;
  END PROCESS;
End;
youzizhile
2楼-- · 2019-07-16 08:40
已经框架都搭建了,看下语法就行了.
Architecture one of select1 is
Begin
   Process (S) begin
     --要实现的功能:   当 S 为高电平时,  sum_N 的值赋给sum;
     if( s='1' )then sum=sum_N;
     else
     sum=sum_D;--当 S 无任何状态时,sum_D 的值赋给sum;

         end Process;
End;
dingnengshenghu
3楼-- · 2019-07-16 08:49
首先,楼主的描述有问题:“当S无任何状态时”。应该说:“当S为其他状态时”,或 “当S为非1状态时”。
虽然2,3楼写的代码无问题,但是,2楼写的更严谨些。
如果不用进程来描述,也可以这样写:
sum=sun_N when s=‘1’ else   sum_D;

一周热门 更多>