偶然间在网上看到网友请教关于十进制进位的问题,具体问题见:
其中讲述了,里面陈述了SIGNAL定义的中间变量Q在累加到8时就开始进位,而不是累加到9时进位,为此我设计了两个相似的语言程序对此进行理解:
程序一:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY cnt10a IS
PORT(
CLK:IN BIT;
OE:OUT BIT;
Y:OUT INTEGER RANGE 0 TO 10);
END CNT10a;
architecture RT of cnt10a is
signal Q:INTEGER RANGE 0 TO 10;
BEGIN
PROCESS(CLK)
BEGIN
IF(CLK'EVENT AND CLK='1')THEN
IF Q=9 THEN
OE<='1';
Q<=0;
ELSE
Q<=Q+1;
OE<='0';
END IF;
END IF;
Y<=Q;
END PROCESS;
END RT;
以下是仿真后的结果:
这是一个十进制计数器的VHDL