【发布时间】:2015-07-21 18:23:16
【问题描述】:
我正在尝试通过 P. Ashenden 的书:Designer's Guide to VHDL 来学习 VHDL。第 1 章的练习 10 要求您用 VHDL 编写 2 对 1(我假设为 1 位宽)MUX 并对其进行仿真。我提前道歉,因为我是一个完整的菜鸟。这是我的第一个 VHDL 代码。
我的 MUX 在综合中没有产生任何错误或警告。我的测试台也不会产生错误或警告。但是,除了信号名称之外,模拟完全空白。
我尝试在网上查看大量其他 MUX 示例(以及书中的基准测试示例),当我尝试合成它们时,所有这些示例都出现错误,因此我没有足够的信心使用它们作为指南,并没有从中得到太多。我不确定我在这里做错了什么。我会附上模拟的图像,但我没有足够的代表点:(
另外,我意识到一个好的 MUX 还应该有没有接收到选择输入/高阻抗值等情况的情况。在这种情况下,我只是想让玩具模型工作。
MUX 代码是:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity MUXtop is
Port (a, b, sel: in bit;
z: out bit);
end MUXtop;
architecture behav of MUXtop is
begin
choose: process is
begin
if sel = '0' then
z <= b;
else
z <= a;
end if;
end process choose;
end architecture behav;
测试台代码为:
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY MUXtest IS
END MUXtest;
ARCHITECTURE behavior OF MUXtest IS
-- Component Declaration for the Unit Under Test (UUT)
COMPONENT MUXtop
PORT(
a : IN bit;
b : IN bit;
sel : IN bit;
z : OUT bit
);
END COMPONENT MUXtop;
--Inputs
signal a : bit := '0';
signal b : bit := '0';
signal sel : bit := '0';
--Outputs
signal z : bit;
BEGIN
-- Instantiate the Unit Under Test (UUT)
uut: MUXtop PORT MAP (
a => a,
b => b,
sel => sel,
z => z
);
-- Stimulus process
stimulus: process
begin
wait for 10 ns;
a <= '1';
wait for 10 ns;
sel <= '1';
wait for 10 ns;
b <= '1';
wait;
end process stimulus;
END architecture behavior;
【问题讨论】:
标签: vhdl