Cours:TP M1102 TP 3 Corr : Différence entre versions
m (→Question 1) |
m (→Question 1) |
||
Ligne 70 : | Ligne 70 : | ||
BEGIN | BEGIN | ||
with e select | with e select | ||
− | S <= "00" when "000", | + | S <= "00" when "000", --0+0+0=00 |
− | "01" when "001", | + | "01" when "001", --0+0+1=01 |
− | "01" when "010", | + | "01" when "010", --0+1+0=01 |
− | "10" when "011", | + | "10" when "011", --0+1+1=10 |
− | "01" when "100", | + | "01" when "100", --1+0+0=01 |
− | "10" when "101", | + | "10" when "101", --1+0+1=10 |
− | "10" when "110", | + | "10" when "110", --1+1+0=10 |
− | "11" when others; | + | "11" when others;--1+1+1=11 |
END arch; | END arch; | ||
</source> | </source> | ||
===Question 2=== | ===Question 2=== |
Version du 25 septembre 2020 à 14:51
TP 3
Exercice 1
Question 1
La table de vérité donnée dans wikipédia est :
A | B | Cin | S | Cout |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
Nous allons la modifier légèrement pour ses entrées et sorties : les 3 entrées sont regroupées et les 2 sorties sont aussi regroupées ensemble
- Table de vérité
Entrées Sorties e(2)=Cin e(1)=B e(0)=A S(1)=Cout S(0)=S 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1
ATTENTION : Nous avons aussi volontairement changé l'ordre ses entrées et des sorties.Il est préférable d'avoir les sorties dans ce sens pour avoir le poids fort des deux bits de sortie à gauche. Pour les entrées c'est moins important.
Voici le fichier VHDL correspondant :
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
ENTITY add1bit IS PORT(
e : in std_logic_vector(2 downto 0); -- Cin, B, A
s : out std_logic_vector(1 downto 0)); -- Cout, S
END add1bit;
ARCHITECTURE arch of add1bit IS
BEGIN
with e select
S <= "00" when "000", --0+0+0=00
"01" when "001", --0+0+1=01
"01" when "010", --0+1+0=01
"10" when "011", --0+1+1=10
"01" when "100", --1+0+0=01
"10" when "101", --1+0+1=10
"10" when "110", --1+1+0=10
"11" when others;--1+1+1=11
END arch;