最近在做EDA设计,犯了一个错误,不知何原因,大家看后避免之。。。

本文记录了一次在EDA设计中遇到的LED七段共阳驱动程序的问题,波形显示不正确。代码中使用了buffer导致seg信号滞后于digit信号一个时钟周期。通过将buffer改为variable并重新组织代码,成功解决了问题。
摘要由CSDN通过智能技术生成

最近在做EDA设计,下面是我写的led七段显示(共阳)驱动,在仿真的时候发现波形不对。

digit比

先贴一下代码。

----------ledDISP.vhd----------------------------------------------

LIBRARY ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_signed.all;
use ieee.std_logic_arith.all;


ENTITY ledDISP IS
 PORT(
----------------------------------------------------------------
 reset    : IN std_logic:='0';
----  display frequency ----------------
 scanning_freq_in : IN std_logic;                                        --扫描的时钟
 digit    : OUT  bit_vector(5 downto 0):="000000";             --输出digit,表示选择显示位
 digit_buf   : buffer  bit_vector(5 downto 0):="000000";    --缓存
 -------------------------------
 --digit[5]hour  high PIN_137
 --digit[4]hour  low  PIN_136
 --digit[3]min high PIN_161
 --digit[2]min low  PIN_162
 --digit[1]sec high PIN_159
 --digit[0]sec low  PIN_160
 -------------------------------
----------------------------------------------------------------
 displaynum   : buffer std_logic_vector(3 downto 0);
 seg     : OUT  std_logic_vector(7 downto 0);
----------------------------------------------------------------
---- The number displayed on the LED ---- 
 dighourh: IN std_logic_vector(3 downto 0);
 dighourl: IN std_logic_vector(3 downto 0);
 digminh : IN std_logic_vector(3 downto 0);
 digminl : IN std_logic_vector(3 downto 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值