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条回答
grasswolfs
1楼-- · 2020-02-29 20:11
 精彩回答 2  元偷偷看……
GoldSunMonkey
2楼-- · 2020-02-29 20:59
grasswolfs 发表于 2013-7-21 20:36
这是在问问题么?

是的
GoldSunMonkey
3楼-- · 2020-03-01 00:33
但是没有回音
sxtz531
4楼-- · 2020-03-01 02:26
GoldSunMonkey 发表于 2013-7-21 21:22
但是没有回音

这样写可以实现功能,但好像不符合可综合的语法规定吧
GoldSunMonkey
5楼-- · 2020-03-01 06:54
sxtz531 发表于 2013-7-28 10:48
这样写可以实现功能,但好像不符合可综合的语法规定吧

符合啊。
GoldSunMonkey
6楼-- · 2020-03-01 11:16
 精彩回答 2  元偷偷看……

一周热门 更多>