VHDL函数的使用

2020-02-28 18:26发布

附上部分程序,关键点用粗体显示。
process(clk_1k)
   FUNCTION b_to_s7(bcd8421:INTEGER RANGE 0 TO 9) RETURN STD_LOGIC_VECTOR IS
       VARIABLE smg7: STD_LOGIC_VECTOR(7 DOWNTO 0);
       BEGIN
        CASE bcd8421 IS         --计算输出值
       WHEN 0 => smg7:="11111100";     --abcdefgh
       WHEN 1 => smg7:="01100000";
       WHEN 2 => smg7:="11011010";
       WHEN 3 => smg7:="11110010";
       WHEN 4 => smg7:="01100110";
       WHEN 5 => smg7:="10110110";
          WHEN 6 => smg7:="10111110";
       WHEN 7 => smg7:="11100000";
       WHEN 8 => smg7:="11111110";
       WHEN 9 => smg7:="11110110";
       END CASE;
       RETURN smg7;--定义了一个函数,b-to-s7.
      END b_to_s7;
   VARIABLE keys:INTEGER RANGE 0 TO 127 :=0;  --消抖累加器--
begin
if  clk_1k='1' then
data_o<=b_to_s7(cnt);--cnt是定义的一个整型的信号,范围是0-9;请问此处是不是函数的调用?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
sxtz531
1楼-- · 2020-03-01 11:50
GoldSunMonkey 发表于 2013-7-28 21:38
只是function写的符合就行。

了解了,一直以为是不可综合的语法
GoldSunMonkey
2楼-- · 2020-03-01 14:31
sxtz531 发表于 2013-7-28 22:43
了解了,一直以为是不可综合的语法

类似与调用
GoldSunMonkey
3楼-- · 2020-03-01 14:49
sxtz531 发表于 2013-7-28 22:43
了解了,一直以为是不可综合的语法

很多情况下我们都如此使用

一周热门 更多>