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;
怎么实现此功能呢?先谢谢大家了。
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;