创建连接到一个多路复用器 41 和 21 的两个元件
我有一个大问题,因为我不明白如何做作业。 好吧,我必须做这样的事情:
http://tomaszewicz.zpt.tele.pw.edu。 pl/files/u1/zad4.gif
我有创建 b1 的代码,但我不知道如何创建第二个并让它们连接到 b3。
我的代码是:
IEEE 库; 使用 ieee.std_logic_1164.all; 实体测试是 通用的( n:整数:= 4 ); 港口( a、b、c、d :在 std_logic_vector(n-1 downto 0) 中; s :在 std_logic_vector(1 downto 0) 中; y : 输出 std_logic_vector(n-1 降到 0) ); 结束测试; -- przypisanie sekwencyjne - 案例 测试的架构 arch_mux5 是 开始 pr_case:过程(a,b,c,d,s) 开始 情况是 当“00”=>时y <= a; 当“01”=>时y <= b; 当“10”=>时y <= c; 当别人=> y <= d; 最终情况; 结束进程; 结束 arch_mux5; 测试的架构 arch_mux6 是 开始 pr_if:过程(a,b,c,d,s) 开始 y <=(其他 => '0'); -- 锁住jesli zakomentujemy,dlaczego? 如果 s =“00”则 y <= a; 结束如果; 如果 s =“01”则 y <= b; 结束如果; 如果 s = "10" 那么 y <= c; 结束如果; 如果 s = "11" 那么 y <= d; 结束如果; 结束进程; 结束 arch_mux6; 测试的配置cfg是 对于 arch_mux5 结束于; 结束cfg;
mux5和mux6似乎是相同的,但写入方法不同。
I have big problem because i dont uderstand properly how make my homework.
Well i have to make something like this:
http://tomaszewicz.zpt.tele.pw.edu.pl/files/u1/zad4.gif
I have code which create b1 but i dont knwo how to create the second and make them connect to b3.
My code is:
library ieee; use ieee.std_logic_1164.all; entity test is generic( n : integer := 4 ); port( a, b, c, d : in std_logic_vector(n-1 downto 0); s : in std_logic_vector(1 downto 0); y : out std_logic_vector(n-1 downto 0) ); end test; -- przypisanie sekwencyjne - case architecture arch_mux5 of test is begin pr_case: process(a,b,c,d,s) begin case s is when "00" => y <= a; when "01" => y <= b; when "10" => y <= c; when others => y <= d; end case; end process; end arch_mux5; architecture arch_mux6 of test is begin pr_if: process(a,b,c,d,s) begin y <= (others => '0'); -- latch jesli zakomentujemy, dlaczego? if s = "00" then y <= a; end if; if s = "01" then y <= b; end if; if s = "10" then y <= c; end if; if s = "11" then y <= d; end if; end process; end arch_mux6; configuration cfg of test is for arch_mux5 end for; end cfg;
mux5 and mux6 seems to be the same but in different write method.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你必须实例化这些多路复用器,例如:
当然你仍然需要为
mux2
编写实体+架构。我没有测试这段代码(这里没有 VHDL 编译器),但这至少应该引导您进入正确的方向。You have to instantiate those multiplexers, e.g.:
Of course you still have to write the entity+architecture for
mux2
. I didn't test this code (don't have a VHDL compiler here) but that should at least lead you into the correct direction.是的,您的老师提供了两种不同的方法来实现相同的多路复用器。这样做可能仅用于教育目的。您需要为 b1 和 b2 实例化该多路复用器。
正如 @bmk 指出的,您仍然需要为
b3
提供一种实现,并在一个顶层实例化三个多路复用器。Yes, your teacher provided two different ways of implementing the same mux. This is probably done for educational purposes only. You will need to instantiate this mux for b1 and b2.
As @bmk points out, your still need to provide an implementation for
b3
and instantiate the three muxes in one top level.