首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

菜鸟VHDL代码又遇到一个问题

菜鸟VHDL代码又遇到一个问题

用VHDL代码编写一个选择器,具体用途就不说了,不过波形仿真的时候出现状况

代码如下

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity muxrs is
  port(
    sel:in std_logic_vector(1 downto 0);
    rd,wr:in std_logic;
    ldrut std_logic_vector(3 downto 0);
    Rbusut std_logic_vector(3 downto 0)
);
end muxrs;

architecture rtl of muxrs is
  begin
   process(sel)
    begin
     if(rd='1'and wr='0') then
      case sel is
        when "00"=>ldr<="0000";Rbus<="1110";
        when "01"=>ldr<="0000";Rbus<="1101";
        when "10"=>ldr<="0000";Rbus<="1011";
        when "11"=>ldr<="0000";Rbus<="0111";
        when others=>Rbus<="1111";ldr<="0000";
      end case;
     elsif (rd='0' and wr='1') then
        case sel is
        when "00"=>ldr<="0001";Rbus<="1111";
        when "01"=>ldr<="0010";Rbus<="1111";
        when "10"=>ldr<="0100";Rbus<="1111";
        when "11"=>ldr<="1000";Rbus<="1111";
        when others=>ldr<="0000";Rbus<="1111";
      end case;
    else ldr<="0000";Rbus<="1111";
    end if;
 end process;
end rtl;

波形仿真如下

是不是WHEN OTHERS不包括条件为高阻态的情况?但如果是这样那么RBUS输出也应该受影响啊。为什么只有

LDR出现这样奇怪的现象?

[em06]

回复:(zhuaitongzai)菜鸟VHDL代码又遇到一个问题

你的输入 sel 信号弄的很奇怪呀
求VHDL语言编的数字钟程序?

要求:

1具有时、分、秒计数显示功能,以24小时循环计时。

2具有清零,调节小时、分钟的功能。

3实验现象:K1代表调节分钟,K2代表调节小时;数码管SM3~SM8显示具体时间;K17为清零信号RESET(低电平有效);发光二极管LED1~LED3分别代表程序中的LAMP0~LAMP2信号;另外将计数频率(CLK)设置为1HzTJ1处,数码管显示的数值每隔一秒变化一次),报时频率(SPCLK)设置为1024HzTJ5处)。当程序下载完毕后数码管从000000秒开始计时,通过按键K1可以调节时钟的分钟显示,通过按键K2可以调节时钟的小时显示(调节时钟时应将按键所对应的拨位开关KD1KD2拨向下;拨位开关KD1KD2拨向上时,数字钟正常计时)。当时钟走到整点时,喇叭开始鸣叫(1分钟,通过电位器SW1可以调节音量的大小),发光二极管LED1~LED3循环闪烁。

4)对自己所设计的VHDL程序进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形。

5)引脚锁定以及硬件下载测试  
返回列表