PDF Solution Manual For VHDL For Engineers Kenneth L Short Online Ebook Full Chapter

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 43

Solution Manual for VHDL for Engineers

Kenneth L. Short
Visit to download the full and correct content document: https://testbankbell.com/dow
nload/solution-manual-for-vhdl-for-engineers-kenneth-l-short/
More products digital (pdf, epub, mobi) instant
download maybe you interests ...

Solution Manual for Discrete Mathematics for Computer


Scientists Cliff L Stein, Robert Drysdale, Kenneth
Bogart

http://testbankbell.com/product/solution-manual-for-discrete-
mathematics-for-computer-scientists-cliff-l-stein-robert-
drysdale-kenneth-bogart/

Solution Manual for International Business, 7/E 7th


Edition John J. Wild, Kenneth L. Wild

http://testbankbell.com/product/solution-manual-for-
international-business-7-e-7th-edition-john-j-wild-kenneth-l-
wild/

Solution Manual for International Business: The


Challenges of Globalization John Wild, Kenneth L. Wild,
Halia Valladares

http://testbankbell.com/product/solution-manual-for-
international-business-the-challenges-of-globalization-john-wild-
kenneth-l-wild-halia-valladares/

Test Bank for Biochemistry: A Short Course, 2nd


Edition: John L. Tymoczko Download

http://testbankbell.com/product/test-bank-for-biochemistry-a-
short-course-2nd-edition-john-l-tymoczko-download/
Solution Manual for Biochemistry A Short Course 3rd by
Tymoczko

http://testbankbell.com/product/solution-manual-for-biochemistry-
a-short-course-3rd-by-tymoczko/

Solution manual for Financial Accounting Libby Libby


Short 8th edition

http://testbankbell.com/product/solution-manual-for-financial-
accounting-libby-libby-short-8th-edition/

Random Processes for Engineers 1st Hajek Solution


Manual

http://testbankbell.com/product/random-processes-for-
engineers-1st-hajek-solution-manual/

Probability Foundations for Engineers 1st Nachlas


Solution Manual

http://testbankbell.com/product/probability-foundations-for-
engineers-1st-nachlas-solution-manual/

Optimal Control for Chemical Engineers 1st Upreti


Solution Manual

http://testbankbell.com/product/optimal-control-for-chemical-
engineers-1st-upreti-solution-manual/
Solution Manual for VHDL for Engineers Kenneth L.
Short

To download the complete and accurate content document, go to:


https://testbankbell.com/download/solution-manual-for-vhdl-for-engineers-kenneth-l-s
hort/
Solution Manual for VHDL for Engineers Kenneth L. Short

Chapter 7 VHDL for Engineers Solutions

October 26, 2008 5:15 pm

7.1 The two basic things that need to be verified about a design are: (1) does the design achieve its intended func-
tionality, (2) After being synthesized and mapped to the target PLD, will the design meet its timing requirements.
Both of these aspects of a design are verified through simulation using a testbench.

7.2 The three primary constituents of a simple testbench are the UUT, stimulus generator, and response monitor.

7.3 It is often possible to write a testbench so that the unit under test (UUT) is the only constituent of the test-
bench that must be changed to perform the three basic verifications. For a functional verification the design
description is the UUT. The VHDL netlist generated by the synthesizer is the UUT in a post-synthesis verifica-
tion. For a timing verification, the VHDL timing model generated by the place-and-route tool is the UUT.

7.4 An exhaustive verifcation is one where every possible input is applied and the output is verfied for each input
applied. Since a combinational design’s outputs at any time are a function only of its inputs at that time, the order
in which input combinations are applied does not affect the verification results. For a combinational design, an
exhaustive verification requires the application, in any order, of every possible input combination to the UUT
and verification of its outputs for each input combination.

In contrast, exhaustive verification of a sequential design requires that every possible sequence of input combina-
tions be applied to the UUT and its outputs verified. For even a moderately complex sequential design, it is
impractical to perform an exhaustive verification because of the enormous number of different input sequences
that would have to be applied. Therefore, it is usually impossible to prove that a complex sequential design is
error free. Consequently, a determination must be made as to what input sequences constitute an adequate verifi-
cation for a particular design.

7.5 A natural language specification for a system usually contains ambiguities. The more complex the system,
the more ambiguities in its specification. When writing a design description or a testbench starting from a natural
language specification, the designer must interpret the specification to determine the intent of the design. If the
same person writes both the design description and its testbench and they are both based on the same incorrect
interpretation of the system specification, then the verification may be successful, but the design is still incorrect.
If the testbench is written by a person( other than the person who wrote the design description, if the two inde-
pendent interpretations of design intent are not identical, the testbench should expose the differences, so that they
can be properly resolved.

7.6 Usually, only the two values '0' and '1' from the nine std_logic values are applied to a UUT’s inputs for
verification. For some timing verifications the value ‘X’ is sometimes applied to model when an input signal
will have an invalid or unstable value.

7.7 For a combinational design with n inputs there are 2n possible input combinations. The order in which the
input combinations is applied is not critical for a combinational system. The number of input combinations to be
applied to designs with 4, 9, 14, and 32 inputs are: 16, 512, 16,384 and 4,294,967,296 respectively.

Visit TestBankBell.com to get complete for all chapters


7.8 It was assumed that the outputs of the UUT were the same as in Listing 7.3.1, only the additional input c was
added. The inputs increment every 20 ns.

library ieee;
use ieee.std_logic_1164.all;

entity testbench is
end testbench;

architecture waveform of testbench is


signal a_tb, b_tb, c_tb : std_logic;
signal sum_tb, carry_out_tb : std_logic;
begin

UUT : entity three_inputs port map (a => a_tb, b => b_tb, c => c_tb,
sum => sum_tb, carry_out => carry_out_tb );

a_tb <= '0', '1' after 80 ns;


b_tb <= '0', '1' after 40 ns, '0' after 80 ns, '1' after 120 ns;
c_tb <= '0', '1' after 20 ns, '0' after 40 ns, '1' after 60 ns,
'0' after 80 ns, '1' after 100 ns, '0' after 120 ns, '1' after 140 ns;

end waveform;

7.9

library ieee;
use ieee.std_logic_1164.all;

entity nandwfb_tb is
end nandwfb_tb;

architecture tb_architecture of nandwfb_tb is


signal enable : std_logic;
signal sigout : std_logic;
begin

-- Unit Under Test port map


UUT : entity nandwfb
port map (
enable => enable,
sigout => sigout
);

-- enable <= '0', '1' after 50 ns;


enable <= '0', '1' after 50 ns;

end tb_architecture;

7.10 The time component of each transaction in an assignment statement that describes a projected waveform is
the sum of the current simulation time (Tc) and the value of the corresponding after clause’s time expression. For
the assignment statement given the signal will take the value 0 at 150 ns, 1 at 160 ns, 0 at 175 ns, and 1 at 195 ns.

2
7.11 ##

7.12

library ieee;
use ieee.std_logic_1164.all;

entity testbench is
end testbench;

architecture behavior of testbench is


-- Declare local signals to assign values to and to observe
signal x_tb, y_tb, eq_tb : std_logic;
begin
-- Create an instance of the circuit to be tested
uut: entity compare port map(x => x_tb, y => y_tb,
eq => eq_tb);

-- Define x process to apply input stimulus and verify outputs


tb : process
constant period: time := 15 ns;
begin -- Apply every possible input combination

x_tb <= '0'; --apply input combination 00 and check outputs


y_tb <= '0';
wait for period;
assert eq_tb = '1'
report "test failed for input combination 00" severity error;

x_tb <= '0'; --apply input combination 01 and check outputs


y_tb <= '1';
wait for period;
assert eq_tb = '0'
report "test failed for input combination 01" severity error;

x_tb <= '1'; --apply input combination 10 and check outputs


y_tb <= '0';
wait for period;
assert eq_tb = '0'
report "test failed for input combination 10" severity error;

x_tb <= '1'; --apply input combination 11 and check outputs


y_tb <= '1';
wait for period;
assert eq_tb = '1'
report "test failed for input combination 11" severity error;

wait; -- indefinitely suspend process


end process;
end;

3
7.13 Wait statements are used to realize a specific delay between the application of each stimulus value. After the
delay, an assertion statement can be used to check the outputs.

There are three reasons why wait statements are required in a testbench. First, the signal assignments can’t take
effect until after the process suspends. Without the wait for statement, the response would be checked during the
current simulation cycle and would not be the response to the newly assigned input values. Second, waiting for a
time interval allows the new input values to appear in the simulator waveforms for this time period. This makes
it possible to view the waveform. Otherwise, all the actions in the process would take place in zero simulation
time. As a result, the waveform’s time axis would be compressed to zero length and the waveforms would not be
viewable. Third, the wait for statements allow the same testbench to be used later, without modification, for a
timing simulation. During the timing simulation, we want the simulator to wait a period of time, determined from
the design’s timing specification, before the UUT’s outputs are checked. The maximum propagation delay of the
design mapped to the target PLD must be less than or equal to this period of time, or the timing simulation fails.
The final wait statement, without a for clause, suspends the process indefinitely. This causes the simulation to
stop. Without this final wait statement, the process would repeat forever, or until the simulator time limit is
reached.

Use of assertion statements allows the testbench to automatically verify the UUT’s response, eliminating the
need to visually inspect timing waveforms.

7.14

library ieee;
use ieee.std_logic_1164.all;

entity half_adder is
port (a, b : in std_logic;
sum, carry_out: out std_logic);
end half_adder;

architecture behavioral of half_adder is


begin
process
begin
sum <= a xor b;
carry_out <= a and b;
wait on a, b;
end process;
end behavioral;

Since the description is to use a wait statement the process cannot have a sensitivity list. The wait statement must
be at the end of the description if the description if functionally the architecture is to be exactly equivalent to
Listing 2.6.1. This is because in Listing 2.6.1 both assignment statements get executed at initialization. If the
wait statement is put before either of the assignment statements this will the be the case. After initialization we
need the process to execute every time there is an event on either a or b. Accordingly a wait on statement is
chose because it has a sensitivity list. While a process is suspended due to the execution of a wait on statement,
all signals in the statement’s sensitivity list are monitored by the simulator. When an event occurs on any signal

4
in the wait on statement’s sensitivity list the process that contains it is activated and the process resumes execu-
tion at the statement following the wait on statement (in this case the beginning of the process).

7.15

process
begin
a_tb <= '0';
b_tb <= '0';
wait for 20 ns;
b_tb <= '1';
wait for 20 ns;
a_tb <= '1';
b_tb <= '0';
wait for 20 ns;
b_tb <= '1';
wait;
end process;

This process creates exactly the same stimulus as the concurrent assignment statements in Listing 7.15. However,
if you want each input to be applied for 20 ns the simulator must be set to run for 80 ns or a wait for 20 ns
statement can be added just before the last wait statement.

7.16 If the condition in an assertion statement evaluates false, an assertion violation occurs. If the assertion state-
ment includes a report clause, the string that comprises the expression in the report clause is displayed. A report
statement is a separate statement. A report statement displays its message every time the statement is executed. If
a report statement’s severity clause is omitted, its severity level defaults to note (instead of the default level of
error for an assertion statement).

7.17 If a semicolon is inadvertently placed after the assert clause in an assertion statement, in addition to after its
severity clause, two statments are created. The first is an assertion statement without a report clause or severity
clause. If the condition in the assertion statement evaluates false when the assertion statement is executed, the
simulator displays the default error message “Assertion violation” and the default severity level is error. The sec-
ond statement is a report statement. The message that was intended to be part of the assertion statement becomes
part of the report statement and is always displayed when the report statement is executed and has the severity
level intended for the assertion statement.

7.18

library ieee;
use ieee.std_logic_1164.all;

entity testbench is
end testbench;

architecture behavior of testbench is


signal a_tb, b_tb, sum_tb, carry_out_tb : std_logic;
begin

5
uut: entity half_adder port map(a => a_tb, b => b_tb,
sum => sum_tb, carry_out => carry_out_tb);

tb : process
constant period: time := 20 ns;
begin -- Apply every possible input combination

a_tb <= '0'; --apply input combination 00 and check outputs


b_tb <= '0';
wait for period;
assert not((sum_tb = '1') or (carry_out_tb = '1'))
report "test failed for input combination 00" severity error;

a_tb <= '0'; --apply input combination 01 and check outputs


b_tb <= '1';
wait for period;
assert not((sum_tb = '0') or (carry_out_tb = '1'))
report "test failed for input combination 01" severity error;

a_tb <= '1'; --apply input combination 10 and check outputs


b_tb <= '0';
wait for period;
assert not((sum_tb = '0') or (carry_out_tb = '1'))
report "test failed for input combination 10" severity error;

a_tb <= '1'; --apply input combination 11 and check outputs


b_tb <= '1';
wait for period;
assert not((sum_tb = '1') or (carry_out_tb = '0'))
report "test failed for input combination 11" severity error;

wait;
end process;
end;

When the assertion statement’s condition for correct operation is contingent on correct values for several signals
then writing the condition in terms of incorrect operation can be complex. In this example, not only does the not
operator have to be place in front of the condition and the values of the signals complemented but the and opera-
tor must be changed to an or operator. You can think of this in terms of DeMorgan’s theorem.

7.19 ##

7.20

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity fuel_encoder_tb is
end fuel_encoder_tb;

architecture tb_architecture of fuel_encoder_tb is

6
signal fuel : std_logic_vector(3 downto 0);
signal leds : std_logic_vector(3 downto 0);

type outputs is array (0 to 15) of std_logic_vector(3 downto 0);


constant patterns : outputs := (
"1110", "1110", "1110", "1110",
"1100", "1100", "1100", "1100",
"1000", "1000", "1000", "1000",
"0000", "0000", "0000", "0000");

begin

UUT : entity fuel_encoder


port map (
fuel => fuel,
leds => leds
);

process
begin
for i in 0 to 15 loop
fuel <= std_logic_vector(to_unsigned(i,4));
wait for 20 ns;
assert leds = patterns(i)
report "test failed for input integer'image(i)";
end loop;
wait;
end process;
end tb_architecture;

7,21 The first sentence in the statement of Problem 7.21 should be deleted. The problem statement starts with the
next sentence: “A demultiplexer has ....”

library ieee;
use ieee.std_logic_1164.all;

entity demux_1to4_tb is
end demux_1to4_tb;

architecture tb_architecture of demux_1to4_tb is

signal data_in : std_logic;


signal sel : std_logic_vector(1 downto 0);
signal demuxout : std_logic_vector(3 downto 0);

type test_vector is record


data_in : std_logic;
sel : std_logic_vector(1 downto 0);
demuxout : std_logic_vector(3 downto 0);
end record;

type test_vector_array is array (natural range <>) of test_vector;

7
constant test_vectors : test_vector_array := (
('0', "00", "0000"),
('0', "01", "0000"),
('0', "10", "0000"),
('0', "11", "0000"),
('1', "00", "0001"),
('1', "01", "0010"),
('1', "10", "0100"),
('1', "11", "1000"));

begin

UUT : entity demux_1to4


port map
(data_in => data_in,
sel => sel,
demuxout => demuxout );

-- Stimulus
verify: process
variable vector : test_vector;
begin
for i in test_vectors'range loop
vector := test_vectors(i);

data_in <= vector.data_in;


sel <= vector.sel;

wait for 20 ns;

assert demuxout = vector.demuxout


report "test vector " & integer'image(i) &" failed"&
" for input data_in = " & std_logic'image(data_in) & " and sel = "
& std_logic'image(sel(1)) & std_logic'image(sel(0))
severity error;
end loop;

wait;
end process;
end tb_architecture;

7.22

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity ones_count_tb is
end ones_count_tb;

architecture tb_architecture of ones_count_tb is


signal inp : std_logic_vector(2 downto 0);

8
signal num_ones, num_ones_exp : std_logic_vector(3 downto 0);
constant period : time := 20 ns;
begin

UUT : entity ones_count


port map (
inp => inp,
num_ones => num_ones
);

stimulus: process
begin
for i in 0 to 7 loop
inp <= std_logic_vector(to_unsigned(i,3));
wait for period;
assert num_ones = num_ones_exp
report "error for input test vector " & integer'image(i)
severity error;
end loop;
wait;
end process;

response: process (inp)


variable num_ones_v : unsigned (3 downto 0);
begin
num_ones_v := "0001";
for i in 2 downto 0 loop
if inp(i) = '1' then
num_ones_v := num_ones_v(2 downto 0) & '0' ;
else
null;
end if;
end loop;
num_ones_exp <= std_logic_vector(num_ones_v);
end process;

end tb_architecture;

7.23

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity therm2bin_tb is
end therm2bin_tb;

architecture tb_architecture of therm2bin_tb is

signal therm : std_logic_vector(6 downto 0);


signal bin : std_logic_vector(2 downto 0);

constant n : integer := 7;

9
constant period : time := 20 ns;

begin

UUT : entity therm2bin


port map (therm => therm, bin => bin);

tb: process
variable therm_var : bit_vector (6 downto 0);
begin

for i in 0 to 7 loop
therm_var := "1111111" sll i;
therm <= to_stdlogicvector(not(therm_var));

-- alternative to previous two statements


-- set therm_var to "0000000" prior to loop
-- then replace previous two instructions with
-- therm <= therm_var(5 downto 0) & '1';

wait for period;


assert bin = std_logic_vector(to_unsigned(i,3))
report "error for input vector number " & integer'image(i)
severity error;
end loop;
wait;
end process;
end tb_architecture;

7.24

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;

entity ic74ac280_tb is
end ic74ac280_tb;

architecture tb_architecture of ic74ac280_tb is


signal i : std_logic_vector(8 downto 0);
signal sum_even, sum_odd : std_logic;
begin

UUT : entity ic74ac280


port map
(i => i,
sum_even => sum_even,
sum_odd => sum_odd );

tb: process
constant period : time := 100ns;
variable sum_even_actual : std_logic;
variable sum_even_expected : std_logic;

10
variable sum_odd_actual : std_logic;
variable sum_odd_expected : std_logic;
begin
for j in 0 to 511 loop
i <= conv_std_logic_vector (j, 9);
wait for period;
sum_even_actual := sum_even;
sum_even_expected := not (i(8) xor i(7) xor i(6) xor i(5) xor i(4)
xor i(3) xor i(2) xor i(1) xor i(0));
assert sum_even_actual = sum_even_expected
report "error for input vector " & integer'image(j)
severity error;

sum_odd_actual := sum_odd;
sum_odd_expected := i(8) xor i(7) xor i(6) xor i(5) xor i(4)
xor i(3) xor i(2) xor i(1) xor i(0);
assert sum_odd_actual = sum_odd_expected
report "error for input vector " & integer'image(j)
severity error;
end loop;
wait;
end process;
end tb_architecture;

7.25

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity tally_tb is
end tally_tb;

architecture tb_architecture of tally_tb is

signal scoresa : std_logic_vector(2 downto 0);


signal scoresb : std_logic_vector(2 downto 0);
signal winner, winner_expected : std_logic_vector(1 downto 0);
subtype ones is integer range 0 to 3;
type int_array is array (0 to 7) of ones;
constant num_ones : int_array := (0, 1, 1, 2, 1, 2, 2, 3);

begin

UUT : entity tally


port map (
scoresa => scoresa,
scoresb => scoresb,
winner => winner
);

-- apply all possible inputs and check output


stim: process

11
variable stimulus_vector : std_logic_vector (5 downto 0);
begin
for i in 0 to 63 loop
stimulus_vector := std_logic_vector(to_unsigned(i, 6));
scoresb <= stimulus_vector(5 downto 3);
scoresa <= stimulus_vector(2 downto 0);
wait for 20 ns;

assert winner = winner_expected


report "error for input vector " & integer'image(i)
severity error;
end loop;
wait;
end process;

-- compute expecte winner


expected: process (scoresa, scoresb)
variable ones_in_a, ones_in_b : ones;
begin
ones_in_a := num_ones(to_integer(unsigned(scoresa)));
ones_in_b := num_ones(to_integer(unsigned(scoresb)));
if (ones_in_a = 0) and (ones_in_b = 0) then
winner_expected <= "00";
elsif ones_in_a > ones_in_b then
winner_expected <= "01";
elsif ones_in_a < ones_in_b then
winner_expected <= "10";
else
winner_expected <= "11";
end if;
end process;

end tb_architecture;

7.26

(a) Testbench version with exptected value determined by table lookup.

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity bcd_2_bar_tb is
end bcd_2_bar_tb;

architecture tb_architecture of bcd_2_bar_tb is


signal bcd : std_logic_vector(3 downto 0);
signal bargraph : std_logic_vector(8 downto 0);

begin

UUT : entity bcd_2_bar


port map (

12
bcd => bcd,
bargraph => bargraph
);

tb : process
constant period: time := 20 ns;
variable expected : std_logic_vector(8 downto 0);
type table_array is array (0 to 9) of std_logic_vector(8 downto 0);
constant table_entry : table_array := (
"000000000",
"000000001",
"000000011",
"000000111",
"000001111",
"000011111",
"000111111",
"001111111",
"011111111",
"111111111");
begin
-- Apply input combinations 0 through 9, output is checked
for i in 0 to 9 loop
bcd <= std_logic_vector(to_unsigned(i,4));
wait for period;
expected := table_entry(to_integer(unsigned(bcd)));
assert bargraph = expected
report "test failed for input integer'image(i)";
-- compute next expected value
end loop;

-- Apply input combinations 10 through 15, output is not checked


for i in 10 to 15 loop
bcd <= std_logic_vector(to_unsigned(i,4));
wait for period;
end loop;

wait;
end process;
end tb_architecture;

(b) Testbench version with exptected value computed.

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity bcd_2_bar_tb is
end bcd_2_bar_tb;

architecture tb_architecture of bcd_2_bar_tb is


signal bcd : std_logic_vector(3 downto 0);
signal bargraph : std_logic_vector(8 downto 0);

13
begin

UUT : entity bcd_2_bar


port map (
bcd => bcd,
bargraph => bargraph
);

tb : process
constant period: time := 20 ns;
variable expected : std_logic_vector(8 downto 0);

begin -- Apply input combinations 0 through 9


expected := (others => '0'); -- first expected value
for i in 0 to 9 loop
bcd <= std_logic_vector(to_unsigned(i,4));
wait for period;
assert bargraph = expected
report "test failed for input integer'image(i)";
-- compute next expected value
expected := expected(7 downto 0) & '1';
end loop;

-- Apply input combinations 10 through 15, output is


-- not checked
for i in 10 to 15 loop
bcd <= std_logic_vector(to_unsigned(i,4));
wait for period;
end loop;

wait;
end process;
end tb_architecture;

7.27 ##

7.28 The problem statement asks for a solution using two loops. The solution given here uses a single loop and is
more concise to write. It uses a boolean constant name dont_care that is set to true for a functional simula-
tion where the model’s output is verified to be don’t cares when neither the blanking input nor lamp test input is
asserted and the BCD input is invalid. Constant dont_care that is set to false for a post-synthesis or a tim-
ing simulation where the model’s output is not verified when neither the blanking input nor lamp test input is
asserted and the BCD input is invalid.

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity bcd_7seg_tb is
end bcd_7seg_tb;

architecture tb_architecture of bcd_7seg_tb is

14
signal bi_bar : std_logic;
signal lt_bar : std_logic;
signal dcba : std_logic_vector(3 downto 0);
signal seg, seg_gld : std_logic_vector(6 downto 0);

-- Set constant dont_care to true if UUT model has don't care outputs
-- and they are to be checked (for example for functional simulation).
-- Set constant dont_care to false if model does not have don't care
-- outputs (post_synthesis or timing simulation).

constant dont_care : boolean := true;

begin

-- Unit Under Test port map


UUT : entity bcd_7seg
port map (
bi_bar => bi_bar,
lt_bar => lt_bar,
dcba => dcba,
seg => seg
);

stimulus : process
variabletstvec : std_logic_vector(5 downto 0);
begin
for i in 0 to 2 ** 6 - 1 loop
tstvec := std_logic_vector(to_unsigned(i,6));
bi_bar <= tstvec(5);
lt_bar <= tstvec(4);
dcba <= tstvec(3 downto 0);

wait for 20 ns;

if
(dont_care = false and not (dcba > "1001" and bi_bar = '1' and lt_bar = '1'))
or dont_care = true then
assert seg = seg_gld
report "error input vector" & integer'image(i)
severity error;
end if;
end loop;
wait;
end process;

golden : process (bi_bar, lt_bar, dcba)


type tbl_type is array (0 to 15) of std_logic_vector(6 downto 0);
constant segout : tbl_type := (
"0000001",
"1001111",
"0010010",
"0000110",
"1001100",
"0100100",
"1100000",

15
"0001111",
"0000000",
"0001100",
"-------",
"-------",
"-------",
"-------",
"-------",
"-------"
);

begin
if bi_bar = '0' then
seg_gld <="1111111";
elsif lt_bar = '0' then
seg_gld <="0000000";
else
seg_gld <= segout(to_integer(unsigned(dcba)));
end if;
end process;
end tb_architecture;

7.29
(a)

architecture dataflow of mux_4_to_1 is


begin

y <= i(0) when s = "00" else


i(1) when s = "01" else
i(2) when s = "10" else
i(3) ;

end dataflow;

(b)

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity mux_4_to_1_tb is
end mux_4_to_1_tb;

architecture tb_architecture of mux_4_to_1_tb is


signal i : std_logic_vector(3 downto 0);
signal s : std_logic_vector(1 downto 0);
signal y : std_logic;
constant period : time := 20 ns;
begin

-- Unit Under Test port map


UUT : entity mux_4_to_1

16
port map (
i => i,
s => s,
y => y
);

-- Stimulus and verification process


verify: process
begin
-- This set of nested loops circulates a single 0 at the data inputs
-- (outer loop) and verfies the output for each selection input value
-- (inner loop)

i <= "1110";
for j in 0 to 3 loop
for k in 0 to 3 loop
s <= std_logic_vector(to_unsigned(k,2));
wait for period;
if (j = k) then
assert y = ('0') report "output error" severity error;
else
assert y = ('1') report "output error" severity error;
end if;
end loop;
i <= i(2 downto 0) & '1';
end loop;

-- This set of nested loops circulates a single 0 at the data inputs


-- (outer loop) and verfies the output for each selection input value
-- (inner loop)

i <= "0001";
for j in 0 to 3 loop
for k in 0 to 3 loop
s <= std_logic_vector(to_unsigned(k,2));
wait for period;
if (j = k) then
assert y = ('1') report "output error" severity error;
else
assert y = ('0') report "output error" severity error;
end if;
end loop;
i <= i(2 downto 0) & '0';
end loop;

wait;
end process;
end tb_architecture;

7.30

library ieee;
use ieee.std_logic_1164.all;

17
Solution Manual for VHDL for Engineers Kenneth L. Short

use ieee.numeric_std.all;

entity synthfcn_tb is
end synthfcn_tb;

architecture tb_architecture of synthfcn_tb is

signal inputs : std_logic_vector(2 downto 0);


signal outputs : std_logic_vector(2 downto 0);

signal goldnin : std_logic_vector(2 downto 0);


signal goldnout : std_logic_vector(2 downto 0);

begin

-- entity being verfied


UUT : entity synthfcn
port map (
inputs => inputs,
outputs => outputs
);

-- "golden" entity
u1 : entity golden
port map(
goldnin => goldnin,
goldnout => goldnout
);

-- stimulus and verification process


p0: process
begin
for i in 0 to 7 loop
inputs <= std_logic_vector(to_unsigned(i,3));
goldnin <= std_logic_vector(to_unsigned(i,3));
wait for 20 ns;
assert outputs = goldnout
report "test failed for test vector = " & integer'image(i)
severity error;
end loop;
wait;
end process;
end tb_architecture;

18

Visit TestBankBell.com to get complete for all chapters


Another random document with
no related content on Scribd:
The Project Gutenberg eBook of La nouvelle
Cythère
This ebook is for the use of anyone anywhere in the United
States and most other parts of the world at no cost and with
almost no restrictions whatsoever. You may copy it, give it away
or re-use it under the terms of the Project Gutenberg License
included with this ebook or online at www.gutenberg.org. If you
are not located in the United States, you will have to check the
laws of the country where you are located before using this
eBook.

Title: La nouvelle Cythère

Author: Antoine‫‏‬Mativet

Release date: January 14, 2024 [eBook #72712]

Language: French

Original publication: Paris: Charpentier, 1888

Credits: Laurent Vogel and the Online Distributed Proofreading


Team at https://www.pgdp.net (This file was produced
from images generously made available by the
Bibliothèque nationale de France (BnF/Gallica))

*** START OF THE PROJECT GUTENBERG EBOOK LA


NOUVELLE CYTHÈRE ***
LA NOUVELLE
CYTHÈRE
PAR

MONCHOISY
J’étais là, telle chose m’advint.

PARIS
G. CHARPENTIER ET Cie, ÉDITEURS
11, RUE DE GRENELLE, 11

1888
ASNIÈRES. — IMPRIMERIE LOUIS BOYER ET Cie
LA
NOUVELLE CYTHÈRE
A beau mentir qui vient de loin.

En route pour la Nouvelle Cythère. — A bord du Saint-Laurent. — La


tempête, les icebergs et la brume. — Le pilote, rien de Fenimore
Cooper. — Reminiscence de l’Oncle Sam. — La vérité sur New-
York ou l’imposture démasquée. — A travers l’Amérique. — Les
derniers des Mohicans. — San-Francisco.

C’est à Bougainville que Tahiti doit le surnom galant de Nouvelle


Cythère, une épithète tout à fait dans le goût mythologique et
licencieux du dix-huitième siècle. Depuis, la légende s’est encore
embellie et poétisée, grâce à Pierre Loti. Il est vrai que l’on conserve
dans la flotte le souvenir d’un Viaud très chaste, solitaire et rangé,
réservé dans ses discours comme dans ses actions, et créant la
Rarahu de son roman du chaos des conversations très libres du
carré des officiers. Qu’importe ! Il n’est pas un échappé de l’École
navale qui ne rêve de faire ce voyage que j’ai entrepris, pour ma
part, sous le masque d’un sceptique, d’un Parisien quelque peu
revenu des engouements de la vingtième année et légèrement
enclin à prendre le contrepied des jolis contes de Pierre Loti.
Le plus court chemin de Paris à Tahiti est celui qui traverse
l’Atlantique du Havre à New-York, l’Amérique de New-York à San-
Francisco, et l’océan Pacifique de San-Francisco à Papeete. Le
Saint-Laurent, qui m’a pris au Havre le 5 juin, a eu des aventures. La
mer n’a pas toujours été très bonne et la maladresse d’un pilote
nous a jetés sur un banc de sable, à l’entrée de la baie d’Hudson.
Par ce temps de navigation rapide, on ne s’émeut guère, sur le
boulevard, quand on apprend le départ ou l’arrivée d’un
transatlantique. Et pourtant ces huit ou dix jours vécus entre le ciel et
l’eau, dans ces hôtels flottants, sont féconds en événements et en
impressions.
Il y a les passagers, d’abord. La société est variée et un choix
difficile à faire. Un général américain, un peu condottière, coudoie un
aventurier allemand escorté d’une baronne suspecte. Une
chanteuse légère, espagnole ou mexicaine, teinte en roux, s’affale
près d’une blonde véritable, la charmante femme d’un fonctionnaire
colonial français. Quelques négociants et commis-voyageurs,
exportateurs de vins français et d’esprit de table d’hôte, honnêtes
gens et bien doués, se montrent chauvins comme il convient. Un fils
de famille grisonnant et mûr, réduit à la portion congrue par le jeu et
les belles, croise sur le pont un autre échappé du boulevard qui
voyage pour oublier des chagrins d’amour et de théâtre. Un abbé
italien, un monsignor, curieux et indiscret comme une femme de
chambre, converse et controverse avec un moine américain, en
redingote longue et en chapeau de cuir bouilli. Un docteur en renom,
à qui l’été fait des loisirs, pérégrine avec sa femme, une Russe très
jolie et très française. A signaler encore une Américaine un peu
garçonnière qui fait des cavaliers seuls, tire au mur, et s’adonne au
champagne, à la théosophie et aux sciences occultes. Voilà pour les
premières. L’avant est encombré d’émigrants, alsaciens ou italiens
pour la plupart, ces derniers plus malpropres encore que mal vêtus.
Ceux-ci font danser ceux-là aux sons nasillards d’un accordéon, et,
du matin au soir, du même mouvement lourd et rythmé, les filles
d’Alsace tournent, tournent. Allez, pauvres gens, vers cette terre
lointaine où peut-être votre misère ne fera que changer de patrie !
On joue un whist à bon marché, un piquet plus innocent encore,
et on lit un peu à bord. Alphonse Daudet tient la corde avec Tartarin
sur les Alpes, puis viennent Maupassant, Zola, Stendhal, voire
Amédée Achard. Il y a un piano que la mer a un peu éprouvé. Le
soprano de la femme d’un agent dramatique se marie au ténor du
commissaire, l’un et l’autre passablement enroués. Et vogue la
nacelle !…
La société a beau être aimable sinon choisie, l’état-major plein de
prévenances, la cuisine délicate et variée, on soupire après la terre
ferme. On a pu abréger la distance, on n’a supprimé, hélas ! ni le
mal de mer ni l’odieuse odeur de graillon de la machine. Les
victimes endurent le martyre aux accords inégaux du piano qui
malmène des airs d’opérette. Entendue dans ces circonstances
tragiques, l’éternelle et joyeuse Mascotte fait pleurer.
Le huitième jour, on aperçoit les icebergs, des banquises, en bon
français. Il vente et il gèle sur le pont. Au loin, à la limite extrême de
l’horizon, flottent de gigantesques édifices, des cathédrales et des
palais de glace, tout blancs avec des reflets d’un bleu vague. Les
bizarreries de leur architecture se détachent à merveille sur le fond
clair du ciel et de la mer. L’imagination aidant, on en vient à se
figurer qu’on a affaire à des débris de cités polaires, peuplées
d’êtres fantastiques figés dans le froid comme dans la mort. D’où
venez-vous, glaciers flottants que l’Océan entraîne au large ?
Contez-nous vos voyages ? Dites-nous vos mystères ?… Bientôt on
ne distingue plus que des formes transparentes en quelque sorte qui
s’évanouissent insensiblement dans l’éther.
Voici le brouillard. A l’entrée de la baie d’Hudson, un pilote, je l’ai
déjà dit, jette le Saint-Laurent sur le sable. La brume dissipée, le
coup d’œil est magnifique. Dans ce large estuaire, le plus beau du
monde, navigueraient à l’aise les flottes réunies de toutes les
grandes puissances. Pour le moment, la baie est sillonnée de
grands steamers et de bateaux de plaisance qui portent des sociétés
voyageant en pique-nique. Un de ces bateaux fait songer au
troisième acte de l’Oncle Sam. Une musique assourdissante couvre
d’harmonie le bruit rythmé de la machine. Le lourd bâtiment
s’approche de nous. Il a reconnu les couleurs françaises et
l’orchestre joue la Marseillaise. Sur la dunette du Saint-Laurent on
agite des mouchoirs et l’on déclame sur la fraternité des peuples. A
la Marseillaise succède l’air national colombien.
On ne bouge toujours pas. Une demi-douzaine de remorqueurs
s’offrent pour réparer la bévue du pilote. Le capitaine est furieux. Il
improvise une manœuvre qui réussit. Le Saint-Laurent recouvre
enfin la liberté de ses mouvements, et, vers sept heures du soir, il
est à quai.
New-York, une belle ville ! C’est à croire que ceux qui ont dit cela
n’ont jamais mis les pieds dans cette monstrueuse cité, ou qu’ils se
sont donné le mot pour mystifier l’univers. C’est immense,
démesuré, énorme, mais laid, difforme, triste, sale, puant. Des rues
mal pavées, ravinées, boueuses même par le soleil, rhumatismales,
catarrheuses, mortelles. Les tramways vous courent après, les
chemins de fer vous roulent sur la tête. Le ciel garde Paris du
métropolitain aérien ! Les passants vous bousculent et vous
compriment. « Beware the pickpockets ! » Il y a bien quelques larges
avenues. Broadway, la rue centrale, est longue d’une lieue et plus,
mais elle est trop encombrée tandis que la plupart des grandes voies
sont désertes, pour ainsi dire. On cueille de la salade dans les
squares.
Il n’y a ni édilité ni sûreté à New-York. D’impassibles policemen,
nantis du bâton traditionnel, surveillent la circulation des voitures,
mais laissent les boys jouer du revolver contre les portes : c’est leur
façon de tirer les cordons de sonnette. Hier, au moment où le car
(tramway) passait au coin de la 42e rue, trois boys lancent dans la
voiture une ligne armée d’un hameçon ; cet engin accroche le porte-
monnaie qu’une jeune fille tout de blanc vêtue tenait à la main, dans
une pose insignifiante et chaste, et les boys se sauvent à toutes
jambes avec le produit de leur pêche.
Un joli trait de mœurs municipales. L’an passé il n’y avait point de
tramway dans Broadway. La grande rue était trop étroite, disait-on,
et trop fréquentée pour qu’on pût sans danger y placer des rails. Un
dimanche matin, on trouva la chaussée remuée d’un bout à l’autre.
En vertu du repos obligatoire, l’autorité qu’on avait à dessein négligé
de consulter était sortie, rentrée plutôt. Le travail fut repris dans la
nuit suivante, et, le lundi matin, le car glissait sur la voie ferrée.
Procès contre l’audacieuse et trop inventive compagnie, procès et
condamnation de certains édiles suspectés de complaisance
intéressée ; mais le tramway roule toujours, et l’empressement des
voyageurs ne permet guère de le supprimer.
Parlons de l’éclairage. Çà et là un jet de lumière électrique d’une
blancheur aveuglante, puis des trous d’ombre semés de quelques
becs de gaz dont la clarté jaune est insuffisante pour déchiffrer le
numéro de la rue ou de l’avenue. Encore une invention de l’esprit
yankee ! Nommer les rues, c’est, en dépit des fantaisies possibles
du corps municipal, attacher à leur position topographique, une idée,
un souvenir qui n’est pas d’un mince secours pour le promeneur ou
l’homme d’affaires. Ici, on a numéroté les voies, et il faut du temps
pour se familiariser avec cette arithmétique urbaine. Comme pour
augmenter l’obscurité, les nègres, désireux de s’éviter les mépris
des blancs libérateurs, ne sortent que le soleil couché, et leur
affluence contribue à faire la nuit plus noire encore.
Au point de vue du théâtre, New-York est une forêt de Bondy où
les auteurs dramatiques sont dévalisés en plein jour. C’est la terre
d’élection des adaptateurs. On y joue l’Auberge des Adrets en
opéra-comique, « Serment d’amour » y devient le « Coq d’or » et
Faust est donné sans la musique.
Les décors sont généralement fort beaux, les costumes très
riches, l’orchestre suffisant et les chanteurs médiocres. Les cafés-
concerts ne manquent pas. On y chante faux dans toutes les
langues. A signaler, à proximité du « Central Park », des auditions
musicales qui rappellent les concerts Colonne ou Lamoureux, avec
cette différence qu’on y boit, qu’on y fume, qu’on y parle, et que les
appareils électriques font une sourdine bourdonnante et fatigante à
la grande musique.
On fuit New-York le plus vite possible, on passe un bras de mer
et l’on se jette dans un train qui vous transporte en vingt-quatre
heures à Chicago. En cinq jours et six nuits on est à San-Francisco.
Oh ! ces nuits de chemin de fer ! Vers six heures, les banquettes
se transforment en couchettes à deux étages. Passe encore de
dormir au rez-de-chaussée de la maison roulante ! Les locataires du
premier ont fort à faire pour accomplir l’ascension nécessaire sans
blesser la pudeur, pour concilier l’agilité et la décence. Avec cela
toutes les couchettes se ressemblent, et les promeneurs nocturnes
sont parfois très embarrassés pour retrouver leur gîte. Est-ce ici ?
Est-ce là ? On soulève d’une main hésitante le rideau protecteur et
l’on distingue vaguement les traits d’une aimable Américaine
enlaidie par son bonnet de nuit et par le cauchemar peut-être…
Effrayé d’une pareille indiscrétion, on revient sur ses pas pour
tomber sur un homme du Far-West qui ronfle avec un revolver sous
son oreiller.
Le train traverse des fleuves, des cités, des plaines immenses,
des vallées pittoresques et sauvages, côtoie des montagnes
escarpées, mais il ne reste au voyageur ahuri et meurtri que le
souvenir vague de tant de choses à peine aperçues dans une
course rapide. Deux fois par jour, à des étapes fixées, l’on s’arrête,
l’on mange à la hâte des mets dignes de la savane, et l’on repart en
jetant quelques cents aux Indiens groupés aux abords des stations.
Il reste bien peu de traces de l’antiquité de leur race dans ces
êtres sordidement vêtus qui ont remplacé les grandes chasses par la
mendicité. Où sont Bas-de-Cuir et Œil de Faucon ? Civilisés et
alcoolisés, leurs descendants tendent la main, et les squaw, leur
enfant posé sur la hanche, grimacent un sourire pour avoir un demi-
dollar. Ces ex-héros de romans sont bien laids. Aucune grâce chez
les femmes, aucune noblesse chez les hommes. Point de flamme
dans le regard de ceux qui furent les maîtres de ces vastes
contrées. Sous ces jupons et ces vestes sales, ils ont l’air de
vagabonds quelconques. Ils ne feraient pas recette à la fête de
Neuilly.
San-Francisco plaît mieux que New-York au voyageur français.
L’aspect général de la ville, les toilettes des femmes, les devantures
des magasins, ont quelque chose de moins américain. On s’y habille
avec plus de goût ; on y montre plus de politesse. Dans beaucoup
de petits détails on retrouve l’empreinte de la colonie française dont
l’ancienne prééminence est encore attestée par quelques noms de
rues. C’est ici qu’il fait bon entendre parler de la France : on n’y est
point patriote à demi ! Les autographes de M. Thiers et de Gambetta
y sont placés sous verre. Il faut rappeler que la souscription des
Français de San-Francisco ne fut pas la moins grosse au lendemain
de nos désastres.
Le tramway roule sans chevaux et sans vapeur, au moyen d’un
système pareil à celui des ascenseurs. C’est un sujet d’étonnement
pour les nouveaux venus que ces véhicules qui vont tout seuls,
s’arrêtent et reprennent leur course d’une façon automatique en
quelque sorte. On ne dit point « prendre le tramway » mais « prendre
le câble », par allusion au mécanisme de cet engin de locomotion.
Autre sujet d’observation. Les sociétés de toutes sortes sont
nombreuses en Amérique : à San-Francisco en particulier, elles
pullulent. Loges maçonniques aux appellations orientales et
symboliques, associations plus ou moins secrètes mais très
décoratives, car on s’y affuble des oripeaux les plus dorés, comités
infiniment variés, on a le choix. Voulez-vous être Chevalier de
Pythias ou Chevalier de la Légion d’honneur, pour ne parler que des
œuvres de bienfaisance ? Ou bien êtes-vous d’humeur à vous faire
recevoir parmi les Chevaliers du Travail, les Knights of Labor, qui
jouent un rôle particulier dans les démêlés du travail avec le capital ?
Il y a encore l’Étoile Orientale, les Vieux Compagnons, les Hommes
Rouges, les Druides, les Chevaliers et les Dames d’Honneur, les Fils
de l’Ouest Doré, les Amis réunis du Pacifique, etc. Maintenant, si
vous désirez savoir quels titres modestes on se donne en pays
démocratique, retenez la nomenclature suivante : Grand Dictateur,
Grand Président, Grand Secrétaire, Suprême Représentant, Grand
Sage, Grand Conseiller, Grands Officiers, etc. Quand on prend du
galon on n’en saurait trop prendre. Là-dessus, relisez Tocqueville.
Comme nous étions à San-Francisco, on y célébrait l’arrivée des
Vétérans de la Grande Armée de la République, The grand Army
Republic. Il semble tout naturel aux Yankees de commémorer la
guerre civile. Chaque année, ce qu’il reste de soldats et d’officiers de
l’armée du Nord se donne rendez-vous dans telle ou telle cité. Des
trains de plaisir sont organisés et les splendides hôtels américains
réduisent leurs prix formidables. C’est en famille que cela se passe.
Le vétéran se présente escorté de sa femme et de ses enfants. Tous
arborent une médaille et des rubans et procèdent avec une gravité
bien saxonne. Plus de cent mille personnes ont défilé sous un arc-
de-triomphe monumental construit en quelques jours au centre de
Market-Street, la principale rue de San-Francisco. Tout s’est bien
passé. A l’an prochain !
II

De San-Francisco à Papeete. — Le père Tropique. — Aux


Marquises. — La lèpre. — Au pays de la nacre et des perles.

La goëlette qui porte le courrier à Tahiti part de San-Francisco le


premier de chaque mois. Le « City of Papeete » est un petit bateau
assez élégant de forme et d’une voilure exceptionnelle, jaugeant six
cents tonneaux. Il fait le voyage, aller et retour, avec la régularité
d’un omnibus. Qu’on est loin du confortable des transatlantiques !
Par exemple, plus d’odeur de machine. On tangue et on roule
indéfiniment, en cadence, et l’on va doucement, doucement. On met
en moyenne trente jours à l’aller et trente-cinq jours au retour. Je
conseille cette promenade aux gens de lettres et aux hommes
politiques qui souffrent d’un excès de fatigue cérébrale. Il est difficile
de trouver à qui parler à bord et les quelques romans emportés de
France, ont été depuis longtemps dévorés, lus et relus. Peu ou point
d’oiseaux de mer. Pas la moindre baleine ; le requin est rare si le
marsouin est abondant. De péripéties, pas l’ombre ! on espère les
alizés, les vents propices ; on redoute le pot-au-noir, vaste espace
où il pleut sans cesse. Le soir, las de n’avoir rien fait, on écoute les
chœurs des marins qui s’accompagnent d’un accordéon. Encore
l’accordéon ! Ils chantent le Navire qui n’est pas revenu, et l’effet
produit est curieux. Il s’établit comme une harmonie des choses
entre la mer, le navire, les chanteurs, les passagers, la voix, la brise
et la vague. Tout se fond dans un ensemble qui n’est pas sans
beauté, au clair de la lune par une belle nuit étoilée, alors
qu’apparaît enfin la Croix du Sud, une constellation de médiocre
envergure à laquelle on a fait une réputation fort au-dessus de son
mérite.
J’ai gardé le silence sur le passage de la Ligne, peut-être parce
que le baptême traditionnel a été l’occasion d’une mauvaise
plaisanterie dont j’ai été la victime. Ce rite est idiot pour ceux aux
dépens de qui on le célèbre ; mais, à distance, je conviens qu’il peut
être un divertissement pour les autres. Le père tropique, Neptune et
ses acolytes, sont des grimes amusants dont la défroque rend
absolument méconnaissables les matelots du bord, et la pièce est
jouée avec ce sérieux sans lequel il n’est point de comique vrai.
Dois-je raconter mon initiation, reproduire les litanies du Père
Tropique, avouer que l’on m’a barbouillé le visage de craie et rasé
avec une lame de bois, confesser enfin que, dans un accès de
mauvaise humeur, je me suis tout à fait refusé à plonger la tête dans
un tonneau rempli d’eau de mer ? Ma honte était grande et le
souvenir m’en est amer.
Le vingt-neuvième jour, la terre est signalée. Cela fait plaisir. On
est en vue de Nuka-Hiva, une île de l’archipel des Marquises. Des
roches énormes se découpent sur le ciel avec des aspects de
forteresses démantelées mais menaçantes encore. Le City of
Papeete jette l’ancre dans la rade très belle de Taio-hae, et les
passagers, avides de se retrouver à terre, se précipitent dans les
canots mis à la mer. De loin nous avons aperçu, paissant, de beaux
bœufs roux et blancs. De la viande fraîche ! On s’explique la joie de
l’ogre qui se nourrissait sans doute à l’ordinaire de salaisons, morue,
saumon, bœuf salé ou en daube, et autres aliments compulsoires de
beuverie mais détestables à la longue pour les estomacs les mieux
portants. Avec la viande fraîche se montrent les fruits des tropiques.
Je me réserve de dire ce que je pense de ces légumes déguisés
quand je serai à Tahiti.
Admiré modérément les premiers cocotiers.
Le cocotier, tête de loup immense,

dit un poëme maritime. Il y a tout au plus trois cents habitants à Taio-


hae, plus un lieutenant de vaisseau, administrateur de l’archipel, un
gendarme, quatre soldats de l’infanterie de marine et un caporal, et
un très vieil évêque dont la soutane râpée fait penser au dicton :

Au temps jadis, évêque d’or,


Crosse de bois.

Visité les curiosités de Taio-hae. Au bord de la mer se dresse


une stèle de granit sans la moindre inscription. Les indigènes
racontent que ce caillou rectangulaire a été apporté là par des
fourmis.
— Mais, leur dit-on, comment pouvez-vous croire que des
fourmis ont pu…?
— Il y en avait beaucoup, répondent-ils avec assurance.
Plus loin, voici une informe et monstrueuse idole de pierre, un
bloc grossier où l’on distingue à grand’peine des yeux en trous de
vrille, un nez camard, un rictus effrayant. C’est devant cette idole
qu’il y a quelque trente ans furent massacrés deux artilleurs de la
marine.
Brr !…
Dans le jardin de la Mission se voit encore un arbre célèbre, un
banian dont Dumont d’Urville parle dans sa relation de voyage. Le
banian est curieux ; de nombreuses branches redescendent vers le
sol pour y prendre racine, ce qui donne au tronc des proportions
énormes.
La race est admirable bien que l’alcool et l’opium aient déjà fait
des ravages parmi les indigènes. Les traits sont réguliers, la stature
élevée, le corps bien proportionné, le teint bistré. Les mœurs sont
libres. Un grand point en discussion est celui de savoir si les
Marquisiens pratiquent encore l’anthropophagie. Les missionnaires
disent oui et les colons disent non.
Auxquels croire ? Il semble bien que, n’était la présence des
gendarmes et des soldats de l’infanterie de marine, les Marquisiens
se feraient la guerre non seulement d’île à île mais de baie à baie.
En nul pays peut-être on ne trouve autant de vestiges de la vie
sauvage. Ce sont les coiffures de guerre en forme de diadème, les
casse-tête ou plutôt les massues, les barbes de vieillards réunies en
pinceau, les chevelures ravies aux ennemis, les plumes de paille-en-
queue, un oiseau des tropiques, plumes dont les femmes se
servaient pour exciter au moyen de chatouillements répétés les
hommes à la guerre et à l’amour ; les lourdes rondelles d’ivoire
qu’elles se fichent dans l’oreille en guise de boucles, les bracelets de
dents de marsouin, les colliers de fragments de tibias sculptés
naïvement ; le tatouage qui, bien que défendu par l’autorité
française, se pratique presque ostensiblement. Peut-on inférer de
tout cela que les indigènes se mangent encore les uns les autres ?
Je suis fort embarrassé pour répondre et je préfère m’en rapporter
au docteur Long. Le docteur, médecin de première classe de la
marine, me raconte que, dans l’une de ses tournées, il a passé la
nuit sous le toit de pandanus où dormait une famille soupçonnée de
s’être débarrassée d’un ennemi en le mangeant. Ce qu’il y a de
certain, c’est que le malheureux a disparu l’an dernier. Le docteur a
recueilli les confidences d’un cannibale repenti. Il paraît que le
morceau le plus recherché sinon le plus délicat dans l’homme, c’est
l’oreille. La chair humaine a un peu le goût de celle du porc. Oh !
docteur !
Un vaillant homme, ce docteur. Toujours par monts et par vaux. Il
a fait récemment une tournée dans les îles où se trouvent des
lépreux. Il a examiné les pauvres diables, leur a laissé des
médicaments, et s’en est revenu très ému avec un projet de
léproserie qui ne sera pas réalisé de sitôt, hélas ! car en ce pays
comme en beaucoup d’autres les excédents budgétaires se
montrent rarement.
D’où vient la lèpre ? Comment naît-elle et se développe-t-elle ?
Nulle question n’est plus controversée. On impute le mal au contact
des Chinois mais, avant l’arrivée de ceux-ci, les indigènes étaient
déjà sujets au féfé. Le féfé, c’est l’éléphantiasis, une maladie de la
peau qui affecte les jambes tout d’abord et détermine une enflure
énorme, au point de donner au membre atteint les dimensions d’un
pied d’éléphant. Les uns assurent que l’abus de la viande de porc
est pour quelque chose dans la lèpre ; d’autres prétendent que le
taro, racine qui croît dans les marécages, pourrait bien en être rendu
responsable. Il en est enfin qui affirment que l’habitude de marcher
les pieds nus n’est pas étrangère au mal, et que c’est par la fiente et
l’urine qu’il se communique. Car il n’est pas sûr encore que la lèpre
soit contagieuse ou non. Il faut entendre les médecins là-dessus.
Toujours est-il que c’est un mal horrible. Le plus souvent c’est par
le visage qu’il commence. Un simple bouton paraît à la joue, puis la
face se gonfle. Aucun remède ne peut arrêter les effets du
mystérieux poison. Le corps se couvre de plaques tandis que les
mains se recroquevillent. La main en griffe est la première étape.
L’ulcération ne vient qu’après. Alors l’être tout entier se dévore, les
membres tombent pourris ; les yeux sortent de l’orbite, et la mort
arrive enfin, lente, trop lente délivrance.
Que faire pour ces malheureux ? Le docteur Long parle de fonder
une léproserie ; d’autres, moins humains, proposent de déporter les
lépreux dans une île déserte, comme cela se fait aux Sandwich.
Toujours est-il qu’avant d’ordonner le départ d’un malade on lui doit
quelques soins. Mais, allez donc raisonner contre la peur, et
qu’espérez-vous des hommes quand le sentiment de la conservation
a parlé ?
Avant de regagner le bord je me fais montrer le fort Collet. Ce
petit bâtiment est le dernier vestige de la transportation à Nuka-Hiva.
Les vaincus de la guerre civile n’ont pas laissé de souvenirs et je ne
trouve personne qui puisse me donner des renseignements sur eux.
Pendant que l’Administrateur répond obligeamment à mes
questions, mon imagination travaille. Nos aimables récidivistes
seraient fort bien aux Marquises, trop bien même. La terre n’y
manque pas, une terre fertile entre toutes. Par ce temps où la
sollicitude publique s’exerce plus souvent au profit des vauriens que
des honnêtes gens, on serait parfaitement capable d’envoyer ici
Alphonse et Mélie pour y faire souche de mauvais bougres. Que l’on
s’en garde ! La colonie n’en veut pas entendre parler, et elle a bien
raison. Il faut publier partout que ce pays est sain, que l’Européen y
peut vivre, s’acclimater en peu de temps, entreprendre des cultures
productives. Quant aux récidivistes, qu’ils aillent se promener ! Il
n’est pas besoin d’eux pour favoriser le développement de la
prostitution ; elle se développe bien assez toute seule.
Nous nous retrouvons sur le pont du « City of Papeete ». La brise
souffle et le léger navire court comme il ne l’a pas encore fait depuis
notre départ de San-Francisco. On apprécie la viande fraîche
emportée de Taio-hae et l’on se régale d’œufs à la coque. Avant de
quitter la table, je dénonce au mépris public une sauce détestable, le
carry. C’est une purée d’amande de coco, et de riz, verdâtre et
nauséabonde, où il entre du safran, du vinaigre, je ne sais quoi
encore. Il paraît que, dans l’Inde, le carry est savoureux, et qu’à
Tahiti même on s’en lèche les doigts. L’essai forcé que j’en ai fait sur
le bateau m’oblige à déclarer qu’entre beaucoup d’inventions
culinaires celle du carry est la plus déplorable.
De nouveau la terre est signalée. Cette fois nous sommes en
présence des Pomotu ou Tuamotu, un archipel dépendant, comme
les îles Marquises, des Établissements français en Océanie. Pomotu
veut dire îles basses, îles soumises, îles de la nuit, quelque chose
de désobligeant pour les indigènes ; Tuamotu veut dire îles
lointaines. Les cartes disent : Archipel dangereux, quelque chose de
terrifiant pour les marins. Plus de roches granitiques aux aspects
grandioses : on n’aperçoit que la cime des cocotiers, et, de loin, les
îles semblent de vastes pelouses perdues au milieu de l’Océan. Une
race robuste vit là. Des pêcheurs pour la plupart. Le sol est fait d’une
mince couche de terre végétale qui repose sur des madrépores. Ces
polypes se développant de la façon la plus irrégulière, tantôt une île
émerge du sein de l’onde et tantôt une île s’affaisse et disparaît.
Cette végétation sous-marine, minérale et vivante tout ensemble,
enserre des portions de mer qui deviennent des lacs intérieurs ou
lagons. C’est ici que la chose devient intéressante : dans ces lagons
se pêchent les huîtres qui donnent la nacre industrielle, d’énormes

You might also like