【发布时间】:2019-09-05 11:11:35
【问题描述】:
所以我是 FPGA 世界的新手,我是 VHDL 语言的新手。我试图点亮我的七段显示器,但我总是遇到错误。下面的代码仅适用于在开关打开时在七段显示第一,当您打开开关时,LED 会打开。
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity binarycnt is
Port ( clk : in STD_LOGIC;
switches : in STD_LOGIC_VECTOR(7 downto 0);
LEDs : out STD_LOGIC_VECTOR(7 downto 0);
segments : out STD_LOGIC_VECTOR(7 downto 0);
anodes : out STD_LOGIC_VECTOR(3 downto 0));
end binarycnt;
architecture Behavioral of binarycnt is
begin
LEDs <= switches;
process (clk, switches)
begin
if(switches(0) = '1') then
segments(1) <= '0';
segments(2) <= '0';
anodes(3) <= '0';
elsif rising_edge(clk) then
segments(0) <= '1';
segments(1) <= '1';
segments(2) <= '1';
segments(3) <= '1';
segments(4) <= '1';
segments(5) <= '1';
segments(6) <= '1';
segments(7) <= '1';
anodes(0) <= '1';
anodes(1) <= '1';
anodes(2) <= '1';
anodes(3) <= '0';
end if;
end process;
end Behavioral;
我尝试过这样做:
segments <= switches
用七段开关点亮任何灯条,但我不断收到此错误:
信号段 无法合成,同步描述错误。 您用于描述同步元素的描述样式 当前软件不支持(寄存器、内存等) 释放。
我正在寻找一种用开关点亮七段的方法,哦,这是我第一次使用时钟,所以如果我的实现有误,我深表歉意。任何帮助,将不胜感激。谢谢。
【问题讨论】:
-
你能给我们提供不起作用的代码吗?
-
产生错误的代码。
-
当我尝试用
segments <= switches替换LEDs <= switches时,它给了我错误。基本上我想通过打开一个开关来点亮七段显示器的任何一段。 -
@Fuzzyy segments 在您的顺序过程中也会受到影响。您不能在 2 个并发进程中影响同一个信号。
-
那我该怎么做呢?我只是想用开关点亮七段,就像一个开关在七段显示器上只点亮一个段。
标签: vhdl xilinx xilinx-ise seven-segment-display