From db6969e20e63d489a3fe6553612e69673bb473b5 Mon Sep 17 00:00:00 2001 From: Foussats Morgane Date: Tue, 18 May 2021 16:40:36 +0200 Subject: [PATCH] alea ok --- xilinx/ALU/ALU.gise | 123 +- xilinx/ALU/ALU.xise | 12 +- xilinx/ALU/_ngo/netlist.lst | 3 + xilinx/ALU/_xmsgs/map.xmsgs | 15 + xilinx/ALU/_xmsgs/ngdbuild.xmsgs | 12 + xilinx/ALU/_xmsgs/pn_parser.xmsgs | 2 +- xilinx/ALU/_xmsgs/xst.xmsgs | 54 + xilinx/ALU/bm_instr.vhd | 28 +- xilinx/ALU/bm_instr_isim_beh.exe | Bin 0 -> 21792 bytes xilinx/ALU/fuse.log | 8 +- xilinx/ALU/iseconfig/ALU.projectmgr | 16 +- xilinx/ALU/iseconfig/processeur.xreport | 4 +- xilinx/ALU/isim.log | 70 + xilinx/ALU/isim/isim_usage_statistics.html | 10 +- xilinx/ALU/isim/lockfile1 | 0 .../ieee/p_1242562249.didat | Bin 8516 -> 8516 bytes .../ieee/p_2592010699.didat | Bin 5844 -> 5844 bytes .../ieee/p_3499444699.didat | Bin 4332 -> 4332 bytes .../ieee/p_3620187407.didat | Bin 2264 -> 2264 bytes .../ISimEngine-DesignHierarchy.dbg | Bin 18885 -> 19887 bytes .../ISimEngine-DesignHierarchy1.dbg | Bin 0 -> 19887 bytes .../isimkernel.log | 24 +- .../process_test_isim_beh.exe.sim/netId.dat | Bin 564 -> 636 bytes .../process_test_isim_beh.exe.sim/netId1.dat | Bin 0 -> 28 bytes .../process_test_isim_beh.exe | Bin 249968 -> 254384 bytes .../process_test_isim_beh.exe.sim/tmp_save/_1 | Bin 131871 -> 132679 bytes .../work/a_0832606739_3212880686.didat | Bin 7452 -> 7452 bytes .../work/a_1229531095_2372691052.didat | Bin 3596 -> 3596 bytes .../work/a_1466808984_3212880686.didat | Bin 5956 -> 5956 bytes .../work/a_1802466774_3212880686.c | 2 +- .../work/a_1802466774_3212880686.didat | Bin 11612 -> 11612 bytes .../work/a_1802466774_3212880686.lin64.o | Bin 3048 -> 3048 bytes .../work/a_3650175700_3212880686.c | 131 +- .../work/a_3650175700_3212880686.didat | Bin 4172 -> 4376 bytes .../work/a_3650175700_3212880686.lin64.o | Bin 3376 -> 3952 bytes .../work/a_3998322972_3212880686.didat | Bin 5172 -> 5172 bytes .../work/a_4150868852_3212880686.c | 2123 +++++++++++++---- .../work/a_4150868852_3212880686.didat | Bin 19856 -> 23632 bytes .../work/a_4150868852_3212880686.lin64.o | Bin 9992 -> 15248 bytes xilinx/ALU/isim/work/alu.vdb | Bin 7331 -> 7331 bytes xilinx/ALU/isim/work/bm_data.vdb | Bin 5103 -> 5103 bytes xilinx/ALU/isim/work/bm_instr.vdb | Bin 4033 -> 4033 bytes xilinx/ALU/isim/work/br.vdb | Bin 6251 -> 6251 bytes xilinx/ALU/isim/work/pipeline.vdb | Bin 3621 -> 4185 bytes xilinx/ALU/isim/work/process_test.vdb | Bin 3201 -> 3201 bytes xilinx/ALU/isim/work/processeur.vdb | Bin 25562 -> 31218 bytes xilinx/ALU/pipeline.vhd | 18 +- xilinx/ALU/process_test_isim_beh.wdb | Bin 51420 -> 210954 bytes xilinx/ALU/process_test_isim_beh1.wdb | Bin 0 -> 21205 bytes xilinx/ALU/processeur.bld | 42 + xilinx/ALU/processeur.cmd_log | 3 + xilinx/ALU/processeur.lso | 1 + xilinx/ALU/processeur.ngc | 3 + xilinx/ALU/processeur.ngd | 3 + xilinx/ALU/processeur.ngr | 3 + xilinx/ALU/processeur.prj | 6 + xilinx/ALU/processeur.stx | 0 xilinx/ALU/processeur.syr | 303 +++ xilinx/ALU/processeur.vhd | 542 +++-- xilinx/ALU/processeur.xst | 52 + xilinx/ALU/processeur_envsettings.html | 404 ++++ xilinx/ALU/processeur_map.map | 23 + xilinx/ALU/processeur_map.mrp | 31 + xilinx/ALU/processeur_ngdbuild.xrpt | 67 + xilinx/ALU/processeur_summary.html | 29 +- xilinx/ALU/processeur_xst.xrpt | 129 + xilinx/ALU/webtalk_pn.xml | 43 + xilinx/ALU/xlnx_auto_0_xdb/cst.xbcd | Bin 0 -> 61 bytes xilinx/ALU/xst/work/work.vdbl | Bin 0 -> 57835 bytes xilinx/ALU/xst/work/work.vdbx | Bin 0 -> 168 bytes 70 files changed, 3532 insertions(+), 807 deletions(-) create mode 100644 xilinx/ALU/_ngo/netlist.lst create mode 100644 xilinx/ALU/_xmsgs/map.xmsgs create mode 100644 xilinx/ALU/_xmsgs/ngdbuild.xmsgs create mode 100644 xilinx/ALU/_xmsgs/xst.xmsgs create mode 100755 xilinx/ALU/bm_instr_isim_beh.exe create mode 100644 xilinx/ALU/isim/lockfile1 create mode 100644 xilinx/ALU/isim/process_test_isim_beh.exe.sim/ISimEngine-DesignHierarchy1.dbg create mode 100644 xilinx/ALU/isim/process_test_isim_beh.exe.sim/netId1.dat create mode 100644 xilinx/ALU/process_test_isim_beh1.wdb create mode 100644 xilinx/ALU/processeur.bld create mode 100644 xilinx/ALU/processeur.cmd_log create mode 100644 xilinx/ALU/processeur.lso create mode 100644 xilinx/ALU/processeur.ngc create mode 100644 xilinx/ALU/processeur.ngd create mode 100644 xilinx/ALU/processeur.ngr create mode 100644 xilinx/ALU/processeur.prj create mode 100644 xilinx/ALU/processeur.stx create mode 100644 xilinx/ALU/processeur.syr create mode 100644 xilinx/ALU/processeur.xst create mode 100644 xilinx/ALU/processeur_envsettings.html create mode 100644 xilinx/ALU/processeur_map.map create mode 100644 xilinx/ALU/processeur_map.mrp create mode 100644 xilinx/ALU/processeur_ngdbuild.xrpt create mode 100644 xilinx/ALU/processeur_xst.xrpt create mode 100644 xilinx/ALU/webtalk_pn.xml create mode 100644 xilinx/ALU/xlnx_auto_0_xdb/cst.xbcd create mode 100644 xilinx/ALU/xst/work/work.vdbl create mode 100644 xilinx/ALU/xst/work/work.vdbx diff --git a/xilinx/ALU/ALU.gise b/xilinx/ALU/ALU.gise index 7a6fa15..e76ce05 100644 --- a/xilinx/ALU/ALU.gise +++ b/xilinx/ALU/ALU.gise @@ -22,10 +22,15 @@ + + + + + @@ -37,7 +42,26 @@ + + + + + + + + + + + + + + + + + + + @@ -49,9 +73,13 @@ - + + + + + @@ -64,11 +92,11 @@ - + - + @@ -76,9 +104,14 @@ - + + + + + + @@ -91,9 +124,14 @@ - + + + + + + @@ -101,13 +139,86 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xilinx/ALU/ALU.xise b/xilinx/ALU/ALU.xise index ecd5fc7..99ead22 100644 --- a/xilinx/ALU/ALU.xise +++ b/xilinx/ALU/ALU.xise @@ -17,7 +17,7 @@ - + @@ -27,7 +27,7 @@ - + @@ -37,11 +37,11 @@ - + - + @@ -57,11 +57,11 @@ - + - + diff --git a/xilinx/ALU/_ngo/netlist.lst b/xilinx/ALU/_ngo/netlist.lst new file mode 100644 index 0000000..52fad93 --- /dev/null +++ b/xilinx/ALU/_ngo/netlist.lst @@ -0,0 +1,3 @@ +/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.ngc 1621347280 +/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.ngc 1621347280 +OK diff --git a/xilinx/ALU/_xmsgs/map.xmsgs b/xilinx/ALU/_xmsgs/map.xmsgs new file mode 100644 index 0000000..36d6790 --- /dev/null +++ b/xilinx/ALU/_xmsgs/map.xmsgs @@ -0,0 +1,15 @@ + + + +The design is empty. No processing will be done. + + +Problem encountered processing RPMs. + + + + diff --git a/xilinx/ALU/_xmsgs/ngdbuild.xmsgs b/xilinx/ALU/_xmsgs/ngdbuild.xmsgs new file mode 100644 index 0000000..e7f0f74 --- /dev/null +++ b/xilinx/ALU/_xmsgs/ngdbuild.xmsgs @@ -0,0 +1,12 @@ + + + +Design contains no instances. + + + + diff --git a/xilinx/ALU/_xmsgs/pn_parser.xmsgs b/xilinx/ALU/_xmsgs/pn_parser.xmsgs index 0e8e45c..e6bbd48 100644 --- a/xilinx/ALU/_xmsgs/pn_parser.xmsgs +++ b/xilinx/ALU/_xmsgs/pn_parser.xmsgs @@ -8,7 +8,7 @@ -Parsing VHDL file "/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" into library work +Parsing VHDL file "/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/bm_instr.vhd" into library work diff --git a/xilinx/ALU/_xmsgs/xst.xmsgs b/xilinx/ALU/_xmsgs/xst.xmsgs new file mode 100644 index 0000000..2d3bb0e --- /dev/null +++ b/xilinx/ALU/_xmsgs/xst.xmsgs @@ -0,0 +1,54 @@ + + + +Part-select index evaluated to out of bound value may lead to incorrect synthesis results; it is recommended not to use them in RTL + + +"/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 156. All outputs of instance <addr_instructions> of block <bm_instr> are unconnected in block <processeur>. Underlying logic will be removed. + + +"/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 163. All outputs of instance <LI_LD> of block <pipeline> are unconnected in block <processeur>. Underlying logic will be removed. + + +"/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 184. All outputs of instance <banc_registres> of block <br> are unconnected in block <processeur>. Underlying logic will be removed. + + +"/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 200. All outputs of instance <DI_EX> of block <pipeline> are unconnected in block <processeur>. Underlying logic will be removed. + + +"/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 221. All outputs of instance <UAL> of block <alu> are unconnected in block <processeur>. Underlying logic will be removed. + + +"/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 237. All outputs of instance <EX_Mem> of block <pipeline> are unconnected in block <processeur>. Underlying logic will be removed. + + +"/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 262. All outputs of instance <data_memory> of block <bm_data> are unconnected in block <processeur>. Underlying logic will be removed. + + +"/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 272. All outputs of instance <Mem_RE> of block <pipeline> are unconnected in block <processeur>. Underlying logic will be removed. + + +"/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 221: Output port <N> of the instance <UAL> is unconnected or connected to loadless signal. + + +"/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 221: Output port <O> of the instance <UAL> is unconnected or connected to loadless signal. + + +"/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 221: Output port <Z> of the instance <UAL> is unconnected or connected to loadless signal. + + +"/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 221: Output port <C> of the instance <UAL> is unconnected or connected to loadless signal. + + +"/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 237: Output port <C_OUT> of the instance <EX_Mem> is unconnected or connected to loadless signal. + + +"/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 272: Output port <C_OUT> of the instance <Mem_RE> is unconnected or connected to loadless signal. + + + + diff --git a/xilinx/ALU/bm_instr.vhd b/xilinx/ALU/bm_instr.vhd index a51c05d..fb4057e 100644 --- a/xilinx/ALU/bm_instr.vhd +++ b/xilinx/ALU/bm_instr.vhd @@ -34,12 +34,36 @@ architecture Behavioral of bm_instr is type mem is array (0 to 255) of STD_LOGIC_VECTOR(31 downto 0); -- instruction "00000110 00000001 00000110 00000000" --test afc ---signal instr_memory: mem := (1 => "00000110000000010000001000000000", others =>"00000000000000000000000000000000"); +signal instr_memory: mem := (1 => "00000110000000010000001000000000", others =>"00000000000000000000000000000000"); --test afc cop -signal instr_memory: mem := (1 => "00000110000000010000011000000000", 6 =>"00000101000000100000000100000000", others =>"00000000000000000000000000000000"); +--signal instr_memory: mem := (1 => "00000110000000010000011000000000", 6 =>"00000101000000100000000100000000", others =>"00000000000000000000000000000000"); +--test afc cop alea +--signal instr_memory: mem := (1 => "00000110000000010000011000000000", 2 =>"00000101000000100000000100000000", others =>"00000000000000000000000000000000"); --test add --signal instr_memory: mem := (1 => "00000110000000010000011000000000", 2 => "00000110000000100000000100000000", 10 =>"00000001000000110000000100000010", others =>"00000000000000000000000000000000"); +--test add alea +--signal instr_memory: mem := (1 => "00000110000000010000011000000000", 2 => "00000110000000100000000100000000", 3 =>"00000001000000110000000100000010", others =>"00000000000000000000000000000000"); +--test sub + +--signal instr_memory: mem := (1 => "00000110000000010000011000000000", 2 => "00000110000000100000000100000000", 10 =>"00000011000000110000000100000010", others =>"00000000000000000000000000000000"); + +--test mul + +--signal instr_memory: mem := (1 => "00000110000000010000011000000000", 2 => "00000110000000100000000100000000", 10 =>"00000010000000110000000100000010", others =>"00000000000000000000000000000000"); + +--test store + +--signal instr_memory: mem := (1 => "00000110000000010000011000000000", 10 => "00001000000000000000000100000000", others =>"00000000000000000000000000000000"); + +--test store alea +--signal instr_memory: mem := (1 => "00000110000000010000011000000000", 2 => "00001000000000000000000100000000", others =>"00000000000000000000000000000000"); + +--test load + +--signal instr_memory: mem := (1 => "00000110000000010000011000000000", 6 => "00001000000000000000000100000000", 15 => "00000111000000110000000000000000", others =>"00000000000000000000000000000000"); + + begin OUT_data <= instr_memory(to_integer(unsigned(IN_addr))); diff --git a/xilinx/ALU/bm_instr_isim_beh.exe b/xilinx/ALU/bm_instr_isim_beh.exe new file mode 100755 index 0000000000000000000000000000000000000000..beb9ccd0da76c9db1831f53276aaa98f8c0d76b2 GIT binary patch literal 21792 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 xj~6}U;eh$Z2?rSH$K-zt`so}7qm(}&Design Utilities - + 0 0 000000ff00000000000000010000000100000000000000000000000000000000000000000000000103000000010000000100000000000000000000000064ffffffff000000810000000000000001000001030000000100000000 false - + @@ -81,13 +81,13 @@ /br_test - behavior |home|foussats|Bureau|projet_system|projet_systeme|xilinx|ALU|br_test.vhd - processeur - Behavioral (/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd) + process_test - behavior (/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/process_test.vhd) 0 0 - 000000ff000000000000000100000001000000000000000000000000000000000202000000010000000100000064000001e4000000020000000000000000000000000200000064ffffffff000000810000000300000002000001e40000000100000003000000000000000100000003 + 000000ff000000000000000100000001000000000000000000000000000000000202000000010000000100000064000001f8000000020000000000000000000000000200000064ffffffff000000810000000300000002000001f80000000100000003000000000000000100000003 true - processeur - Behavioral (/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd) + process_test - behavior (/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/process_test.vhd) @@ -107,13 +107,13 @@ 1 - Simulate Behavioral Model + 0 0 000000ff00000000000000010000000100000000000000000000000000000000000000000000000176000000010000000100000000000000000000000064ffffffff000000810000000000000001000001760000000100000000 false - Simulate Behavioral Model + @@ -130,5 +130,5 @@ 000000ff0000000000000002000001a6000000db01000000040100000002 - Behavioral Simulation + Implementation diff --git a/xilinx/ALU/iseconfig/processeur.xreport b/xilinx/ALU/iseconfig/processeur.xreport index a144ac5..0981d4a 100644 --- a/xilinx/ALU/iseconfig/processeur.xreport +++ b/xilinx/ALU/iseconfig/processeur.xreport @@ -1,11 +1,11 @@
- 2021-05-10T10:47:06 + 2021-05-18T16:14:30 processeur Unknown /home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/iseconfig/processeur.xreport - /home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU + /home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/ 2021-05-10T09:34:56 false
diff --git a/xilinx/ALU/isim.log b/xilinx/ALU/isim.log index ac9885d..69c11ff 100644 --- a/xilinx/ALU/isim.log +++ b/xilinx/ALU/isim.log @@ -45,4 +45,74 @@ at 0 ps, Instance /process_test/uut/banc_registres/ : Warning: NUMERIC_STD.TO_IN at 5 ns(1), Instance /process_test/uut/data_memory/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 at 15 ns(1), Instance /process_test/uut/data_memory/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 at 25 ns(1), Instance /process_test/uut/data_memory/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +ISim O.87xd (signature 0x8ddf5b5d) +WARNING: A WEBPACK license was found. +WARNING: Please use Xilinx License Configuration Manager to check out a full ISim license. +WARNING: ISim will run in Lite mode. Please refer to the ISim documentation for more information on the differences between the Lite and the Full version. +This is a Lite version of ISim. +# run 1000 ns +Simulator is doing circuit initialization process. +at 0 ps, Instance /process_test/uut/banc_registres/ : Warning: There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, the result will be 'X'(es). +Finished circuit initialization process. +at 0 ps, Instance /process_test/uut/banc_registres/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +at 0 ps, Instance /process_test/uut/banc_registres/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +at 5 ns(1), Instance /process_test/uut/data_memory/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +at 15 ns(1), Instance /process_test/uut/data_memory/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +at 25 ns(1), Instance /process_test/uut/data_memory/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +ISim O.87xd (signature 0x8ddf5b5d) +WARNING: A WEBPACK license was found. +WARNING: Please use Xilinx License Configuration Manager to check out a full ISim license. +WARNING: ISim will run in Lite mode. Please refer to the ISim documentation for more information on the differences between the Lite and the Full version. +This is a Lite version of ISim. +# run 1000 ns +Simulator is doing circuit initialization process. +at 0 ps, Instance /process_test/uut/banc_registres/ : Warning: There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, the result will be 'X'(es). +Finished circuit initialization process. +at 0 ps, Instance /process_test/uut/banc_registres/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +at 0 ps, Instance /process_test/uut/banc_registres/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +at 5 ns(1), Instance /process_test/uut/data_memory/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +at 15 ns(1), Instance /process_test/uut/data_memory/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +at 25 ns(1), Instance /process_test/uut/data_memory/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +ISim O.87xd (signature 0x8ddf5b5d) +WARNING: A WEBPACK license was found. +WARNING: Please use Xilinx License Configuration Manager to check out a full ISim license. +WARNING: ISim will run in Lite mode. Please refer to the ISim documentation for more information on the differences between the Lite and the Full version. +This is a Lite version of ISim. +# run 1000 ns +Simulator is doing circuit initialization process. +at 0 ps, Instance /process_test/uut/banc_registres/ : Warning: There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, the result will be 'X'(es). +Finished circuit initialization process. +at 0 ps, Instance /process_test/uut/banc_registres/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +at 0 ps, Instance /process_test/uut/banc_registres/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +at 5 ns(1), Instance /process_test/uut/data_memory/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +at 15 ns(1), Instance /process_test/uut/data_memory/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +at 25 ns(1), Instance /process_test/uut/data_memory/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +ISim O.87xd (signature 0x8ddf5b5d) +WARNING: A WEBPACK license was found. +WARNING: Please use Xilinx License Configuration Manager to check out a full ISim license. +WARNING: ISim will run in Lite mode. Please refer to the ISim documentation for more information on the differences between the Lite and the Full version. +This is a Lite version of ISim. +# run 1000 ns +Simulator is doing circuit initialization process. +at 0 ps, Instance /process_test/uut/banc_registres/ : Warning: There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, the result will be 'X'(es). +Finished circuit initialization process. +at 0 ps, Instance /process_test/uut/banc_registres/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +at 0 ps, Instance /process_test/uut/banc_registres/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +at 5 ns(1), Instance /process_test/uut/data_memory/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +at 15 ns(1), Instance /process_test/uut/data_memory/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +at 25 ns(1), Instance /process_test/uut/data_memory/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +ISim O.87xd (signature 0x8ddf5b5d) +WARNING: A WEBPACK license was found. +WARNING: Please use Xilinx License Configuration Manager to check out a full ISim license. +WARNING: ISim will run in Lite mode. Please refer to the ISim documentation for more information on the differences between the Lite and the Full version. +This is a Lite version of ISim. +# run 1000 ns +Simulator is doing circuit initialization process. +at 0 ps, Instance /process_test/uut/banc_registres/ : Warning: There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, the result will be 'X'(es). +Finished circuit initialization process. +at 0 ps, Instance /process_test/uut/banc_registres/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +at 0 ps, Instance /process_test/uut/banc_registres/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +at 5 ns(1), Instance /process_test/uut/data_memory/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +at 15 ns(1), Instance /process_test/uut/data_memory/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 +at 25 ns(1), Instance /process_test/uut/data_memory/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0 # exit 0 diff --git a/xilinx/ALU/isim/isim_usage_statistics.html b/xilinx/ALU/isim/isim_usage_statistics.html index 8db4a1e..be08e85 100644 --- a/xilinx/ALU/isim/isim_usage_statistics.html +++ b/xilinx/ALU/isim/isim_usage_statistics.html @@ -2,14 +2,14 @@ ISim Statistics Xilinx HDL Libraries Used=ieee -Fuse Resource Usage=850 ms, 1723208 KB +Fuse Resource Usage=980 ms, 1723384 KB -Total Signals=109 -Total Nets=10695 +Total Signals=121 +Total Nets=10703 Total Blocks=14 -Total Processes=31 +Total Processes=36 Total Simulation Time=1 us -Simulation Resource Usage=0.04 sec, 264146 KB +Simulation Resource Usage=0.03 sec, 264171 KB Simulation Mode=gui Hardware CoSim=0 diff --git a/xilinx/ALU/isim/lockfile1 b/xilinx/ALU/isim/lockfile1 new file mode 100644 index 0000000..e69de29 diff --git a/xilinx/ALU/isim/precompiled.exe.sim/ieee/p_1242562249.didat b/xilinx/ALU/isim/precompiled.exe.sim/ieee/p_1242562249.didat index 286651d2a929f7c72fd3233786c936eb4c479259..c8d812ba98788cea4df10acc6a6b5ae94824af8b 100644 GIT binary patch delta 39 ucmX@&bi|20Hu`?A&zZ#=*;P4sa^`o~{i|nS2m#WY8JTk!H!tB_APxXUNDn3e delta 39 ucmX@&bi|20Hu`>V7Wd4J?5Z3*I-=>b|JO4xhydx$jLbQVo0o7d5C;GqTMb?S diff --git a/xilinx/ALU/isim/precompiled.exe.sim/ieee/p_2592010699.didat b/xilinx/ALU/isim/precompiled.exe.sim/ieee/p_2592010699.didat index b00d7b6751457706498cbeee8c5255c7cbe3a55b..d65ad9e8648aa8090ec35fc68a41e24b1ad71c55 100644 GIT binary patch delta 168 zcmcbjdqtN$Hu`?A&zZ#=*-g1j1Wt=FF)=VONHQ`o6wH)lVg|Amf$Ry(C7D=&Y;7QW z!&XTqRv_CH$WGvwW14)CQDO1~E*GAh`5kuu>KPb9fb`@CTr#Kv9NcIE2IvA2Xabu* NGUYICe#7&E69BSyGLrxR delta 167 zcmcbjdqtN$Hu`>V7Wd4J?514C3fiWOObiSRl8g)t4L{8pnSpFYAbSD31tSZPtqo)! z5Vc@r1+q|$@V7Wd4J>^s?cbVSo<|F36Y5CPJY&#=p&3M^!Dm>j^!!f}&V7Wd4J>=!uzIs^ut diff --git a/xilinx/ALU/isim/process_test_isim_beh.exe.sim/ISimEngine-DesignHierarchy.dbg b/xilinx/ALU/isim/process_test_isim_beh.exe.sim/ISimEngine-DesignHierarchy.dbg index c4844f4838c76e9d4a36812398e7dbe27be33e35..536614afe315c0f67d7cf004871ff6fa89545e69 100644 GIT binary patch literal 19887 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 McwNZWMW1i~U+bvOg8%>k literal 18885 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 literal 0 HcmV?d00001 diff --git a/xilinx/ALU/isim/process_test_isim_beh.exe.sim/isimkernel.log b/xilinx/ALU/isim/process_test_isim_beh.exe.sim/isimkernel.log index 43b3bf6..86c6e6a 100644 --- a/xilinx/ALU/isim/process_test_isim_beh.exe.sim/isimkernel.log +++ b/xilinx/ALU/isim/process_test_isim_beh.exe.sim/isimkernel.log @@ -2,28 +2,28 @@ Command line: process_test_isim_beh.exe -simmode gui -simrunnum 0 - -socket 43981 + -socket 37953 -Mon May 10 12:31:07 2021 +Tue May 18 16:16:44 2021 Elaboration Time: 0.01 sec - Current Memory Usage: 189.698 Meg + Current Memory Usage: 189.723 Meg - Total Signals : 109 - Total Nets : 10695 - Total Signal Drivers : 44 + Total Signals : 121 + Total Nets : 10703 + Total Signal Drivers : 49 Total Blocks : 14 Total Primitive Blocks : 12 - Total Processes : 31 + Total Processes : 36 Total Traceable Variables : 16 - Total Scalar Nets and Variables : 11197 -Total Line Count : 66 + Total Scalar Nets and Variables : 11205 +Total Line Count : 92 - Total Simulation Time: 0.04 sec + Total Simulation Time: 0.03 sec - Current Memory Usage: 265.2 Meg + Current Memory Usage: 265.224 Meg -Mon May 10 12:32:41 2021 +Tue May 18 16:20:51 2021 diff --git a/xilinx/ALU/isim/process_test_isim_beh.exe.sim/netId.dat b/xilinx/ALU/isim/process_test_isim_beh.exe.sim/netId.dat index b6daf1e97f46d9f56fd54a60accfea2fd346ab9e..2d79219d0c4fac30d985f54b5b1866e26bdfbe03 100644 GIT binary patch literal 636 zcmZ9JzbnLX7{?!XQf|1ojg94UF2x{hYz_nE%5ueaHp;KnV51}kVYs?WS1gxwDH0aR zV7Rc_{QMWZp6>lw?x|Pr&+GenKA&&j=bJXO3GkYPCYXZzUb9)!D*~;s4!^JhU$6?_ zum(S{0e`RyUg6wcU9FoOg(G>2?1w|S@Atroe1IH=l6;IDhf{fmoQAS|hMa>(dFX$V zhyG`Ig6x2re1Xivt9+4Mf_M2c>E9UfAyJ{fMgGFGH)xiJ^KtnBd&kfw-(tND3Hc7| zeMmL*ryKhF1%LHkjB6Yk`lBx?TyU^r(0 literal 564 zcmX|-y)Q#y9EE>uY%Ee1t#rVoTSqn@9cpM|k+89`F*mjn10vE6O^HYu1PfvkvD)}A zL`;qFobBnQ*5Cm|Cs1vLrL`*GNp zkOCCpNJ3^{7LFxk4$5#MA&amC_Y#u!k6r!WKiLQA3_ROc={0zbYJHZ(gf|bQ8jU}xuQMtD diff --git a/xilinx/ALU/isim/process_test_isim_beh.exe.sim/netId1.dat b/xilinx/ALU/isim/process_test_isim_beh.exe.sim/netId1.dat new file mode 100644 index 0000000000000000000000000000000000000000..f395b6972d1f8da4cdb33c785f40fb5a8593ee35 GIT binary patch literal 28 acmZQ(U|{eDVi52FVn!hL1>z&x3=9AgJptGN literal 0 HcmV?d00001 diff --git a/xilinx/ALU/isim/process_test_isim_beh.exe.sim/process_test_isim_beh.exe b/xilinx/ALU/isim/process_test_isim_beh.exe.sim/process_test_isim_beh.exe index b761c0b42abfe294090e085ec4f887807a50964d..e7c07617a83cd24893e035b726c71d8d98860b3e 100755 GIT binary patch delta 53633 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 IZEne_zk817i~s-t diff --git a/xilinx/ALU/isim/process_test_isim_beh.exe.sim/tmp_save/_1 b/xilinx/ALU/isim/process_test_isim_beh.exe.sim/tmp_save/_1 index d89b164ed5a9d50dbec174ea3fd7f70c84c6299b..6b6e6b4fa363125391d275cfd4d7f1d7f76ff661 100644 GIT binary patch delta 1472 zcmcIkO-xfk5bo@2Z66@kv?P!aQpDE!1D2!;L`3XG5EW4o|81>N8nr+b(NiHry_i@s zF{_CQ5;<`2f<5#=Oo$;GrBMq6ubzx2qc<-Gcc+iOzLYDQyl>xpJ2T(RY+uJ8+CDtC zCCcIcbVWCWi%j`zT`U}cT6~`lf{G)|8M5UGuE%?kRKd3y9}creJ?o($a^f+iN@~C+ zq1K%Is8j+ftS#xbL|7bThaizruWo6|w>-|X2Dfbu&THU=VcM=S3T2bb4)Mr7S$5%P ztH-fZ*iuvX+J&=LzoWK*uM@lzRh!qcTb#MXZPj1|9yolOC(G&7;~!fZzpHVlqDkd# zN;0EPRVDv=EiZBOQxi@u)q@`=mi(|sqGzum9gU+wqq1`mhN+PPnk3@%d=yLP-LM~v z=e^J(vFv~$B0JsI)%&hKsGaH+2Mi40?AI6!4GIeN_KG7po=e31wvz?UW_-ZxKm3upZzcRk|lUlsq?WqE$yMQ@e!1R#L8GNzO z0cQ!%;m~3L&P%jh5dQYD5eH@#yWwK4giBOvV%bdh5~LI%*{|n{CXgK(-Ah=b^iHo* zc*{x*rD)GuTz7?f@uD^*N9j= zcxZfw^`Z@4L@yc^4X7Y^Xh9O8rbEeAGCR9yH_>&L3>M!n(z2PygIeoQI@35)cn{hz2on1{>*>M(@Wn)5%8 z=2vZ8#`o4Bc=4Sz1U@`s>(RCfI}gr5D;8~c*89Z_M3;d`Z5zQONtm~Lal&4(E3zVU zQ_N{caU&M&IWyj-6`+l3gaEUh*+Fz|7Y21t_U+`f&I}SU`5}z4vKK-aE&E{y(cM*B zC~+~em`T!3@w5xWRo&NJ%hpQ`FH?A66S;%+o}C{CVj+K0~wak$PbwqIOnvGN|8oYMH|3=V-BZUL+(;RkoOgg>S3O z`-_?f7r#8g8Ec0ty>d~8s~BZoVvZ5>Q>x8LPNK~kS7jK7CgX<;8ORt>1=8@^c&Uh) z!)Q@q6S#~%6*j{LgbXe8-<00iVcdc`I4RPh6nF%xqcqkGy*Y}T L)1}xNxBVHuubp>=RiS|4)9%B0PBwiwT(J4&~dh0{NQ@S+{dCa!uCcR|k@T eV6qZSE(DV&!Q@B&<4j!jlQ%MoZN4Dj!vg@GV<0F1 diff --git a/xilinx/ALU/isim/process_test_isim_beh.exe.sim/work/a_1229531095_2372691052.didat b/xilinx/ALU/isim/process_test_isim_beh.exe.sim/work/a_1229531095_2372691052.didat index dab3502f47baad6f799f2806fb6ec8df6ead743c..762b5df800c84194e51d6be52c4e6a7fb3a503fb 100644 GIT binary patch delta 41 ucmeB?>5*ZNjlSROb7t{I_MOa(|0W+~b_bKfn`KyLaWV%^44b@@Hy8k3Y7h

5*ZNjlSQT%{_A?`%Y%Y|C0|gyMsyL%`z;rIGH`JaZTRI8w>zR%nwum diff --git a/xilinx/ALU/isim/process_test_isim_beh.exe.sim/work/a_1466808984_3212880686.didat b/xilinx/ALU/isim/process_test_isim_beh.exe.sim/work/a_1466808984_3212880686.didat index d0b248fe19bcd08f8e46d819f9ea518647d8eb97..af53ca489e21e5282a7a5fb082393d84203ab1ba 100644 GIT binary patch delta 88 zcmX@2cSMgpHu`?A&zZ#=**#ep|4j~LaR-yalh?4A09g-N`WgRiE@bUzVho$i$f3>} mR?on|G;yNvW(N)vMxLDc9d`eKA|XI}Gb39L|P delta 88 zcmX@2cSMgpHu`>VHuubp?4B%)|0f5sxPwXI$!l0lfUJis{fz%N7qa#+02V7Wd4J?4B%)|0f5sxPwVyR(2)^293!ZS)v(rH}kR@Gcj^)c4W6^ z%kWYGZ Q1K(7+$qBrTlSOsi0Y_&Y&;S4c diff --git a/xilinx/ALU/isim/process_test_isim_beh.exe.sim/work/a_1802466774_3212880686.lin64.o b/xilinx/ALU/isim/process_test_isim_beh.exe.sim/work/a_1802466774_3212880686.lin64.o index 921e541f8fd6ab2eb22ea53b6a3f8f25d628c844..9f0b3a385ef5806476d8526dabe71f363ad47b89 100644 GIT binary patch delta 12 TcmaDM{z80$Kcn-;fEnBXBDDm@ delta 12 TcmaDM{z80$Kcnu(fEnBXB1Z(U diff --git a/xilinx/ALU/isim/process_test_isim_beh.exe.sim/work/a_3650175700_3212880686.c b/xilinx/ALU/isim/process_test_isim_beh.exe.sim/work/a_3650175700_3212880686.c index 4990355..e98aa6a 100644 --- a/xilinx/ALU/isim/process_test_isim_beh.exe.sim/work/a_3650175700_3212880686.c +++ b/xilinx/ALU/isim/process_test_isim_beh.exe.sim/work/a_3650175700_3212880686.c @@ -34,67 +34,74 @@ static void work_a_3650175700_3212880686_p_0(char *t0) char *t3; unsigned char t4; char *t5; - char *t6; + unsigned char t6; char *t7; char *t8; + char *t9; + char *t10; -LAB0: t1 = (t0 + 3464U); +LAB0: t1 = (t0 + 3624U); t2 = *((char **)t1); if (t2 == 0) goto LAB2; LAB3: goto *t2; -LAB2: xsi_set_current_line(49, ng0); +LAB2: xsi_set_current_line(50, ng0); -LAB6: t2 = (t0 + 3784); +LAB6: t2 = (t0 + 3944); *((int *)t2) = 1; *((char **)t1) = &&LAB7; LAB1: return; -LAB4: t5 = (t0 + 3784); +LAB4: t5 = (t0 + 3944); *((int *)t5) = 0; - xsi_set_current_line(50, ng0); - t2 = (t0 + 1032U); - t3 = *((char **)t2); - t2 = (t0 + 3864); - t5 = (t2 + 56U); - t6 = *((char **)t5); - t7 = (t6 + 56U); - t8 = *((char **)t7); - memcpy(t8, t3, 8U); - xsi_driver_first_trans_fast_port(t2); xsi_set_current_line(51, ng0); - t2 = (t0 + 1192U); + t2 = (t0 + 1832U); t3 = *((char **)t2); - t2 = (t0 + 3928); - t5 = (t2 + 56U); - t6 = *((char **)t5); - t7 = (t6 + 56U); + t4 = *((unsigned char *)t3); + t6 = (t4 == (unsigned char)3); + if (t6 != 0) + goto LAB8; + +LAB10: xsi_set_current_line(57, ng0); + t2 = (t0 + 6674); + t5 = (t0 + 4024); + t7 = (t5 + 56U); t8 = *((char **)t7); - memcpy(t8, t3, 8U); - xsi_driver_first_trans_fast_port(t2); - xsi_set_current_line(52, ng0); - t2 = (t0 + 1352U); - t3 = *((char **)t2); - t2 = (t0 + 3992); - t5 = (t2 + 56U); - t6 = *((char **)t5); - t7 = (t6 + 56U); + t9 = (t8 + 56U); + t10 = *((char **)t9); + memcpy(t10, t2, 8U); + xsi_driver_first_trans_fast_port(t5); + xsi_set_current_line(58, ng0); + t2 = (t0 + 6682); + t5 = (t0 + 4088); + t7 = (t5 + 56U); t8 = *((char **)t7); - memcpy(t8, t3, 8U); - xsi_driver_first_trans_fast_port(t2); - xsi_set_current_line(53, ng0); - t2 = (t0 + 1512U); - t3 = *((char **)t2); - t2 = (t0 + 4056); - t5 = (t2 + 56U); - t6 = *((char **)t5); - t7 = (t6 + 56U); + t9 = (t8 + 56U); + t10 = *((char **)t9); + memcpy(t10, t2, 8U); + xsi_driver_first_trans_fast_port(t5); + xsi_set_current_line(59, ng0); + t2 = (t0 + 6690); + t5 = (t0 + 4152); + t7 = (t5 + 56U); t8 = *((char **)t7); - memcpy(t8, t3, 8U); - xsi_driver_first_trans_fast_port(t2); - goto LAB2; + t9 = (t8 + 56U); + t10 = *((char **)t9); + memcpy(t10, t2, 8U); + xsi_driver_first_trans_fast_port(t5); + xsi_set_current_line(60, ng0); + t2 = (t0 + 6698); + t5 = (t0 + 4216); + t7 = (t5 + 56U); + t8 = *((char **)t7); + t9 = (t8 + 56U); + t10 = *((char **)t9); + memcpy(t10, t2, 8U); + xsi_driver_first_trans_fast_port(t5); + +LAB9: goto LAB2; LAB5: t3 = (t0 + 1632U); t4 = ieee_p_2592010699_sub_2763492388968962707_503743352(IEEE_P_2592010699, t3, 0U, 0U); @@ -105,6 +112,48 @@ LAB5: t3 = (t0 + 1632U); LAB7: goto LAB5; +LAB8: xsi_set_current_line(52, ng0); + t2 = (t0 + 1032U); + t5 = *((char **)t2); + t2 = (t0 + 4024); + t7 = (t2 + 56U); + t8 = *((char **)t7); + t9 = (t8 + 56U); + t10 = *((char **)t9); + memcpy(t10, t5, 8U); + xsi_driver_first_trans_fast_port(t2); + xsi_set_current_line(53, ng0); + t2 = (t0 + 1192U); + t3 = *((char **)t2); + t2 = (t0 + 4088); + t5 = (t2 + 56U); + t7 = *((char **)t5); + t8 = (t7 + 56U); + t9 = *((char **)t8); + memcpy(t9, t3, 8U); + xsi_driver_first_trans_fast_port(t2); + xsi_set_current_line(54, ng0); + t2 = (t0 + 1352U); + t3 = *((char **)t2); + t2 = (t0 + 4152); + t5 = (t2 + 56U); + t7 = *((char **)t5); + t8 = (t7 + 56U); + t9 = *((char **)t8); + memcpy(t9, t3, 8U); + xsi_driver_first_trans_fast_port(t2); + xsi_set_current_line(55, ng0); + t2 = (t0 + 1512U); + t3 = *((char **)t2); + t2 = (t0 + 4216); + t5 = (t2 + 56U); + t7 = *((char **)t5); + t8 = (t7 + 56U); + t9 = *((char **)t8); + memcpy(t9, t3, 8U); + xsi_driver_first_trans_fast_port(t2); + goto LAB9; + } diff --git a/xilinx/ALU/isim/process_test_isim_beh.exe.sim/work/a_3650175700_3212880686.didat b/xilinx/ALU/isim/process_test_isim_beh.exe.sim/work/a_3650175700_3212880686.didat index 767be673c3182f7405bd267d3c8bb8d1ab72c46d..7f21f6817bda259f1c6441669c5cfae9fe953c76 100644 GIT binary patch delta 668 zcmaix%_~Gv7{=doXYROT${3%+ESRxil#-9R!;F$9q^p!NgrX=5$?-juQ- zi%GHITKESn)cgUnP&Trnuo|i1Ik|Tz3s3#dIq%bX&--+5w(%fTJv)8BYh+L62>L9M zE73r@x?wbdVjE<^3#ihF3>VQISjKrBB-}(#z*$NZ1qPS|Yv2f+0jYd?vnl0A(PA0j zHqn;nhaH@+E%IIrFDKfw@cW1)OA65g$YE$40hX~}fnoHGfxMi7T}pa3DC>)bZ5D@f zp9lyKZ;D!873+0YKgFCxc$$24!fj>YO1gCf zY={43&bvMY&v-Rn(5l1)A8VCC8B0d!x4=ddDY<^j&F5Mm{M)hr4PO1*X})UXN?2a$ v0G*%h$vr(8bmw|lJbvOEg$>>(`{O% delta 572 zcmaLTze@u#6bJB^wAbEUQLor4TEt%kEeQUq)}cZNu}cdD2L%-z1VtSD1H>Y@3YOqJqg!m&Yg0~K(aL>3Ie94v#1%iMNvwul8~_#1H_ zQQZ{27aXZ3q7pniQWlZ2Dv^Ud)Oo{&!sypkP3+U*5(k!@LsjkvQTy+}nW!He=SdL~ zCU1*Y-VmE@c;HvOx`A!%m$O0?J+BQAp)b_~M^j6xK~>}%hNw9gxpLd38% Pz!^hl%R1r*Yg*7J!4y+N diff --git a/xilinx/ALU/isim/process_test_isim_beh.exe.sim/work/a_3650175700_3212880686.lin64.o b/xilinx/ALU/isim/process_test_isim_beh.exe.sim/work/a_3650175700_3212880686.lin64.o index 5d6c3455d0037ca761f9dca3b69e2f8b2c6a15a9..7ce73b31236739fe58144876dbc0fb7ec7d945d2 100644 GIT binary patch delta 1044 zcmZ`&O=uHA7@e7Inq)UIZBw#o&?=s`J(T`vnySPiD2rIFmm(_SsT6t%c=2S^^k5SM zUB8Ry#iL$yOD;tZMT9ExB3{K3JX!FNiin^Xzi)Oo9a}Q6^Jd=n-prfbSvS)hT(LyK zaE1>=tbL5J#L}2^VW_x}V2tC`u7=*XS}l9IMAa*A-j=9B&8{9LSf9Y|D~;?*$qF-e zJEtXyZUMkNpA(;af}rMrcxU1X!NyX&Cd2YtqX}5Y?aF>tNp7RtJ;{rBB9ijF>yC$dKyNY6R zqIM%R!}%?6x=nr$wy}Q(ud#O}^HMUOB=bcw--sEA)0M!6=VAT${K2b1tshpyCLe@5 zVRPVQ2hAC&nI#RsD#!CuU+$oHq~@{Itas3CNX-YS`O!i1n>59cpxj>aBw~))A}s_ zPSk7-K1Q?f&ahxqPfIN5Y4JorS8t6t|Jk;SV!gUSG2xSenMG6{*C04K= b%L^Cl2o0_YOfIcx464L#NYW`5brG?`k>jK$Z-fnU-6IOQK|bPC)X&_18pu55K*C!xkN{ zmgx|oa|EtTb(HF^Ii+7;ELj?hS2NZGAsRFX6mkSR7*D`0D&$rtHJvnc@}ZNqPONZ- zHDTDs7=;GL8BVf`e1~`_etf%a+$BG&29Epu<7>YhHzjxtJY}f28F3=`?Rff diff --git a/xilinx/ALU/isim/process_test_isim_beh.exe.sim/work/a_3998322972_3212880686.didat b/xilinx/ALU/isim/process_test_isim_beh.exe.sim/work/a_3998322972_3212880686.didat index 01c76924be1d4302bacbbc30dfe472e571e9ccf2..a7f58df97121f6a622232e86e765be3ba497f138 100644 GIT binary patch delta 99 zcmdm@u|zj_9S5Foudkv)fT^BLX@HULBWBcT8Q delta 99 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 diff --git a/xilinx/ALU/isim/process_test_isim_beh.exe.sim/work/a_4150868852_3212880686.lin64.o b/xilinx/ALU/isim/process_test_isim_beh.exe.sim/work/a_4150868852_3212880686.lin64.o index ef6a22de259b881df43aca7e2e3ff2a2677fffec..133b7fc36f47276f9100c183c9ebbc2d9182ea58 100644 GIT binary patch literal 15248 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 literal 9992 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 diff --git a/xilinx/ALU/isim/work/alu.vdb b/xilinx/ALU/isim/work/alu.vdb index 3d69e0f1d68f78ca62f987074beeb9c140d5d3ed..7fd0bbf432ab039bc6656db73cf18d46f10bdfd6 100644 GIT binary patch delta 47 xcmZ2%x!6)fC`X=|je%hS0}wo^l4s`dKC^hENGdxskltLwp3ekkyyM&|1OPW%4;TOd delta 47 xcmZ2%x!6)fC`X=|je%hS0}wo^l4s_~;-0xtB$b^RNN=uT&u0QN-f?af0st674HN(X diff --git a/xilinx/ALU/isim/work/bm_data.vdb b/xilinx/ALU/isim/work/bm_data.vdb index c50550aad6776f9b865c322b08aa71b6498342b0..a700e50f260bd32e4b3e87843c060f6d17b9c0bf 100644 GIT binary patch delta 47 xcmaE_{$5=~C`X=|je%hS0}wo^l4s`dKC^hEh#WgJklt*{Zp#8@lyX;b002I~4iW$W delta 47 wcmaE_{$5=~C`X=|je%hS0}wo^l4s_~;-0xtM2?*qNN+Y}w`Bn{O1Y~z03W9e4gdfE diff --git a/xilinx/ALU/isim/work/bm_instr.vdb b/xilinx/ALU/isim/work/bm_instr.vdb index a590406580aa17a322a543f6736f3d794d9a48b9..4e2ada01809240a270cb53b1ccb530a6ca2ebbeb 100644 GIT binary patch delta 368 zcmX>oe^6dTC`X=|je%hS0}wo^l4s`dKC^hENIDxckltL!mcz_wIr%l`B{25@7bjze zB~T$VNHq{J0x=sW149D?!vUB$NUo=&=Pw7427(!AQnQixAnmnie2|_wAhF4YJf^BJ zL(x@ofs_FOOr^-=`8=GOi{M}(h}F!<#K3@V-x9Fd7kPw%{xakdo&1YOL(Cay63k0r vV;g{qoF`lGs>{NpKn?(U^Z<+xQBlLI%!?|rhF1|yoe^6dTC`X=|je%hS0}wo^l4s_~;-0xtB%O^JNN=uV%VB2JnEaaa5}12{i<2=! z1E`Q0q#6hqftZbxfuVtc;Q&k=B-hi?^Opli1HlY5so6+;koHFkLcuIJQ`xUK(k<8 x0vp=^RHQrEf>&J@CIxZ;(4z-ne29t~US(cXku|)EXd<_GS;BYkIQ|7ADGU#*!$*x$A?arQdb3%XMwadOW5X8mRv?Dp!NiiSs?Hq2pAZF3`GWp z13Hucu(~tqOm<<@_WZ`gz;G9czXCBb0I3BDeTRyJXpmSvNI#GUu|WVN?GHB7k5Lh5 zW&xwT6eGILAjJ(}MZ)aLa{53XOgoSX=4=4b@As{}_ib_ryS5%Hkmm^0UK0%Dd925>5~_-3rB)%>ua&? z@4W{U0-0b86u>Y6CJ0i!ctx*m!xNAJKmbzNfTW8B$oF@3aJrfljm@#3N=1MlQNy0&nXU!<_BC?m_$Q>7J&S$hGdu8 delta 56 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 diff --git a/xilinx/ALU/pipeline.vhd b/xilinx/ALU/pipeline.vhd index 7159219..44f2934 100644 --- a/xilinx/ALU/pipeline.vhd +++ b/xilinx/ALU/pipeline.vhd @@ -35,6 +35,7 @@ entity pipeline is B_IN : in STD_LOGIC_VECTOR (7 downto 0); C_IN : in STD_LOGIC_VECTOR (7 downto 0); CLK : in STD_LOGIC; + EN : in STD_LOGIC; OP_OUT : out STD_LOGIC_VECTOR (7 downto 0); A_OUT : out STD_LOGIC_VECTOR (7 downto 0); B_OUT : out STD_LOGIC_VECTOR (7 downto 0); @@ -47,10 +48,17 @@ begin process begin wait until rising_edge(CLK); - OP_OUT <= OP_IN; - A_OUT <= A_IN; - B_OUT <= B_IN; - C_OUT <= C_IN; - end process; + if (EN = '1') then + OP_OUT <= OP_IN; + A_OUT <= A_IN; + B_OUT <= B_IN; + C_OUT <= C_IN; + else + OP_OUT <= "00000000"; + A_OUT <= "00000000"; + B_OUT <= "00000000"; + C_OUT <= "00000000"; + end if; + end process; end Behavioral; diff --git a/xilinx/ALU/process_test_isim_beh.wdb b/xilinx/ALU/process_test_isim_beh.wdb index 6c339fb7203133da645434caf7256a2d883a5156..9119173241843a93f1ce017783ddc8d299c85618 100644 GIT binary patch literal 210954 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 Wr-$Ryrwnl;zJ$kxY+j7`_WuQ?1Yh+4 literal 51420 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 diff --git a/xilinx/ALU/process_test_isim_beh1.wdb b/xilinx/ALU/process_test_isim_beh1.wdb new file mode 100644 index 0000000000000000000000000000000000000000..d98a43d4a1846554ff7525c1b45e41c087991db8 GIT binary patch literal 21205 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[EE58GWCF\LN=7AALKDF4?II@AJKG46A!86zg[I2TT\8;0_E\JG^G[PWGD\VDLOh5\HSGD[HOIWZCQI;5\OTP@A3=T\H^^_95[YQG`?PUBZV\B_DLCE89UM@QX\PZN=i5WIMKM\(^CJ):%=-][UC"3*4&F[JCB:6Vkb^Kg55=_ldUFmga}Vdppmjh682RoaRCfnnpUawungg90T~z<;XGPe>vugjoxh{}109{g3ukp8<&? m|g207yEFwi2JKt?65F;095~U6<38=6<951265700=:;22.9?7<=;|Q27?4128=1=>:9344967>?82n947>51;3xW42=:?0:;7?<47162?450>l0zY?k:182>4<7sZ;?6?8516827104=?09>59i;%02>40<,821>45m2983>7<729qC>=5+1g81<>"6k3:0(753-Xnzd}foo8#5+420).?o6!golg,bjst{h~x#O{}e`w,twimm}Uxu~zjm.rqkocsWzsxxhcj/ykomk~(IE_$|alerqfqw(ioj;0>h59smz22fu`;;>&?<>4BTKO@ZRFZNO_M_MG3:AOO1=DDB:=7NBD1925?FJL:>:>7NBD2Y:8GIM5P82;96MCK826?FJLI8=0OAEN1E04?FJLI8N?;6MCK@3G<0=DDBH:96MCKB36?FJLL8?0OAEKVb9@HNBQWMC]EIK:;BNHB]>BUKVY^ONK\SGWO<>C_XHDOII?>;DZSEKBBLVHHHRHFLD37?@^WIGNNHRM@NRVQELHS[8;0IU^NNEGG[LUBWOCGI55IIMGMEHCc3OCGICOBE^PLKQcI)0>roSA:4P@PW2>VTLFDN?6\\T038WMTBOVOSX_OLT^LDG`=T@[OLS@GA_RKYA3=T\H^^_95[YQG`?PUBZV\B_DLCE89UM@QX\PZN=i5WIMKM\(^CJ):%=-][UC"3*4&F[JCB:6Vkb^Kgb>^c`VZye`Xjrrklj4674??oqe?84>;o15>3=#;:08>6s\19803?4?289?:>;9:30;<5=T:;0857?51265700=:;2h<6]>8;1:>4<6;=<89;4=29a1?a5f290:6;9:30;3c=#=39i7E?n;wV2f?6=93;1>v]>9;14>7>=9:>=?88523:4b>"4938?7[=;:3yv60<63|8=6=5r$3;90>"6m3:0(52;296~N482.9j7=n;%0g>6=#:j0846*>f;08 76=;h1b:7>5;h0a>5<<{?0;6o5r}of94?7|ugo1<7?t}|~DEE|980n>ihm6g4~DED|8tJK\vsO@ \ No newline at end of file diff --git a/xilinx/ALU/processeur.ngr b/xilinx/ALU/processeur.ngr new file mode 100644 index 0000000..a2895f4 --- /dev/null +++ b/xilinx/ALU/processeur.ngr @@ -0,0 +1,3 @@ +XILINX-XDB 0.1 STUB 0.1 ASCII +XILINX-XDM V1.6e +$0:x0f=(`fgn#kazsrcww*Drzlk~#}|`jdv\w|usmd%{~bdjt^qzwqcjm&rb`d`w/@NV+uthklyxix|!viff?3ukp8!1!QWQG&7&8*J_NGF1d9[WQYNEYFNAH@[AUKLJZEHFZ^YMD@[S028\VRXZ]FT\_A_ESVZ2>^cjVCo==5Wdl]Neoiu^lxxeb`>0:ZgiZKnffx]i}foo18\vr>3QyK@akemc8twidmzyny?>;ya5wi~6>$9&o~i<25CDue:9344967>?8rd:>7?4n0192>"693o0q^=51585>453>:?=6?<7819g53<7280:w^:51585>453>:?=6?<7819uB<<7280:6=u\4;37>3<6;=<89;4=29:3?!b==2.<6<5m1783>7<729qGj7?t$6823>{K9909w)o50:la>75=831vqpsO@By`>g37>=i>qMNM{1CDU}zHI \ No newline at end of file diff --git a/xilinx/ALU/processeur.prj b/xilinx/ALU/processeur.prj new file mode 100644 index 0000000..8bfc086 --- /dev/null +++ b/xilinx/ALU/processeur.prj @@ -0,0 +1,6 @@ +vhdl work "pipeline.vhd" +vhdl work "br.vhd" +vhdl work "bm_instr.vhd" +vhdl work "bm.vhd" +vhdl work "alu.vhd" +vhdl work "processeur.vhd" diff --git a/xilinx/ALU/processeur.stx b/xilinx/ALU/processeur.stx new file mode 100644 index 0000000..e69de29 diff --git a/xilinx/ALU/processeur.syr b/xilinx/ALU/processeur.syr new file mode 100644 index 0000000..ceb40e4 --- /dev/null +++ b/xilinx/ALU/processeur.syr @@ -0,0 +1,303 @@ +Release 13.4 - xst O.87xd (lin64) +Copyright (c) 1995-2011 Xilinx, Inc. All rights reserved. +--> +Parameter TMPDIR set to xst/projnav.tmp + + +Total REAL time to Xst completion: 1.00 secs +Total CPU time to Xst completion: 0.03 secs + +--> +Parameter xsthdpdir set to xst + + +Total REAL time to Xst completion: 1.00 secs +Total CPU time to Xst completion: 0.03 secs + +--> +Reading design: processeur.prj + +TABLE OF CONTENTS + 1) Synthesis Options Summary + 2) HDL Parsing + 3) HDL Elaboration + 4) HDL Synthesis + 4.1) HDL Synthesis Report + 5) Advanced HDL Synthesis + 5.1) Advanced HDL Synthesis Report + 6) Low Level Synthesis + 7) Partition Report + 8) Design Summary + 8.1) Primitive and Black Box Usage + 8.2) Device utilization summary + 8.3) Partition Resource Summary + 8.4) Timing Report + 8.4.1) Clock Information + 8.4.2) Asynchronous Control Signals Information + 8.4.3) Timing Summary + 8.4.4) Timing Details + 8.4.5) Cross Clock Domains Report + + +========================================================================= +* Synthesis Options Summary * +========================================================================= +---- Source Parameters +Input File Name : "processeur.prj" +Ignore Synthesis Constraint File : NO + +---- Target Parameters +Output File Name : "processeur" +Output Format : NGC +Target Device : xc6slx16-3-csg324 + +---- Source Options +Top Module Name : processeur +Automatic FSM Extraction : YES +FSM Encoding Algorithm : Auto +Safe Implementation : No +FSM Style : LUT +RAM Extraction : Yes +RAM Style : Auto +ROM Extraction : Yes +Shift Register Extraction : YES +ROM Style : Auto +Resource Sharing : YES +Asynchronous To Synchronous : NO +Shift Register Minimum Size : 2 +Use DSP Block : Auto +Automatic Register Balancing : No + +---- Target Options +LUT Combining : Auto +Reduce Control Sets : Auto +Add IO Buffers : YES +Global Maximum Fanout : 100000 +Add Generic Clock Buffer(BUFG) : 16 +Register Duplication : YES +Optimize Instantiated Primitives : NO +Use Clock Enable : Auto +Use Synchronous Set : Auto +Use Synchronous Reset : Auto +Pack IO Registers into IOBs : Auto +Equivalent register Removal : YES + +---- General Options +Optimization Goal : Speed +Optimization Effort : 1 +Power Reduction : NO +Keep Hierarchy : No +Netlist Hierarchy : As_Optimized +RTL Output : Yes +Global Optimization : AllClockNets +Read Cores : YES +Write Timing Constraints : NO +Cross Clock Analysis : NO +Hierarchy Separator : / +Bus Delimiter : <> +Case Specifier : Maintain +Slice Utilization Ratio : 100 +BRAM Utilization Ratio : 100 +DSP48 Utilization Ratio : 100 +Auto BRAM Packing : NO +Slice Utilization Ratio Delta : 5 + +========================================================================= + +INFO:Xst - Part-select index evaluated to out of bound value may lead to incorrect synthesis results; it is recommended not to use them in RTL + +========================================================================= +* HDL Parsing * +========================================================================= +Parsing VHDL file "/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/pipeline.vhd" into library work +Parsing entity . +Parsing architecture of entity . +Parsing VHDL file "/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/br.vhd" into library work +Parsing entity
. +Parsing architecture of entity
. +Parsing VHDL file "/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/bm_instr.vhd" into library work +Parsing entity . +Parsing architecture of entity . +Parsing VHDL file "/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/bm.vhd" into library work +Parsing entity . +Parsing architecture of entity . +Parsing VHDL file "/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/alu.vhd" into library work +Parsing entity . +Parsing architecture of entity . +Parsing VHDL file "/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" into library work +Parsing entity . +Parsing architecture of entity . + +========================================================================= +* HDL Elaboration * +========================================================================= + +Elaborating entity (architecture ) from library . + +Elaborating entity (architecture ) from library . + +Elaborating entity (architecture ) from library . + +Elaborating entity
(architecture ) from library . + +Elaborating entity (architecture ) from library . + +Elaborating entity (architecture ) from library . +WARNING:Xst:2972 - "/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 156. All outputs of instance of block are unconnected in block . Underlying logic will be removed. +WARNING:Xst:2972 - "/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 163. All outputs of instance of block are unconnected in block . Underlying logic will be removed. +WARNING:Xst:2972 - "/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 184. All outputs of instance of block
are unconnected in block . Underlying logic will be removed. +WARNING:Xst:2972 - "/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 200. All outputs of instance of block are unconnected in block . Underlying logic will be removed. +WARNING:Xst:2972 - "/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 221. All outputs of instance of block are unconnected in block . Underlying logic will be removed. +WARNING:Xst:2972 - "/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 237. All outputs of instance of block are unconnected in block . Underlying logic will be removed. +WARNING:Xst:2972 - "/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 262. All outputs of instance of block are unconnected in block . Underlying logic will be removed. +WARNING:Xst:2972 - "/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 272. All outputs of instance of block are unconnected in block . Underlying logic will be removed. + +========================================================================= +* HDL Synthesis * +========================================================================= + +Synthesizing Unit . + Related source file is "/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd". +INFO:Xst:3210 - "/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 221: Output port of the instance is unconnected or connected to loadless signal. +INFO:Xst:3210 - "/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 221: Output port of the instance is unconnected or connected to loadless signal. +INFO:Xst:3210 - "/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 221: Output port of the instance is unconnected or connected to loadless signal. +INFO:Xst:3210 - "/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 221: Output port of the instance is unconnected or connected to loadless signal. +INFO:Xst:3210 - "/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 237: Output port of the instance is unconnected or connected to loadless signal. +INFO:Xst:3210 - "/home/foussats/Bureau/projet_system/projet_systeme/xilinx/ALU/processeur.vhd" line 272: Output port of the instance is unconnected or connected to loadless signal. + Summary: + no macro. +Unit synthesized. + +========================================================================= +HDL Synthesis Report + +Found no macro +========================================================================= + +========================================================================= +* Advanced HDL Synthesis * +========================================================================= + + +========================================================================= +Advanced HDL Synthesis Report + +Found no macro +========================================================================= + +========================================================================= +* Low Level Synthesis * +========================================================================= + +Optimizing unit ... + +Mapping all equations... +Building and optimizing final netlist ... +Found area constraint ratio of 100 (+ 5) on block processeur, actual ratio is 0. + +Final Macro Processing ... + +========================================================================= +Final Register Report + +Found no macro +========================================================================= + +========================================================================= +* Partition Report * +========================================================================= + +Partition Implementation Status +------------------------------- + + No Partitions were found in this design. + +------------------------------- + +========================================================================= +* Design Summary * +========================================================================= + +Top Level Output File Name : processeur.ngc + +Primitive and Black Box Usage: +------------------------------ + +Device utilization summary: +--------------------------- + +Selected Device : 6slx16csg324-3 + + +Slice Logic Utilization: + +Slice Logic Distribution: + Number of LUT Flip Flop pairs used: 0 + Number with an unused Flip Flop: 0 out of 0 + Number with an unused LUT: 0 out of 0 + Number of fully used LUT-FF pairs: 0 out of 0 + Number of unique control sets: 0 + +IO Utilization: + Number of IOs: 2 + Number of bonded IOBs: 0 out of 232 0% + +Specific Feature Utilization: + +--------------------------- +Partition Resource Summary: +--------------------------- + + No Partitions were found in this design. + +--------------------------- + + +========================================================================= +Timing Report + +NOTE: THESE TIMING NUMBERS ARE ONLY A SYNTHESIS ESTIMATE. + FOR ACCURATE TIMING INFORMATION PLEASE REFER TO THE TRACE REPORT + GENERATED AFTER PLACE-and-ROUTE. + +Clock Information: +------------------ +No clock signals found in this design + +Asynchronous Control Signals Information: +---------------------------------------- +No asynchronous control signals found in this design + +Timing Summary: +--------------- +Speed Grade: -3 + + Minimum period: No path found + Minimum input arrival time before clock: No path found + Maximum output required time after clock: No path found + Maximum combinational path delay: No path found + +Timing Details: +--------------- +All values displayed in nanoseconds (ns) + +========================================================================= + +Cross Clock Domains Report: +-------------------------- + +========================================================================= + + +Total REAL time to Xst completion: 4.00 secs +Total CPU time to Xst completion: 2.94 secs + +--> + + +Total memory usage is 389560 kilobytes + +Number of errors : 0 ( 0 filtered) +Number of warnings : 8 ( 0 filtered) +Number of infos : 7 ( 0 filtered) + diff --git a/xilinx/ALU/processeur.vhd b/xilinx/ALU/processeur.vhd index 04b95cd..536a9c6 100644 --- a/xilinx/ALU/processeur.vhd +++ b/xilinx/ALU/processeur.vhd @@ -1,271 +1,303 @@ ----------------------------------------------------------------------------------- --- Company: --- Engineer: --- --- Create Date: 12:52:06 05/04/2021 --- Design Name: --- Module Name: processeur - Behavioral --- Project Name: --- Target Devices: --- Tool versions: --- Description: --- --- Dependencies: --- --- Revision: --- Revision 0.01 - File Created --- Additional Comments: --- ----------------------------------------------------------------------------------- -library IEEE; -use IEEE.STD_LOGIC_1164.ALL; -use IEEE.STD_LOGIC_UNSIGNED.ALL; + ---------------------------------------------------------------------------------- + -- Company: + -- Engineer: + -- + -- Create Date: 12:52:06 05/04/2021 + -- Design Name: + -- Module Name: processeur - Behavioral + -- Project Name: + -- Target Devices: + -- Tool versions: + -- Description: + -- + -- Dependencies: + -- + -- Revision: + -- Revision 0.01 - File Created + -- Additional Comments: + -- + ---------------------------------------------------------------------------------- + library IEEE; + use IEEE.STD_LOGIC_1164.ALL; + use IEEE.STD_LOGIC_UNSIGNED.ALL; -use IEEE.NUMERIC_STD.ALL; + use IEEE.NUMERIC_STD.ALL; --- Uncomment the following library declaration if using --- arithmetic functions with Signed or Unsigned values ---use IEEE.NUMERIC_STD.ALL; + -- Uncomment the following library declaration if using + -- arithmetic functions with Signed or Unsigned values + --use IEEE.NUMERIC_STD.ALL; --- Uncomment the following library declaration if instantiating --- any Xilinx primitives in this code. ---library UNISIM; ---use UNISIM.VComponents.all; + -- Uncomment the following library declaration if instantiating + -- any Xilinx primitives in this code. + --library UNISIM; + --use UNISIM.VComponents.all; -entity processeur is - Port ( CLK: in STD_LOGIC ; - RST : in STD_LOGIC); -end processeur; + entity processeur is + Port ( CLK: in STD_LOGIC ; + RST : in STD_LOGIC); + end processeur; -architecture Behavioral of processeur is - COMPONENT bm_instr - PORT( - IN_addr : IN std_logic_vector(7 downto 0); - OUT_data : OUT std_logic_vector(31 downto 0); - CLK : IN std_logic - ); - END COMPONENT; - - COMPONENT pipeline - PORT( OP_IN : in STD_LOGIC_VECTOR (7 downto 0); - A_IN : in STD_LOGIC_VECTOR (7 downto 0); - B_IN : in STD_LOGIC_VECTOR (7 downto 0); - C_IN : in STD_LOGIC_VECTOR (7 downto 0); - CLK : IN std_logic; - OP_OUT : out STD_LOGIC_VECTOR (7 downto 0); - A_OUT : out STD_LOGIC_VECTOR (7 downto 0); - B_OUT : out STD_LOGIC_VECTOR (7 downto 0); - C_OUT : out STD_LOGIC_VECTOR (7 downto 0) - ); - END COMPONENT; - - COMPONENT br - PORT( - A_addr : IN std_logic_vector(3 downto 0); - B_addr : IN std_logic_vector(3 downto 0); - W_addr : IN std_logic_vector(3 downto 0); - W : IN std_logic; - Data : IN std_logic_vector(7 downto 0); - RST : IN std_logic; - CLK : IN std_logic; - QA : OUT std_logic_vector(7 downto 0); - QB : OUT std_logic_vector(7 downto 0) - ); - END COMPONENT; - - COMPONENT alu - PORT( - A : IN std_logic_vector(7 downto 0); - B : IN std_logic_vector(7 downto 0); - Ctrl_Alu : IN std_logic_vector(2 downto 0); - N : OUT std_logic; - O : OUT std_logic; - Z : OUT std_logic; - C : OUT std_logic; - S : OUT std_logic_vector(7 downto 0) - ); - END COMPONENT; - - COMPONENT bm_data - PORT( - IN_addr : IN std_logic_vector(7 downto 0); - IN_data : IN std_logic_vector(7 downto 0); - RW : IN std_logic; - RST : IN std_logic; - CLK : IN std_logic; - OUT_data : OUT std_logic_vector(7 downto 0) - ); - END COMPONENT; + architecture Behavioral of processeur is + COMPONENT bm_instr + PORT( + IN_addr : IN std_logic_vector(7 downto 0); + OUT_data : OUT std_logic_vector(31 downto 0); + CLK : IN std_logic + ); + END COMPONENT; + + COMPONENT pipeline + PORT( OP_IN : in STD_LOGIC_VECTOR (7 downto 0); + A_IN : in STD_LOGIC_VECTOR (7 downto 0); + B_IN : in STD_LOGIC_VECTOR (7 downto 0); + C_IN : in STD_LOGIC_VECTOR (7 downto 0); + CLK : IN std_logic; + EN : in STD_LOGIC; + OP_OUT : out STD_LOGIC_VECTOR (7 downto 0); + A_OUT : out STD_LOGIC_VECTOR (7 downto 0); + B_OUT : out STD_LOGIC_VECTOR (7 downto 0); + C_OUT : out STD_LOGIC_VECTOR (7 downto 0) + ); + END COMPONENT; + + COMPONENT br + PORT( + A_addr : IN std_logic_vector(3 downto 0); + B_addr : IN std_logic_vector(3 downto 0); + W_addr : IN std_logic_vector(3 downto 0); + W : IN std_logic; + Data : IN std_logic_vector(7 downto 0); + RST : IN std_logic; + CLK : IN std_logic; + QA : OUT std_logic_vector(7 downto 0); + QB : OUT std_logic_vector(7 downto 0) + ); + END COMPONENT; + + COMPONENT alu + PORT( + A : IN std_logic_vector(7 downto 0); + B : IN std_logic_vector(7 downto 0); + Ctrl_Alu : IN std_logic_vector(2 downto 0); + N : OUT std_logic; + O : OUT std_logic; + Z : OUT std_logic; + C : OUT std_logic; + S : OUT std_logic_vector(7 downto 0) + ); + END COMPONENT; + + COMPONENT bm_data + PORT( + IN_addr : IN std_logic_vector(7 downto 0); + IN_data : IN std_logic_vector(7 downto 0); + RW : IN std_logic; + RST : IN std_logic; + CLK : IN std_logic; + OUT_data : OUT std_logic_vector(7 downto 0) + ); + END COMPONENT; + + --Inputs + signal IP : std_logic_vector(7 downto 0) := (others => '0'); + signal QA_IN_MUX : std_logic_vector(7 downto 0) := (others => '0'); + + signal B_DIEX_IN : std_logic_vector(7 downto 0) := (others => '0'); + signal C_DIEX_IN : std_logic_vector(7 downto 0) := (others => '0'); + + --Outputs + signal OUT_data : std_logic_vector(31 downto 0); + + signal OP_LIDI_OUT : std_logic_vector(7 downto 0); + signal A_LIDI_OUT : std_logic_vector(7 downto 0); + signal B_LIDI_OUT : std_logic_vector(7 downto 0); + signal C_LIDI_OUT : std_logic_vector(7 downto 0); + + signal OP_DIEX_OUT : std_logic_vector(7 downto 0); + signal A_DIEX_OUT : std_logic_vector(7 downto 0); + signal B_DIEX_OUT : std_logic_vector(7 downto 0); + signal C_DIEX_OUT : std_logic_vector(7 downto 0); + + signal O_ALU_OUT : std_logic; + signal N_ALU_OUT : std_logic; + signal Z_ALU_OUT : std_logic; + signal C_ALU_OUT : std_logic; + + signal A_EXMem_OUT : std_logic_vector(7 downto 0); + signal B_EXMem_OUT : std_logic_vector(7 downto 0); + signal OP_EXMem_OUT : std_logic_vector(7 downto 0); + + signal A_MemRE_OUT : std_logic_vector(7 downto 0); + signal B_MemRE_OUT : std_logic_vector(7 downto 0); + signal OP_MemRE_OUT : std_logic_vector(7 downto 0); + + --AUX + + signal Ctr_ALU_LC : std_logic_vector(2 downto 0); + signal RW_LC : std_logic; + signal addr_dm_MUX : std_logic_vector(7 downto 0); + signal in_dm_MUX : std_logic_vector(7 downto 0); + signal out_dm_MUX : std_logic_vector(7 downto 0); + signal B_EXMem_IN : std_logic_vector(7 downto 0); + signal W_br_LC : std_logic; + signal S_IN_MUX : std_logic_vector(7 downto 0); + signal B_MemRE_IN : std_logic_vector(7 downto 0); + + --alea + signal li_di_r_b : std_logic; + signal li_di_r_c : std_logic; + signal di_ex_w_a : std_logic; + signal ex_mem_w_a : std_logic; + signal alea : std_logic; - --Inputs - signal IP : std_logic_vector(7 downto 0) := (others => '0'); - signal QA_IN_MUX : std_logic_vector(7 downto 0) := (others => '0'); + begin + + -- Instantiate adresse des instructions + addr_instructions: bm_instr PORT MAP ( + IN_addr => IP, + OUT_data => OUT_data, + CLK => CLK + ); - signal B_DIEX_IN : std_logic_vector(7 downto 0) := (others => '0'); - signal C_DIEX_IN : std_logic_vector(7 downto 0) := (others => '0'); - - --Outputs - signal OUT_data : std_logic_vector(31 downto 0); - - signal OP_LIDI_OUT : std_logic_vector(7 downto 0); - signal A_LIDI_OUT : std_logic_vector(7 downto 0); - signal B_LIDI_OUT : std_logic_vector(7 downto 0); - signal C_LIDI_OUT : std_logic_vector(7 downto 0); - - signal OP_DIEX_OUT : std_logic_vector(7 downto 0); - signal A_DIEX_OUT : std_logic_vector(7 downto 0); - signal B_DIEX_OUT : std_logic_vector(7 downto 0); - signal C_DIEX_OUT : std_logic_vector(7 downto 0); - - signal O_ALU_OUT : std_logic; - signal N_ALU_OUT : std_logic; - signal Z_ALU_OUT : std_logic; - signal C_ALU_OUT : std_logic; - - signal A_EXMem_OUT : std_logic_vector(7 downto 0); - signal B_EXMem_OUT : std_logic_vector(7 downto 0); - signal OP_EXMem_OUT : std_logic_vector(7 downto 0); - - signal A_MemRE_OUT : std_logic_vector(7 downto 0); - signal B_MemRE_OUT : std_logic_vector(7 downto 0); - signal OP_MemRE_OUT : std_logic_vector(7 downto 0); - - --AUX - - signal Ctr_ALU_LC : std_logic_vector(2 downto 0); - signal RW_LC : std_logic; - signal addr_dm_MUX : std_logic_vector(7 downto 0); - signal in_dm_MUX : std_logic_vector(7 downto 0); - signal out_dm_MUX : std_logic_vector(7 downto 0); - signal B_EXMem_IN : std_logic_vector(7 downto 0); - signal W_br_LC : std_logic; - signal S_IN_MUX : std_logic_vector(7 downto 0); - signal B_MemRE_IN : std_logic_vector(7 downto 0); - -begin - - -- Instantiate adresse des instructions - addr_instructions: bm_instr PORT MAP ( - IN_addr => IP, - OUT_data => OUT_data, - CLK => CLK - ); - - -- Instantiate pipeline LI_LD - LI_LD : pipeline PORT MAP ( - OP_IN => OUT_data(31 downto 24), - A_IN => OUT_data(23 downto 16), - B_IN => OUT_data(15 downto 8), - C_IN => OUT_data(7 downto 0), - CLK => CLK, - A_OUT => A_LIDI_OUT, - B_OUT => B_LIDI_OUT, - C_OUT => C_LIDI_OUT, - OP_OUT => OP_LIDI_OUT - ); - W_br_LC <= '1' when OP_MemRE_OUT = x"07" or OP_MemRE_OUT = x"05" or OP_MemRE_OUT = x"06" or OP_MemRE_OUT = x"01" or OP_MemRE_OUT = x"02" or OP_MemRE_OUT = x"03" or OP_MemRE_OUT = x"04" else - '0'; - -- Instanciate banc de registre - banc_registres : br PORT MAP ( - A_addr => B_LIDI_OUT(3 downto 0), - B_addr => C_LIDI_OUT(3 downto 0), - W_addr => A_MemRE_OUT(3 downto 0), - W => W_br_LC, --ATTENTION LC - Data => B_MemRE_OUT, - RST => RST, - CLK => CLK, - QA => QA_IN_MUX, - QB => C_DIEX_IN - ); - - B_DIEX_IN <= QA_IN_MUX when OP_LIDI_OUT = x"05" or OP_LIDI_OUT = x"01" or OP_LIDI_OUT = x"02" or OP_LIDI_OUT = x"03" or OP_LIDI_OUT = x"04" else B_LIDI_OUT ; - - - -- Instantiate pipeline DI_EX - DI_EX : pipeline PORT MAP ( - OP_IN => OP_LIDI_OUT, - A_IN => A_LIDI_OUT, - B_IN => B_DIEX_IN, - C_IN => C_DIEX_IN, - CLK => CLK, - A_OUT => A_DIEX_OUT, - B_OUT => B_DIEX_OUT, - C_OUT => C_DIEX_OUT, - OP_OUT => OP_DIEX_OUT - ); - - Ctr_ALU_LC <= "001" when OP_DIEX_OUT = x"01" else - "010" when OP_DIEX_OUT = x"03" else - "011" when OP_DIEX_OUT = x"02" else - "000"; - - -- Instantiate alu - UAL : alu PORT MAP ( - A => B_DIEX_OUT, - B => C_DIEX_OUT, - Ctrl_Alu =>Ctr_AlU_LC, - N => N_ALU_OUT, - O => O_ALU_OUT, - Z => Z_ALU_OUT, - C => C_ALU_OUT, - S => S_IN_MUX - ); - - B_EXMem_IN <= S_IN_MUX when OP_DIEX_OUT = x"01" or OP_DIEX_OUT = x"02" or OP_DIEX_OUT = x"03" else - B_DIEX_OUT ; + -- Instantiate pipeline LI_LD + LI_LD : pipeline PORT MAP ( + OP_IN => OUT_data(31 downto 24), + A_IN => OUT_data(23 downto 16), + B_IN => OUT_data(15 downto 8), + C_IN => OUT_data(7 downto 0), + CLK => CLK, + EN => alea, + A_OUT => A_LIDI_OUT, + B_OUT => B_LIDI_OUT, + C_OUT => C_LIDI_OUT, + OP_OUT => OP_LIDI_OUT + ); + W_br_LC <= '1' when OP_MemRE_OUT = x"07" or OP_MemRE_OUT = x"05" or OP_MemRE_OUT = x"06" or OP_MemRE_OUT = x"01" or OP_MemRE_OUT = x"02" or OP_MemRE_OUT = x"03" or OP_MemRE_OUT = x"04" else + '0'; - - -- Instantiate pipeline EX_Mem - EX_Mem : pipeline PORT MAP ( - OP_IN => OP_DIEX_OUT, - A_IN => A_DIEX_OUT, - B_IN => B_EXMem_IN, - C_IN => x"00", - CLK => CLK, - A_OUT => A_EXMem_OUT, - B_OUT => B_EXMem_OUT, - C_OUT => open, - OP_OUT => OP_EXMem_OUT - ); - - RW_LC <= '0' when OP_EXMem_OUT = x"08" else - '1'; - addr_dm_MUX <= B_EXMem_OUT when OP_EXMem_OUT = x"07" else - A_EXMem_OUT; - in_dm_MUX <= B_EXMem_OUT when OP_EXMem_OUT = x"08"; - B_MemRE_IN <= out_dm_MUX when OP_EXMem_OUT = x"08" else - B_EXMem_OUT; - -- Instantiate banc de données - data_memory: bm_data PORT MAP ( - IN_addr => addr_dm_MUX, - IN_data => B_MemRE_IN, - RW => RW_LC, - RST => RST, - CLK => CLK, - OUT_data => out_dm_MUX - ); + --alea LI_DI + li_di_r_b <= '1' when OUT_data(31 downto 24) = x"05" or OUT_data(31 downto 24) = x"01" or OUT_data(31 downto 24) = x"02" or OUT_data(31 downto 24) = x"03" or OUT_data(31 downto 24) = x"04" or OUT_data(31 downto 24) = x"08" + else '0'; + li_di_r_c <= '1' when OUT_data(31 downto 24) = x"01" or OUT_data(31 downto 24) = x"02" or OUT_data(31 downto 24) = x"03" or OUT_data(31 downto 24) = x"04" + else '0'; + -- Instanciate banc de registre + banc_registres : br PORT MAP ( + A_addr => B_LIDI_OUT(3 downto 0), + B_addr => C_LIDI_OUT(3 downto 0), + W_addr => A_MemRE_OUT(3 downto 0), + W => W_br_LC, --ATTENTION LC + Data => B_MemRE_OUT, + RST => RST, + CLK => CLK, + QA => QA_IN_MUX, + QB => C_DIEX_IN + ); + + B_DIEX_IN <= QA_IN_MUX when OP_LIDI_OUT = x"05" or OP_LIDI_OUT = x"01" or OP_LIDI_OUT = x"02" or OP_LIDI_OUT = x"03" or OP_LIDI_OUT = x"04" or OP_LIDI_OUT = x"08" else B_LIDI_OUT ; + + + -- Instantiate pipeline DI_EX + DI_EX : pipeline PORT MAP ( + OP_IN => OP_LIDI_OUT, + A_IN => A_LIDI_OUT, + B_IN => B_DIEX_IN, + C_IN => C_DIEX_IN, + CLK => CLK, + EN => '1', + A_OUT => A_DIEX_OUT, + B_OUT => B_DIEX_OUT, + C_OUT => C_DIEX_OUT, + OP_OUT => OP_DIEX_OUT + ); + + Ctr_ALU_LC <= "001" when OP_DIEX_OUT = x"01" else + "010" when OP_DIEX_OUT = x"03" else + "011" when OP_DIEX_OUT = x"02" else + "000"; + -- alea DI_EX + di_ex_w_a <= '0' when OP_LIDI_OUT = x"08" or OP_LIDI_OUT = x"00" + else '1'; + -- Instantiate alu + UAL : alu PORT MAP ( + A => B_DIEX_OUT, + B => C_DIEX_OUT, + Ctrl_Alu =>Ctr_AlU_LC, + N => N_ALU_OUT, + O => O_ALU_OUT, + Z => Z_ALU_OUT, + C => C_ALU_OUT, + S => S_IN_MUX + ); + + B_EXMem_IN <= S_IN_MUX when OP_DIEX_OUT = x"01" or OP_DIEX_OUT = x"02" or OP_DIEX_OUT = x"03" else + B_DIEX_OUT ; + + + -- Instantiate pipeline EX_Mem + EX_Mem : pipeline PORT MAP ( + OP_IN => OP_DIEX_OUT, + A_IN => A_DIEX_OUT, + B_IN => B_EXMem_IN, + C_IN => x"00", + CLK => CLK, + EN => '1', + A_OUT => A_EXMem_OUT, + B_OUT => B_EXMem_OUT, + C_OUT => open, + OP_OUT => OP_EXMem_OUT + ); + + RW_LC <= '0' when OP_EXMem_OUT = x"08" else + '1'; + addr_dm_MUX <= B_EXMem_OUT when OP_EXMem_OUT = x"07" else + A_EXMem_OUT; + in_dm_MUX <= B_EXMem_OUT when OP_EXMem_OUT = x"08"; + B_MemRE_IN <= out_dm_MUX when OP_EXMem_OUT = x"08" or OP_EXMem_OUT = x"07" else + B_EXMem_OUT; + + -- alea ex_mem + ex_mem_w_a <= '0' when OP_DIEX_OUT = x"08" or OP_DIEX_OUT = x"00" + else '1'; + -- Instantiate banc de données + data_memory: bm_data PORT MAP ( + IN_addr => addr_dm_MUX, + IN_data => in_dm_MUX, + RW => RW_LC, + RST => RST, + CLK => CLK, + OUT_data => out_dm_MUX + ); + + -- Instantiate pipeline Mem_RE + Mem_RE : pipeline PORT MAP ( + OP_IN => OP_EXMem_OUT, + A_IN => A_EXMem_OUT, + B_IN => B_MemRE_IN, + C_IN => x"00", + CLK => CLK, + EN => '1', + A_OUT => A_MemRE_OUT, + B_OUT => B_MemRE_OUT, + C_OUT => open, + OP_OUT => OP_MemRE_OUT + ); + + alea <= '0' when (li_di_r_b = '1' and di_ex_w_a = '1' and OUT_data(15 downto 8) = A_LIDI_OUT) or + (li_di_r_c = '1' and di_ex_w_a = '1' and OUT_data(7 downto 0) = A_LIDI_OUT) or + (li_di_r_b = '1' and ex_mem_w_a = '1' and OUT_data(15 downto 8) = A_DIEX_OUT) or + (li_di_r_c = '1' and ex_mem_w_a = '1' and OUT_data(7 downto 0) = A_DIEX_OUT) else + '1'; - -- Instantiate pipeline Mem_RE - Mem_RE : pipeline PORT MAP ( - OP_IN => OP_EXMem_OUT, - A_IN => A_EXMem_OUT, - B_IN => B_EXMem_OUT, - C_IN => x"00", - CLK => CLK, - A_OUT => A_MemRE_OUT, - B_OUT => B_MemRE_OUT, - C_OUT => open, - OP_OUT => OP_MemRE_OUT - ); - process + process begin wait until rising_edge(CLK); if rst = '0' then IP <= x"00"; else - IP <= IP + "00000001"; + if alea = '1' then + IP <= IP + "00000001"; + end if; end if; end process; - -end Behavioral; - + + end Behavioral; diff --git a/xilinx/ALU/processeur.xst b/xilinx/ALU/processeur.xst new file mode 100644 index 0000000..b644f1c --- /dev/null +++ b/xilinx/ALU/processeur.xst @@ -0,0 +1,52 @@ +set -tmpdir "xst/projnav.tmp" +set -xsthdpdir "xst" +run +-ifn processeur.prj +-ofn processeur +-ofmt NGC +-p xc6slx16-3-csg324 +-top processeur +-opt_mode Speed +-opt_level 1 +-power NO +-iuc NO +-keep_hierarchy No +-netlist_hierarchy As_Optimized +-rtlview Yes +-glob_opt AllClockNets +-read_cores YES +-write_timing_constraints NO +-cross_clock_analysis NO +-hierarchy_separator / +-bus_delimiter <> +-case Maintain +-slice_utilization_ratio 100 +-bram_utilization_ratio 100 +-dsp_utilization_ratio 100 +-lc Auto +-reduce_control_sets Auto +-fsm_extract YES -fsm_encoding Auto +-safe_implementation No +-fsm_style LUT +-ram_extract Yes +-ram_style Auto +-rom_extract Yes +-shreg_extract YES +-rom_style Auto +-auto_bram_packing NO +-resource_sharing YES +-async_to_sync NO +-shreg_min_size 2 +-use_dsp48 Auto +-iobuf YES +-max_fanout 100000 +-bufg 16 +-register_duplication YES +-register_balancing No +-optimize_primitives NO +-use_clock_enable Auto +-use_sync_set Auto +-use_sync_reset Auto +-iob Auto +-equivalent_register_removal YES +-slice_utilization_ratio_maxmargin 5 diff --git a/xilinx/ALU/processeur_envsettings.html b/xilinx/ALU/processeur_envsettings.html new file mode 100644 index 0000000..2d84867 --- /dev/null +++ b/xilinx/ALU/processeur_envsettings.html @@ -0,0 +1,404 @@ +Xilinx System Settings Report + +

System Settings

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Environment Settings
Environment Variablexstngdbuildmappar
LD_LIBRARY_PATH/usr/local/insa/Xilinx.ISE/13.4/ISE_DS/ISE//lib/lin64:
/usr/local/insa/lib:
$LD_LIBRARY_PATH
/usr/local/insa/Xilinx.ISE/13.4/ISE_DS/ISE//lib/lin64:
/usr/local/insa/lib:
$LD_LIBRARY_PATH
< data not available >< data not available >
PATH/usr/local/insa/Xilinx.ISE/13.4/ISE_DS/ISE//bin/lin64:
/mnt/commetud/GEI/OCaml/.opam/4.08.1/bin:
/usr/local/insa/shared/opam/system/bin:
/usr/local/insa/lustre-v4-III-dc-linux64/bin:
/usr/local/insa/arm-ada/compilateur/gcc-arm-none-eabi/bin:
/usr/local/insa/anaconda/bin:
/usr/local/insa/bin:
/usr/local/insa/sbin:
/usr/local/sbin:
/usr/local/bin:
/usr/sbin:
/usr/bin:
/sbin:
/bin:
/usr/games:
/usr/local/games:
/usr/local/insa/tina/bin:
/snap/bin
/usr/local/insa/Xilinx.ISE/13.4/ISE_DS/ISE//bin/lin64:
/mnt/commetud/GEI/OCaml/.opam/4.08.1/bin:
/usr/local/insa/shared/opam/system/bin:
/usr/local/insa/lustre-v4-III-dc-linux64/bin:
/usr/local/insa/arm-ada/compilateur/gcc-arm-none-eabi/bin:
/usr/local/insa/anaconda/bin:
/usr/local/insa/bin:
/usr/local/insa/sbin:
/usr/local/sbin:
/usr/local/bin:
/usr/sbin:
/usr/bin:
/sbin:
/bin:
/usr/games:
/usr/local/games:
/usr/local/insa/tina/bin:
/snap/bin
< data not available >< data not available >
XILINX/usr/local/insa/Xilinx.ISE/13.4/ISE_DS/ISE//usr/local/insa/Xilinx.ISE/13.4/ISE_DS/ISE/< data not available >< data not available >
XILINXD_LICENSE_FILE/usr/local/insa/Xilinx.ISE/13.4/ISE_DS/common/licenses/Xilinx.lic/usr/local/insa/Xilinx.ISE/13.4/ISE_DS/common/licenses/Xilinx.lic< data not available >< data not available >
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Synthesis Property Settings
Switch NameProperty NameValueDefault Value
-ifn processeur.prj 
-ofn processeur 
-ofmt NGCNGC
-p xc6slx16-3-csg324 
-top processeur 
-opt_modeOptimization GoalSpeedSpeed
-opt_levelOptimization Effort11
-powerPower ReductionNONo
-iucUse synthesis Constraints FileNONo
-keep_hierarchyKeep HierarchyNoNo
-netlist_hierarchyNetlist HierarchyAs_OptimizedAs_Optimized
-rtlviewGenerate RTL SchematicYesNo
-glob_optGlobal Optimization GoalAllClockNetsAllClockNets
-read_coresRead CoresYESYes
-write_timing_constraintsWrite Timing ConstraintsNONo
-cross_clock_analysisCross Clock AnalysisNONo
-bus_delimiterBus Delimiter<><>
-slice_utilization_ratioSlice Utilization Ratio100100
-bram_utilization_ratioBRAM Utilization Ratio100100
-dsp_utilization_ratioDSP Utilization Ratio100100
-reduce_control_sets AutoAuto
-fsm_extract YESYes
-fsm_encoding AutoAuto
-safe_implementation NoNo
-fsm_style LUTLUT
-ram_extract YesYes
-ram_style AutoAuto
-rom_extract YesYes
-shreg_extract YESYes
-rom_style AutoAuto
-auto_bram_packing NONo
-resource_sharing YESYes
-async_to_sync NONo
-use_dsp48 AutoAuto
-iobuf YESYes
-max_fanout 100000100000
-bufg 1616
-register_duplication YESYes
-register_balancing NoNo
-optimize_primitives NONo
-use_clock_enable AutoAuto
-use_sync_set AutoAuto
-use_sync_reset AutoAuto
-iob AutoAuto
-equivalent_register_removal YESYes
-slice_utilization_ratio_maxmargin 50
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Translation Property Settings
Switch NameProperty NameValueDefault Value
-intstyle iseNone
-dd _ngoNone
-p xc6slx16-csg324-3None
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Operating System Information
Operating System Informationxstngdbuildmappar
CPU Architecture/SpeedIntel(R) Core(TM) i7-8700 CPU @ 3.20GHz/4277.214 MHzIntel(R) Core(TM) i7-8700 CPU @ 3.20GHz/4276.892 MHz<  data not available  ><  data not available  >
Hostinsa-11291insa-11291<  data not available  ><  data not available  >
OS NameUbuntuUbuntu<  data not available  ><  data not available  >
OS ReleaseUbuntu 18.04.5 LTSUbuntu 18.04.5 LTS<  data not available  ><  data not available  >
+ \ No newline at end of file diff --git a/xilinx/ALU/processeur_map.map b/xilinx/ALU/processeur_map.map new file mode 100644 index 0000000..0f9c60d --- /dev/null +++ b/xilinx/ALU/processeur_map.map @@ -0,0 +1,23 @@ +Release 13.4 Map O.87xd (lin64) +Xilinx Map Application Log File for Design 'processeur' + +Design Information +------------------ +Command Line : map -intstyle ise -p xc6slx16-csg324-3 -w -logic_opt off -ol +high -t 1 -xt 0 -register_duplication off -r 4 -global_opt off -mt off -ir off +-pr off -lc off -power off -o processeur_map.ncd processeur.ngd processeur.pcf +Target Device : xc6slx16 +Target Package : csg324 +Target Speed : -3 +Mapper Version : spartan6 -- $Revision: 1.55 $ +Mapped Date : Tue May 18 16:15:07 2021 + +ERROR:Map:116 - The design is empty. No processing will be done. +ERROR:Map:52 - Problem encountered processing RPMs. + + + +Design Summary +-------------- +Number of errors : 2 +Number of warnings : 0 diff --git a/xilinx/ALU/processeur_map.mrp b/xilinx/ALU/processeur_map.mrp new file mode 100644 index 0000000..7bc54ad --- /dev/null +++ b/xilinx/ALU/processeur_map.mrp @@ -0,0 +1,31 @@ +Release 13.4 Map O.87xd (lin64) +Xilinx Mapping Report File for Design 'processeur' + +Design Information +------------------ +Command Line : map -intstyle ise -p xc6slx16-csg324-3 -w -logic_opt off -ol +high -t 1 -xt 0 -register_duplication off -r 4 -global_opt off -mt off -ir off +-pr off -lc off -power off -o processeur_map.ncd processeur.ngd processeur.pcf +Target Device : xc6slx16 +Target Package : csg324 +Target Speed : -3 +Mapper Version : spartan6 -- $Revision: 1.55 $ +Mapped Date : Tue May 18 16:15:07 2021 + +Design Summary +-------------- +Number of errors : 2 +Number of warnings : 0 + +Section 1 - Errors +------------------ +ERROR:Map:116 - The design is empty. No processing will be done. +ERROR:Map:52 - Problem encountered processing RPMs. + + + +Section 2 - Warnings +-------------------- + +Section 3 - Informational +------------------------- diff --git a/xilinx/ALU/processeur_ngdbuild.xrpt b/xilinx/ALU/processeur_ngdbuild.xrpt new file mode 100644 index 0000000..c2d89e9 --- /dev/null +++ b/xilinx/ALU/processeur_ngdbuild.xrpt @@ -0,0 +1,67 @@ + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + +
+
+ +
+ + + +
+
+ +
+ + + + + +
+
+
+
+
+
+ + + + diff --git a/xilinx/ALU/processeur_summary.html b/xilinx/ALU/processeur_summary.html index 23acf3d..e983e48 100644 --- a/xilinx/ALU/processeur_summary.html +++ b/xilinx/ALU/processeur_summary.html @@ -2,7 +2,7 @@ - + @@ -13,18 +13,20 @@ - + - + - + @@ -41,7 +43,10 @@ - + @@ -49,7 +54,9 @@ - + 
processeur Project Status
processeur Project Status (05/18/2021 - 16:15:09)
Project File: ALU.xiseModule Name: processeur Implementation State:NewMapped (Failed)
Target Device: xc6slx16-3csg324
  • Errors:
  +X +2 Errors (2 new)
Product Version:ISE 13.4
  • Warnings:
 9 Warnings (9 new)
Design Goal:
Environment:  + +System Settings +
  • Final Timing Score:
  
+ +
Device Utilization Summary [-]
@@ -61,9 +68,9 @@ Detailed Reports [-] Report NameStatusGenerated ErrorsWarningsInfos -Synthesis Report      -Translation Report      -Map Report      +Synthesis ReportCurrentmar. mai 18 16:14:40 202108 Warnings (8 new)7 Infos (7 new) +Translation ReportCurrentmar. mai 18 16:15:06 202101 Warning (1 new)0 +Map ReportCurrentmar. mai 18 16:15:09 2021X 2 Errors (2 new)00 Place and Route Report      Power Report      Post-PAR Static Timing Report      @@ -72,9 +79,9 @@  
- +
Secondary Reports [-]
Report NameStatusGenerated
ISIM Simulator LogOut of Datelun. mai 10 10:45:43 2021
ISIM Simulator LogOut of Datemar. mai 18 16:15:36 2021
-
Date Generated: 05/10/2021 - 10:47:06
+
Date Generated: 05/18/2021 - 16:16:17
\ No newline at end of file diff --git a/xilinx/ALU/processeur_xst.xrpt b/xilinx/ALU/processeur_xst.xrpt new file mode 100644 index 0000000..97a8453 --- /dev/null +++ b/xilinx/ALU/processeur_xst.xrpt @@ -0,0 +1,129 @@ + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+ + + + + + + + +
+
+
+
+
+ + + +
+ + + diff --git a/xilinx/ALU/webtalk_pn.xml b/xilinx/ALU/webtalk_pn.xml new file mode 100644 index 0000000..3ae3f54 --- /dev/null +++ b/xilinx/ALU/webtalk_pn.xml @@ -0,0 +1,43 @@ + + + + +
+ + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
diff --git a/xilinx/ALU/xlnx_auto_0_xdb/cst.xbcd b/xilinx/ALU/xlnx_auto_0_xdb/cst.xbcd new file mode 100644 index 0000000000000000000000000000000000000000..cd146cc9def201d26dbe033a684daaa763dc14c3 GIT binary patch literal 61 zcma#ZsR%PRcXd(#1JgtZZDd+;>v2*-LV;dbfsWU?6FT0hX$M%;9L}&E@d>aKW-er4 JFfCwy0stuZ61M;V literal 0 HcmV?d00001 diff --git a/xilinx/ALU/xst/work/work.vdbl b/xilinx/ALU/xst/work/work.vdbl new file mode 100644 index 0000000000000000000000000000000000000000..41dc48003cffa9bfe4ca8a7f1ecad5179e93605f GIT binary patch literal 57835 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 Y