微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > VHDL简单功能实现

VHDL简单功能实现

时间:10-02 整理:3721RD 点击:
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;
怎么实现此功能呢?先谢谢大家了。

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;

已经框架都搭建了,看下语法就行了.
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;

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top