Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)

2 to 1 mulltiplexer

Altera_Forum
Colaborador Distinguido II
2.123 Vistas

Hi all. 

 

I have problem during run VHDL code for 2 to 1 multiplexer. this multiplexer have 8 bit for input and output. while the select bit is only one bit. Here is my coding. However, there is error appear. Do you have solution regarding my problem. 

 

LIBRARY ieee;  

USE ieee.std_logic_1164.all;  

 

 

ENTITY part2 IS 

PORT( SWX,SWY : IN std_logic_vector (7 downto 0); 

s : IN bit; 

LEDR : OUT std_logic_vector (7 downto 0)); 

END part2; 

 

ARCHITECTURE dataflow OF part2 IS  

BEGIN  

LEDR <= (NOT (s) AND SWX) OR (s AND SWY);  

 

END dataflow;
0 kudos
4 Respuestas
Altera_Forum
Colaborador Distinguido II
729 Vistas

Try 

 

LEDR <= SWX when (s = '0') else SWY;  

 

Cheers, 

Dave
Altera_Forum
Colaborador Distinguido II
729 Vistas

Thank you Dave. It works. No error appear. I want to ask question. Is it possible if I still want used this code "LEDR <= (NOT (s) AND SWX) OR (s AND SWY);" in my architecture? Is there any method to use it. Or is not possible?  

 

Thanks in advance Dave !
Altera_Forum
Colaborador Distinguido II
729 Vistas

 

--- Quote Start ---  

I want to ask question. Is it possible if I still want used this code "LEDR <= (NOT (s) AND SWX) OR (s AND SWY);" in my architecture? Is there any method to use it. Or is not possible?  

 

--- Quote End ---  

 

 

The above code is asking the synthesis tool to do that for you. What the tool will do is essentially what you have written, but it needs to happen on a per bit basis, eg., 

 

process(s,SWX,SWY) begin for i in 0 to 7 loop LEDR(i) <= (SWX(i) and (not s)) or (SWY(i) and s); end loop; end process;  

 

Note how this code loops over each bit in the 8-bit word. 

 

Cheers, 

Dave
Altera_Forum
Colaborador Distinguido II
729 Vistas

Ok. Noted. I already run the code and it works. Thanks dave!

Responder