fpga added

This commit is contained in:
k0rrluna 2025-01-19 14:01:08 +03:00
parent 4b2009e207
commit a007343feb
54 changed files with 19561 additions and 70 deletions

25
gowin/bttn/bttn.gprj Normal file
View File

@ -0,0 +1,25 @@
<?xml version="1" encoding="UTF-8"?>
<!DOCTYPE gowin-fpga-project>
<Project>
<Template>FPGA</Template>
<Version>5</Version>
<Device name="GW2A-18C" pn="GW2A-LV18PG256C8/I7">gw2a18c-011</Device>
<FileList>
<File path="src/ALU.v" type="file.verilog" enable="1"/>
<File path="src/BinaryToBCD.v" type="file.verilog" enable="1"/>
<File path="src/addition.v" type="file.verilog" enable="1"/>
<File path="src/arithmeticUnit.v" type="file.verilog" enable="1"/>
<File path="src/bttn.v" type="file.verilog" enable="1"/>
<File path="src/dabble.v" type="file.verilog" enable="1"/>
<File path="src/fulladder.v" type="file.verilog" enable="1"/>
<File path="src/fullsubtraction.v" type="file.verilog" enable="1"/>
<File path="src/halfadder.v" type="file.verilog" enable="1"/>
<File path="src/halfsubtraction.v" type="file.verilog" enable="1"/>
<File path="src/logicUnit.v" type="file.verilog" enable="1"/>
<File path="src/multiplier.v" type="file.verilog" enable="1"/>
<File path="src/opCode.v" type="file.verilog" enable="1"/>
<File path="src/selector.v" type="file.verilog" enable="1"/>
<File path="src/subtraction.v" type="file.verilog" enable="1"/>
<File path="src/bttn.cst" type="file.cst" enable="1"/>
</FileList>
</Project>

24
gowin/bttn/bttn.gprj.user Normal file
View File

@ -0,0 +1,24 @@
<?xml version="1" encoding="UTF-8"?>
<!DOCTYPE ProjectUserData>
<UserConfig>
<Version>1.0</Version>
<FlowState>
<Process ID="Synthesis" State="2"/>
<Process ID="Pnr" State="2"/>
<Process ID="Gao" State="2"/>
<Process ID="Rtl_Gao" State="2"/>
</FlowState>
<ResultFileList>
<ResultFile ResultFileType="RES.netlist" ResultFilePath="impl/gwsynthesis/bttn.vg"/>
<ResultFile ResultFileType="RES.pnr.bitstream" ResultFilePath="impl/pnr/bttn.fs"/>
<ResultFile ResultFileType="RES.pnr.pin.rpt" ResultFilePath="impl/pnr/bttn.pin.html"/>
<ResultFile ResultFileType="RES.pnr.posp.bin" ResultFilePath="impl/pnr/bttn.db"/>
<ResultFile ResultFileType="RES.pnr.pwr.rpt" ResultFilePath="impl/pnr/bttn.power.html"/>
<ResultFile ResultFileType="RES.pnr.report" ResultFilePath="impl/pnr/bttn.rpt.html"/>
<ResultFile ResultFileType="RES.pnr.timing.paths" ResultFilePath="impl/pnr/bttn.timing_paths"/>
<ResultFile ResultFileType="RES.pnr.timing.rpt" ResultFilePath="impl/pnr/bttn.tr.html"/>
<ResultFile ResultFileType="RES.syn.report" ResultFilePath="impl/gwsynthesis/bttn_syn.rpt.html"/>
<ResultFile ResultFileType="RES.syn.resource" ResultFilePath="impl/gwsynthesis/bttn_syn_rsc.xml"/>
</ResultFileList>
<Ui>000000ff00000001fd00000002000000000000018e0000051efc0200000001fc000000630000051e0000000000fffffffaffffffff0200000003fb00000030004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00440065007300690067006e0100000000ffffffff0000000000000000fb00000032004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00500072006f00630065007300730100000000ffffffff0000000000000000fb00000036004600700067006100500072006f006a006500630074002e00500061006e0065006c002e0048006900650072006100720063006800790100000000ffffffff00000000000000000000000300000ab000000145fc0100000001fc0000000000000ab0000000e700fffffffa000000000100000002fb00000032004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00470065006e006500720061006c0100000000ffffffff0000009e00fffffffb0000002e004600700067006100500072006f006a006500630074002e00500061006e0065006c002e004900730073007500650100000000ffffffff000000e700ffffff0000091a0000051e00000004000000040000000800000008fc000000010000000200000003000000220043006f00720065002e0054006f006f006c006200610072002e00460069006c00650100000000ffffffff0000000000000000000000220043006f00720065002e0054006f006f006c006200610072002e004500640069007401000000bdffffffff0000000000000000000000240043006f00720065002e0054006f006f006c006200610072002e0054006f006f006c007301000001a5ffffffff0000000000000000</Ui>
</UserConfig>

View File

@ -0,0 +1,88 @@
{
"BACKGROUND_PROGRAMMING" : "off",
"COMPRESS" : false,
"CPU" : false,
"CRC_CHECK" : true,
"Clock_Route_Order" : 0,
"Correct_Hold_Violation" : true,
"DONE" : false,
"DOWNLOAD_SPEED" : "default",
"Disable_Insert_Pad" : false,
"ENABLE_CTP" : false,
"ENABLE_MERGE_MODE" : false,
"ENCRYPTION_KEY" : false,
"ENCRYPTION_KEY_TEXT" : "00000000000000000000000000000000",
"ERROR_DECTION_AND_CORRECTION" : false,
"ERROR_DECTION_ONLY" : false,
"ERROR_INJECTION" : false,
"EXTERNAL_MASTER_CONFIG_CLOCK" : false,
"Enable_DSRM" : false,
"FORMAT" : "binary",
"FREQUENCY_DIVIDER" : "",
"Generate_Constraint_File_of_Ports" : false,
"Generate_IBIS_File" : false,
"Generate_Plain_Text_Timing_Report" : false,
"Generate_Post_PNR_Simulation_Model_File" : false,
"Generate_Post_Place_File" : false,
"Generate_SDF_File" : false,
"Generate_VHDL_Post_PNR_Simulation_Model_File" : false,
"Global_Freq" : "default",
"GwSyn_Loop_Limit" : 2000,
"HOTBOOT" : false,
"I2C" : false,
"I2C_SLAVE_ADDR" : "00",
"IncludePath" : [
],
"Incremental_Compile" : "",
"Initialize_Primitives" : false,
"JTAG" : false,
"MODE_IO" : false,
"MSPI" : false,
"MSPI_JUMP" : false,
"MULTIBOOT_ADDRESS_WIDTH" : "24",
"MULTIBOOT_MODE" : "Normal",
"MULTIBOOT_SPI_FLASH_ADDRESS" : "00000000",
"MULTIJUMP_ADDRESS_WIDTH" : "24",
"MULTIJUMP_MODE" : "Normal",
"MULTIJUMP_SPI_FLASH_ADDRESS" : "000000",
"Multi_Boot" : true,
"OUTPUT_BASE_NAME" : "bttn",
"POWER_ON_RESET_MONITOR" : true,
"PRINT_BSRAM_VALUE" : true,
"PROGRAM_DONE_BYPASS" : false,
"PlaceInRegToIob" : true,
"PlaceIoRegToIob" : true,
"PlaceOutRegToIob" : true,
"Place_Option" : "0",
"Process_Configuration_Verion" : "1.0",
"Promote_Physical_Constraint_Warning_to_Error" : true,
"READY" : false,
"RECONFIG_N" : false,
"Ram_RW_Check" : false,
"Replicate_Resources" : false,
"Report_Auto-Placed_Io_Information" : false,
"Route_Maxfan" : 23,
"Route_Option" : "0",
"Run_Timing_Driven" : true,
"SECURE_MODE" : false,
"SECURITY_BIT" : true,
"SEU_HANDLER" : false,
"SEU_HANDLER_CHECKSUM" : false,
"SEU_HANDLER_MODE" : "auto",
"SSPI" : false,
"STOP_SEU_HANDLER" : false,
"Show_All_Warnings" : false,
"Synthesize_tool" : "GowinSyn",
"TclPre" : "",
"TopModule" : "",
"USERCODE" : "default",
"Unused_Pin" : "As_input_tri_stated_with_pull_up",
"VCCAUX" : 3.3,
"VCCX" : "3.3",
"VHDL_Standard" : "VHDL_Std_1993",
"Verilog_Standard" : "Vlg_Std_2001",
"WAKE_UP" : "0",
"show_all_warnings" : false,
"turn_off_bg" : false
}

View File

@ -0,0 +1,130 @@
GowinSynthesis start
Running parser ...
Analyzing Verilog file '\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\ALU.v'
Analyzing Verilog file '\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\BinaryToBCD.v'
Analyzing Verilog file '\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\addition.v'
Analyzing Verilog file '\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\arithmeticUnit.v'
Analyzing Verilog file '\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\bttn.v'
Analyzing Verilog file '\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\dabble.v'
Analyzing Verilog file '\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v'
Analyzing Verilog file '\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fullsubtraction.v'
Analyzing Verilog file '\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\halfadder.v'
Analyzing Verilog file '\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\halfsubtraction.v'
Analyzing Verilog file '\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\logicUnit.v'
Analyzing Verilog file '\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\multiplier.v'
Analyzing Verilog file '\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\opCode.v'
Analyzing Verilog file '\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\selector.v'
Analyzing Verilog file '\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\subtraction.v'
Compiling module 'bttn'("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\bttn.v":1)
Compiling module 'ALU'("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\ALU.v":1)
Compiling module 'opCode'("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\opCode.v":1)
Compiling module 'arithmeticUnit'("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\arithmeticUnit.v":1)
Compiling module 'addition'("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\addition.v":1)
Compiling module 'fulladder'("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":1)
Compiling module 'halfadder'("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\halfadder.v":1)
Compiling module 'subtraction'("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\subtraction.v":1)
Compiling module 'fullsubtraction'("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fullsubtraction.v":1)
Compiling module 'halfsubtraction'("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\halfsubtraction.v":1)
Compiling module 'logicUnit'("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\logicUnit.v":1)
Compiling module 'multiplier'("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\multiplier.v":1)
Compiling module 'BinaryToBCD'("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\BinaryToBCD.v":1)
Compiling module 'dabble'("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\dabble.v":1)
Compiling module 'selector'("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\selector.v":1)
NOTE (EX0101) : Current top module is "bttn"
[5%] Running netlist conversion ...
Running device independent optimization ...
[10%] Optimizing Phase 0 completed
[15%] Optimizing Phase 1 completed
[25%] Optimizing Phase 2 completed
Running inference ...
[30%] Inferring Phase 0 completed
[40%] Inferring Phase 1 completed
[50%] Inferring Phase 2 completed
[55%] Inferring Phase 3 completed
Running technical mapping ...
[60%] Tech-Mapping Phase 0 completed
[65%] Tech-Mapping Phase 1 completed
[75%] Tech-Mapping Phase 2 completed
[80%] Tech-Mapping Phase 3 completed
[90%] Tech-Mapping Phase 4 completed
WARN (NL0002) : The module "ALU" instantiated to "a1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\bttn.v":10)
WARN (NL0002) : The module "arithmeticUnit" instantiated to "aU" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\ALU.v":20)
WARN (NL0002) : The module "addition" instantiated to "a1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\arithmeticUnit.v":13)
WARN (NL0002) : The module "fulladder" instantiated to "f0" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\addition.v":11)
WARN (NL0002) : The module "halfadder" instantiated to "h1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":8)
WARN (NL0002) : The module "halfadder" instantiated to "h2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":9)
WARN (NL0002) : The module "fulladder" instantiated to "f1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\addition.v":12)
WARN (NL0002) : The module "halfadder" instantiated to "h1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":8)
WARN (NL0002) : The module "halfadder" instantiated to "h2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":9)
WARN (NL0002) : The module "fulladder" instantiated to "f2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\addition.v":13)
WARN (NL0002) : The module "halfadder" instantiated to "h1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":8)
WARN (NL0002) : The module "halfadder" instantiated to "h2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":9)
WARN (NL0002) : The module "fulladder" instantiated to "f3" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\addition.v":14)
WARN (NL0002) : The module "halfadder" instantiated to "h1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":8)
WARN (NL0002) : The module "halfadder" instantiated to "h2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":9)
WARN (NL0002) : The module "subtraction" instantiated to "s1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\arithmeticUnit.v":14)
WARN (NL0002) : The module "fullsubtraction" instantiated to "f0" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\subtraction.v":11)
WARN (NL0002) : The module "halfsubtraction" instantiated to "hf1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fullsubtraction.v":8)
WARN (NL0002) : The module "halfsubtraction" instantiated to "hf2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fullsubtraction.v":9)
WARN (NL0002) : The module "fullsubtraction" instantiated to "f1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\subtraction.v":12)
WARN (NL0002) : The module "halfsubtraction" instantiated to "hf1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fullsubtraction.v":8)
WARN (NL0002) : The module "halfsubtraction" instantiated to "hf2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fullsubtraction.v":9)
WARN (NL0002) : The module "fullsubtraction" instantiated to "f2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\subtraction.v":13)
WARN (NL0002) : The module "halfsubtraction" instantiated to "hf1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fullsubtraction.v":8)
WARN (NL0002) : The module "halfsubtraction" instantiated to "hf2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fullsubtraction.v":9)
WARN (NL0002) : The module "fullsubtraction" instantiated to "f3" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\subtraction.v":14)
WARN (NL0002) : The module "halfsubtraction" instantiated to "hf1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fullsubtraction.v":8)
WARN (NL0002) : The module "halfsubtraction" instantiated to "hf2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fullsubtraction.v":9)
WARN (NL0002) : The module "BinaryToBCD" instantiated to "btod1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\ALU.v":76)
WARN (NL0002) : The module "dabble" instantiated to "d1t" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\BinaryToBCD.v":21)
WARN (NL0002) : The module "dabble" instantiated to "d2u" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\BinaryToBCD.v":30)
WARN (NL0002) : The module "dabble" instantiated to "d3v" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\BinaryToBCD.v":39)
WARN (NL0002) : The module "dabble" instantiated to "d4w" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\BinaryToBCD.v":48)
WARN (NL0002) : The module "dabble" instantiated to "d5x" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\BinaryToBCD.v":57)
WARN (NL0002) : The module "dabble" instantiated to "d6y" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\BinaryToBCD.v":66)
WARN (NL0002) : The module "dabble" instantiated to "d7z" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\BinaryToBCD.v":75)
WARN (NL0002) : The module "logicUnit" instantiated to "lU" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\ALU.v":21)
WARN (NL0002) : The module "multiplier" instantiated to "mU" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\ALU.v":22)
WARN (NL0002) : The module "addition" instantiated to "add0" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\multiplier.v":33)
WARN (NL0002) : The module "fulladder" instantiated to "f0" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\addition.v":11)
WARN (NL0002) : The module "halfadder" instantiated to "h1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":8)
WARN (NL0002) : The module "halfadder" instantiated to "h2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":9)
WARN (NL0002) : The module "fulladder" instantiated to "f1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\addition.v":12)
WARN (NL0002) : The module "halfadder" instantiated to "h1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":8)
WARN (NL0002) : The module "halfadder" instantiated to "h2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":9)
WARN (NL0002) : The module "fulladder" instantiated to "f2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\addition.v":13)
WARN (NL0002) : The module "halfadder" instantiated to "h1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":8)
WARN (NL0002) : The module "halfadder" instantiated to "h2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":9)
WARN (NL0002) : The module "fulladder" instantiated to "f3" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\addition.v":14)
WARN (NL0002) : The module "halfadder" instantiated to "h1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":8)
WARN (NL0002) : The module "halfadder" instantiated to "h2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":9)
WARN (NL0002) : The module "addition" instantiated to "add1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\multiplier.v":49)
WARN (NL0002) : The module "fulladder" instantiated to "f0" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\addition.v":11)
WARN (NL0002) : The module "halfadder" instantiated to "h1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":8)
WARN (NL0002) : The module "halfadder" instantiated to "h2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":9)
WARN (NL0002) : The module "fulladder" instantiated to "f1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\addition.v":12)
WARN (NL0002) : The module "halfadder" instantiated to "h1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":8)
WARN (NL0002) : The module "halfadder" instantiated to "h2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":9)
WARN (NL0002) : The module "fulladder" instantiated to "f2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\addition.v":13)
WARN (NL0002) : The module "halfadder" instantiated to "h1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":8)
WARN (NL0002) : The module "halfadder" instantiated to "h2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":9)
WARN (NL0002) : The module "fulladder" instantiated to "f3" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\addition.v":14)
WARN (NL0002) : The module "halfadder" instantiated to "h1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":8)
WARN (NL0002) : The module "halfadder" instantiated to "h2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":9)
WARN (NL0002) : The module "addition" instantiated to "add2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\multiplier.v":65)
WARN (NL0002) : The module "fulladder" instantiated to "f0" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\addition.v":11)
WARN (NL0002) : The module "halfadder" instantiated to "h1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":8)
WARN (NL0002) : The module "halfadder" instantiated to "h2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":9)
WARN (NL0002) : The module "fulladder" instantiated to "f1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\addition.v":12)
WARN (NL0002) : The module "halfadder" instantiated to "h1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":8)
WARN (NL0002) : The module "halfadder" instantiated to "h2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":9)
WARN (NL0002) : The module "fulladder" instantiated to "f2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\addition.v":13)
WARN (NL0002) : The module "halfadder" instantiated to "h1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":8)
WARN (NL0002) : The module "halfadder" instantiated to "h2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":9)
WARN (NL0002) : The module "fulladder" instantiated to "f3" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\addition.v":14)
WARN (NL0002) : The module "halfadder" instantiated to "h1" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":8)
WARN (NL0002) : The module "halfadder" instantiated to "h2" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v":9)
WARN (NL0002) : The module "opCode" instantiated to "opCd" is swept in optimizing("\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\ALU.v":18)
[95%] Generate netlist file "\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\impl\gwsynthesis\bttn.vg" completed
[100%] Generate report file "\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\impl\gwsynthesis\bttn_syn.rpt.html" completed
GowinSynthesis finish

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE gowin-synthesis-project>
<Project>
<Version>beta</Version>
<Device id="GW2A-18C" package="PBGA256" speed="8" partNumber="GW2A-LV18PG256C8/I7"/>
<FileList>
<File path="\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\ALU.v" type="verilog"/>
<File path="\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\BinaryToBCD.v" type="verilog"/>
<File path="\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\addition.v" type="verilog"/>
<File path="\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\arithmeticUnit.v" type="verilog"/>
<File path="\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\bttn.v" type="verilog"/>
<File path="\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\dabble.v" type="verilog"/>
<File path="\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v" type="verilog"/>
<File path="\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fullsubtraction.v" type="verilog"/>
<File path="\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\halfadder.v" type="verilog"/>
<File path="\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\halfsubtraction.v" type="verilog"/>
<File path="\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\logicUnit.v" type="verilog"/>
<File path="\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\multiplier.v" type="verilog"/>
<File path="\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\opCode.v" type="verilog"/>
<File path="\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\selector.v" type="verilog"/>
<File path="\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\subtraction.v" type="verilog"/>
</FileList>
<OptionList>
<Option type="disable_insert_pad" value="0"/>
<Option type="global_freq" value="100.000"/>
<Option type="looplimit" value="2000"/>
<Option type="output_file" value="\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\impl\gwsynthesis\bttn.vg"/>
<Option type="print_all_synthesis_warning" value="0"/>
<Option type="ram_rw_check" value="0"/>
<Option type="verilog_language" value="verilog-2001"/>
<Option type="vhdl_language" value="vhdl-1993"/>
</OptionList>
</Project>

View File

@ -0,0 +1,442 @@
//
//Written by GowinSynthesis
//Tool Version "V1.9.9.03 Education (64-bit)"
//Sat Jan 18 22:12:34 2025
//Source file index table:
//file0 "\//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/ALU.v"
//file1 "\//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/BinaryToBCD.v"
//file2 "\//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/addition.v"
//file3 "\//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/arithmeticUnit.v"
//file4 "\//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/bttn.v"
//file5 "\//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/dabble.v"
//file6 "\//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v"
//file7 "\//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fullsubtraction.v"
//file8 "\//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v"
//file9 "\//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfsubtraction.v"
//file10 "\//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/logicUnit.v"
//file11 "\//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/multiplier.v"
//file12 "\//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/opCode.v"
//file13 "\//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/selector.v"
//file14 "\//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/subtraction.v"
`pragma protect begin_protected
`pragma protect version="2.3"
`pragma protect author="default"
`pragma protect author_info="default"
`pragma protect encrypt_agent="GOWIN"
`pragma protect encrypt_agent_info="GOWIN Encrypt Version 2.3"
`pragma protect encoding=(enctype="base64", line_length=76, bytes=256)
`pragma protect key_keyowner="GOWIN",key_keyname="GWK2023-09",key_method="rsa"
`pragma protect key_block
XUxlt4kAZNWx+CZjpNFOxuyr5JO+J79HgKtXfRxwq3+j18TlfhUIlARkWKvjVVOxCF/MUt/NWoaJ
4ms5amTKHFuEObR0JwM3EOMte3cvLoPmahEU0sXSzQhKtOe+5EgFItJXy8m5ck6UFNwkGI7DU5av
EY+ZNc/foLf/qnSH7KqE13zSAMw6Yki5jMuAAExtuXbDsoISpuu8gvDgoaE6ZE4b+fCD/2gHIH8o
IlRz3L3ftcIfut5/DMSxtM/Io4DCvzqs/bAu1gvr/SdXbsdVpidDuEGk/Ds2uSIINeGEznqIPrjy
xzWh6Fb/1+hkQegvfmRYRxZbbW0acmF5V2ilMg==
`pragma protect encoding=(enctype="base64", line_length=76, bytes=22736)
`pragma protect data_keyowner="default-ip-vendor"
`pragma protect data_keyname="default-ip-key"
`pragma protect data_method="aes128-cfb"
`pragma protect data_block
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
`pragma protect end_protected

View File

@ -0,0 +1,189 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>synthesis Report</title>
<style type="text/css">
body { font-family: Verdana, Arial, sans-serif; font-size: 12px; }
div#main_wrapper{ width: 100%; }
div#content { margin-left: 350px; margin-right: 30px; }
div#catalog_wrapper {position: fixed; top: 30px; width: 350px; float: left; }
div#catalog ul { list-style-type: none; }
div#catalog li { text-align: left; list-style-type:circle; color: #0084ff; margin-top: 3px; margin-bottom: 3px; }
div#catalog a { display:inline-block; text-decoration: none; color: #0084ff; font-weight: bold; padding: 3px; }
div#catalog a:visited { color: #0084ff; }
div#catalog a:hover { color: #fff; background: #0084ff; }
hr { margin-top: 30px; margin-bottom: 30px; }
h1, h3 { text-align: center; }
h1 {margin-top: 50px; }
table, th, td { border: 1px solid #aaa; }
table { border-collapse:collapse; margin-top: 10px; margin-bottom: 20px; width: 100%; }
th, td { padding: 5px 5px 5px 5px; }
th { color: #fff; font-weight: bold; background-color: #0084ff; }
table.summary_table td.label { width: 24%; min-width: 200px; background-color: #dee8f4; }
table.detail_table td.label { min-width: 100px; width: 8%;}
</style>
</head>
<body>
<div id="main_wrapper">
<div id="catalog_wrapper">
<div id="catalog">
<ul>
<li><a href="#about" style=" font-size: 16px;">Synthesis Messages</a></li>
<li><a href="#summary" style=" font-size: 16px;">Synthesis Details</a></li>
<li><a href="#resource" style=" font-size: 16px;">Resource</a>
<ul>
<li><a href="#usage" style=" font-size: 14px;">Resource Usage Summary</a></li>
<li><a href="#utilization" style=" font-size: 14px;">Resource Utilization Summary</a></li>
</ul>
</li>
</ul>
</div><!-- catalog -->
</div><!-- catalog_wrapper -->
<div id="content">
<h1><a name="about">Synthesis Messages</a></h1>
<table class="summary_table">
<tr>
<td class="label">Report Title</td>
<td>GowinSynthesis Report</td>
</tr>
<tr>
<td class="label">Design File</td>
<td>\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\ALU.v<br>
\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\BinaryToBCD.v<br>
\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\addition.v<br>
\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\arithmeticUnit.v<br>
\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\bttn.v<br>
\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\dabble.v<br>
\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fulladder.v<br>
\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\fullsubtraction.v<br>
\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\halfadder.v<br>
\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\halfsubtraction.v<br>
\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\logicUnit.v<br>
\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\multiplier.v<br>
\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\opCode.v<br>
\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\selector.v<br>
\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\subtraction.v<br>
</td>
</tr>
<tr>
<td class="label">GowinSynthesis Constraints File</td>
<td>---</td>
</tr>
<tr>
<td class="label">Tool Version</td>
<td>V1.9.9.03 Education (64-bit)</td>
</tr>
<tr>
<td class="label">Part Number</td>
<td>GW2A-LV18PG256C8/I7</td>
</tr>
<tr>
<td class="label">Device</td>
<td>GW2A-18</td>
</tr>
<tr>
<td class="label">Device Version</td>
<td>C</td>
</tr>
<tr>
<td class="label">Created Time</td>
<td>Sat Jan 18 22:12:34 2025
</td>
</tr>
<tr>
<td class="label">Legal Announcement</td>
<td>Copyright (C)2014-2024 Gowin Semiconductor Corporation. ALL rights reserved.</td>
</tr>
</table>
<h1><a name="summary">Synthesis Details</a></h1>
<table class="summary_table">
<tr>
<td class="label">Top Level Module</td>
<td>bttn</td>
</tr>
<tr>
<td class="label">Synthesis Process</td>
<td>Running parser:<br/>&nbsp;&nbsp;&nbsp;&nbsp;CPU time = 0h 0m 0.14s, Elapsed time = 0h 0m 0.353s, Peak memory usage = 391.969MB<br/>Running netlist conversion:<br/>&nbsp;&nbsp;&nbsp;&nbsp;CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 0MB<br/>Running device independent optimization:<br/>&nbsp;&nbsp;&nbsp;&nbsp;Optimizing Phase 0: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.006s, Peak memory usage = 391.969MB<br/>&nbsp;&nbsp;&nbsp;&nbsp;Optimizing Phase 1: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.004s, Peak memory usage = 391.969MB<br/>&nbsp;&nbsp;&nbsp;&nbsp;Optimizing Phase 2: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.002s, Peak memory usage = 391.969MB<br/>Running inference:<br/>&nbsp;&nbsp;&nbsp;&nbsp;Inferring Phase 0: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.005s, Peak memory usage = 391.969MB<br/>&nbsp;&nbsp;&nbsp;&nbsp;Inferring Phase 1: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.001s, Peak memory usage = 391.969MB<br/>&nbsp;&nbsp;&nbsp;&nbsp;Inferring Phase 2: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.001s, Peak memory usage = 391.969MB<br/>&nbsp;&nbsp;&nbsp;&nbsp;Inferring Phase 3: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s, Peak memory usage = 391.969MB<br/>Running technical mapping:<br/>&nbsp;&nbsp;&nbsp;&nbsp;Tech-Mapping Phase 0: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.004s, Peak memory usage = 391.969MB<br/>&nbsp;&nbsp;&nbsp;&nbsp;Tech-Mapping Phase 1: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.002s, Peak memory usage = 391.969MB<br/>&nbsp;&nbsp;&nbsp;&nbsp;Tech-Mapping Phase 2: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.002s, Peak memory usage = 391.969MB<br/>&nbsp;&nbsp;&nbsp;&nbsp;Tech-Mapping Phase 3: CPU time = 0h 0m 2s, Elapsed time = 0h 0m 2s, Peak memory usage = 391.969MB<br/>&nbsp;&nbsp;&nbsp;&nbsp;Tech-Mapping Phase 4: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0.008s, Peak memory usage = 391.969MB<br/>Generate output files:<br/>&nbsp;&nbsp;&nbsp;&nbsp;CPU time = 0h 0m 0.015s, Elapsed time = 0h 0m 0.081s, Peak memory usage = 391.969MB<br/></td>
</tr>
<tr>
<td class="label">Total Time and Memory Usage</td>
<td>CPU time = 0h 0m 2s, Elapsed time = 0h 0m 2s, Peak memory usage = 391.969MB</td>
</tr>
</table>
<h1><a name="resource">Resource</a></h1>
<h2><a name="usage">Resource Usage Summary</a></h2>
<table class="summary_table">
<tr>
<td class="label"><b>Resource</b></td>
<td><b>Usage</b></td>
</tr>
<tr>
<td class="label"><b>I/O Port </b></td>
<td>25</td>
</tr>
<tr>
<td class="label"><b>I/O Buf </b></td>
<td>25</td>
</tr>
<tr>
<td class="label">&nbsp&nbsp&nbsp&nbspIBUF</td>
<td>13</td>
</tr>
<tr>
<td class="label">&nbsp&nbsp&nbsp&nbspOBUF</td>
<td>12</td>
</tr>
<tr>
<td class="label"><b>LUT </b></td>
<td>137</td>
</tr>
<tr>
<td class="label">&nbsp&nbsp&nbsp&nbspLUT2</td>
<td>20</td>
</tr>
<tr>
<td class="label">&nbsp&nbsp&nbsp&nbspLUT3</td>
<td>35</td>
</tr>
<tr>
<td class="label">&nbsp&nbsp&nbsp&nbspLUT4</td>
<td>82</td>
</tr>
</table>
<h2><a name="utilization">Resource Utilization Summary</a></h2>
<table class="summary_table">
<tr>
<td class="label"><b>Resource</b></td>
<td><b>Usage</b></td>
<td><b>Utilization</b></td>
</tr>
<tr>
<td class="label">Logic</td>
<td>137(137 LUT, 0 ALU) / 20736</td>
<td><1%</td>
</tr>
<tr>
<td class="label">Register</td>
<td>0 / 16173</td>
<td>0%</td>
</tr>
<tr>
<td class="label">&nbsp&nbsp--Register as Latch</td>
<td>0 / 16173</td>
<td>0%</td>
</tr>
<tr>
<td class="label">&nbsp&nbsp--Register as FF</td>
<td>0 / 16173</td>
<td>0%</td>
</tr>
<tr>
<td class="label">BSRAM</td>
<td>0 / 46</td>
<td>0%</td>
</tr>
</table>
</div><!-- content -->
</div><!-- main_wrapper -->
</body>
</html>

View File

@ -0,0 +1,56 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Hierarchy Module Resource</title>
<style type="text/css">
body { font-family: Verdana, Arial, sans-serif; font-size: 14px; }
div#main_wrapper{ width: 100%; }
h1 {text-align: center; }
h1 {margin-top: 36px; }
table, th, td { border: 1px solid #aaa; }
table { border-collapse:collapse; margin-top: 10px; margin-bottom: 20px; width: 100%; }
th, td { align = "center"; padding: 5px 2px 5px 5px; }
th { color: #fff; font-weight: bold; background-color: #0084ff; }
table td.label { width: 20%; white-space: nowrap; min-width: 20px; background-color: #dee8f4; }
</style>
</head>
<body>
<div id="main_wrapper">
<div id="content">
<h1>Hierarchy Module Resource</h1>
<table>
<tr>
<th class="label">MODULE NAME</th>
<th class="label">REG NUMBER</th>
<th class="label">ALU NUMBER</th>
<th class="label">LUT NUMBER</th>
<th class="label">DSP NUMBER</th>
<th class="label">BSRAM NUMBER</th>
<th class="label">SSRAM NUMBER</th>
<th class="label">ROM16 NUMBER</th>
</tr>
<tr>
<td class="label">bttn (//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/bttn.v)</td>
<td align = "center">-</td>
<td align = "center">-</td>
<td align = "center">-</td>
<td align = "center">-</td>
<td align = "center">-</td>
<td align = "center">-</td>
<td align = "center">-</td>
</tr>
<td class="label">&nbsp&nbsp&nbsp&nbsp|--s1
(//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/bttn.v)</td>
<td align = "center">-</td>
<td align = "center">-</td>
<td align = "center">137</td>
<td align = "center">-</td>
<td align = "center">-</td>
<td align = "center">-</td>
<td align = "center">-</td>
</tr>
</table>
</div><!-- content -->
</div><!-- main_wrapper -->
</body>
</html>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<Module name="bttn" T_Lut="137(0)">
<SubModule name="s1" Lut="137" T_Lut="137(137)"/>
</Module>

Binary file not shown.

Binary file not shown.

BIN
gowin/bttn/impl/pnr/bttn.db Normal file

Binary file not shown.

1378
gowin/bttn/impl/pnr/bttn.fs Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,29 @@
Reading netlist file: "\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\impl\gwsynthesis\bttn.vg"
Parsing netlist file "\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\impl\gwsynthesis\bttn.vg" completed
Processing netlist completed
Reading constraint file: "\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\bttn.cst"
Physical Constraint parsed completed
Running placement......
[10%] Placement Phase 0 completed
[20%] Placement Phase 1 completed
[30%] Placement Phase 2 completed
[50%] Placement Phase 3 completed
Running routing......
[60%] Routing Phase 0 completed
[70%] Routing Phase 1 completed
[80%] Routing Phase 2 completed
[90%] Routing Phase 3 completed
Running timing analysis......
[95%] Timing analysis completed
Placement and routing completed
Bitstream generation in progress......
Bitstream generation completed
Running power analysis......
[100%] Power analysis completed
Generate file "\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\impl\pnr\bttn.power.html" completed
Generate file "\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\impl\pnr\bttn.pin.html" completed
Generate file "\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\impl\pnr\bttn.rpt.html" completed
Generate file "\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\impl\pnr\bttn.rpt.txt" completed
Generate file "\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\impl\pnr\bttn.tr.html" completed
Sat Jan 18 22:12:46 2025

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,269 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Power Analysis Report</title>
<style type="text/css">
body { font-family: Verdana, Arial, sans-serif; font-size: 12px; }
div#main_wrapper { width: 100%; }
div#content { margin-left: 350px; margin-right: 30px; }
div#catalog_wrapper {position: fixed; top: 30px; width: 350px; float: left; }
div#catalog ul { list-style-type: none; }
div#catalog li { text-align: left; list-style-type:circle; color: #0084ff; margin-top: 3px; margin-bottom: 3px; }
div#catalog a { display:inline-block; text-decoration: none; color: #0084ff; font-weight: bold; padding: 3px; }
div#catalog a:visited { color: #0084ff; }
div#catalog a:hover { color: #fff; background: #0084ff; }
hr { margin-top: 30px; margin-bottom: 30px; }
h1, h3 { text-align: center; }
h1 {margin-top: 50px; }
table, th, td {white-space:pre; border: 1px solid #aaa; }
table { border-collapse:collapse; margin-top: 10px; margin-bottom: 20px; width: 100%; }
th, td { padding: 5px 5px 5px 5px; }
th { color: #fff; font-weight: bold; background-color: #0084ff; }
table.summary_table td.label { width: 24%; min-width: 200px; background-color: #dee8f4; }
table.thermal_table td.label { width: 24%; min-width: 200px; background-color: #dee8f4; }
table.Configure_table td.label { width: 24%; min-width: 200px; background-color: #dee8f4; }
table.detail_table th.label { min-width: 8%; width: 8%; }
</style>
</head>
<body>
<div id="main_wrapper">
<div id="catalog_wrapper">
<div id="catalog">
<ul>
<li><a href="#Message" style=" font-size: 16px;">Power Messages</a>
<ul>
<li><a href="#Configure_Info" style=" font-size: 14px;">Configure Information</a></li>
</ul>
</li>
<li><a href="#Summary" style=" font-size: 16px;">Power Summary</a>
<ul>
<li><a href="#Power_Info" style=" font-size: 14px;">Power Information</a></li>
<li><a href="#Thermal_Info" style=" font-size: 14px;">Thermal Information</a></li>
<li><a href="#Supply_Summary" style=" font-size: 14px;">Supply Information</a></li>
</ul>
</li>
<li><a href="#Detail" style=" font-size: 16px;">Power Details</a>
<ul>
<li><a href="#By_Block_Type" style=" font-size: 14px;">Power By Block Type</a></li>
<li><a href="#By_Hierarchy" style=" font-size: 14px;">Power By Hierarchy</a></li>
<li><a href="#By_Clock_Domain" style=" font-size: 14px;">Power By Clock Domain</a></li>
</ul>
</li>
</ul>
</div><!-- catalog -->
</div><!-- catalog_wrapper -->
<div id="content">
<h1><a name="Message">Power Messages</a></h1>
<table class="summary_table">
<tr>
<td class="label">Report Title</td>
<td>Power Analysis Report</td>
</tr>
<tr>
<td class="label">Design File</td>
<td>\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\impl\gwsynthesis\bttn.vg</td>
</tr>
<tr>
<td class="label">Physical Constraints File</td>
<td>\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\bttn.cst</td>
</tr>
<tr>
<td class="label">Timing Constraints File</td>
<td>---</td>
</tr>
<tr>
<td class="label">Tool Version</td>
<td>V1.9.9.03 Education (64-bit)</td>
</tr>
<tr>
<td class="label">Part Number</td>
<td>GW2A-LV18PG256C8/I7</td>
</tr>
<tr>
<td class="label">Device</td>
<td>GW2A-18</td>
</tr>
<tr>
<td class="label">Device Version</td>
<td>C</td>
</tr>
<tr>
<td class="label">Created Time</td>
<td>Sat Jan 18 22:12:42 2025
</td>
</tr>
<tr>
<td class="label">Legal Announcement</td>
<td>Copyright (C)2014-2024 Gowin Semiconductor Corporation. All rights reserved.</td>
</tr>
</table>
<h2><a name="Configure_Info">Configure Information:</a></h2>
<table class="summary_table">
<tr>
<td class="label">Grade</td>
<td>Commercial</td>
</tr>
<tr>
<td class="label">Process</td>
<td>Typical</td>
</tr>
<tr>
<td class="label">Ambient Temperature</td>
<td>25.000
</tr>
<tr>
<td class="label">Use Custom Theta JA</td>
<td>false</td>
</tr>
<tr>
<td class="label">Heat Sink</td>
<td>None</td>
</tr>
<tr>
<td class="label">Air Flow</td>
<td>LFM_0</td>
</tr>
<tr>
<td class="label">Use Custom Theta SA</td>
<td>false</td>
</tr>
<tr>
<td class="label">Board Thermal Model</td>
<td>None</td>
</tr>
<tr>
<td class="label">Use Custom Theta JB</td>
<td>false</td>
</tr>
<tr>
<td class="label">Related Vcd File</td>
<td></td>
</tr>
<tr>
<td class="label">Related Saif File</td>
<td></td>
</tr>
<tr>
<td class="label">Filter Glitches</td>
<td>false</td>
</tr>
<tr>
<td class="label">Default IO Toggle Rate</td>
<td>0.125</td>
</tr>
<tr>
<td class="label">Default Remain Toggle Rate</td>
<td>0.125</td>
</tr>
</table>
<h1><a name="Summary">Power Summary</a></h1>
<h2><a name="Power_Info">Power Information:</a></h2>
<table class="summary_table">
<tr>
<td class="label">Total Power (mW)</td>
<td>124.284</td>
</tr>
<tr>
<td class="label">Quiescent Power (mW)</td>
<td>121.171</td>
</tr>
<tr>
<td class="label">Dynamic Power (mW)</td>
<td>3.114</td>
</tr>
</table>
<h2><a name="Thermal_Info">Thermal Information:</a></h2>
<table class="summary_table">
<tr>
<td class="label">Junction Temperature</td>
<td>28.980</td>
</tr>
<tr>
<td class="label">Theta JA</td>
<td>32.020</td>
</tr>
<tr>
<td class="label">Max Allowed Ambient Temperature</td>
<td>81.020</td>
</tr>
</table>
<h2><a name="Supply_Summary">Supply Information:</a></h2>
<table class="summary_table">
<tr>
<th class="label">Voltage Source</th>
<th class="label">Voltage</th>
<th class="label">Dynamic Current(mA)</th>
<th class="label">Quiescent Current(mA)</th>
<th class="label">Power(mW)</th>
</tr>
<tr>
<td>VCC</td>
<td>1.000</td>
<td>0.513</td>
<td>69.983</td>
<td>70.496</td>
</tr>
<tr>
<td>VCCX</td>
<td>3.300</td>
<td>0.513</td>
<td>15.000</td>
<td>51.192</td>
</tr>
<tr>
<td>VCCIO18</td>
<td>1.800</td>
<td>0.505</td>
<td>0.937</td>
<td>2.597</td>
</tr>
</table>
<h1><a name="Detail">Power Details</a></h1>
<h2><a name="By_Block_Type">Power By Block Type:</a></h2>
<table class="detail_table">
<tr>
<th class="label">Block Type</th>
<th class="label">Total Power(mW)</th>
<th class="label">Static Power(mW)</th>
<th class="label">Average Toggle Rate(millions of transitions/sec)</th>
</tr>
<tr>
<td>IO</td>
<td>7.854
<td>4.740
<td>6.500
</tr>
</table>
<h2><a name="By_Hierarchy">Power By Hierarchy:</a></h2>
<table class="detail_table">
<tr>
<th class="label">Hierarchy Entity</th>
<th class="label">Total Power(mW)</th>
<th class="label">Block Dynamic Power(mW)</th>
</tr>
<tr>
<td>bttn</td>
<td>0.000</td>
<td>0.000(0.000)</td>
<tr>
<td>bttn/s1/</td>
<td>0.000</td>
<td>0.000(0.000)</td>
</table>
<h2><a name="By_Clock_Domain">Power By Clock Domain:</a></h2>
<table class="detail_table">
<tr>
<th class="label">Clock Domain</th>
<th class="label">Clock Frequency(Mhz)</th>
<th class="label">Total Dynamic Power(mW)</th>
</tr>
<tr>
<td>NO CLOCK DOMAIN</td>
<td>0.000</td>
<td>0.000</td>
</tr>
</table>
</div><!-- content -->
</div><!-- main_wrapper -->
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,363 @@
//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
//All rights reserved.
1. PnR Messages
<Report Title>: PnR Report
<Design File>: \\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\impl\gwsynthesis\bttn.vg
<Physical Constraints File>: \\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\bttn.cst
<Timing Constraints File>: ---
<Tool Version>: V1.9.9.03 Education (64-bit)
<Part Number>: GW2A-LV18PG256C8/I7
<Device>: GW2A-18
<Device Version>: C
<Created Time>:Sat Jan 18 22:12:45 2025
2. PnR Details
Running placement:
Placement Phase 0: CPU time = 0h 0m 0.021s, Elapsed time = 0h 0m 0.021s
Placement Phase 1: CPU time = 0h 0m 0.354s, Elapsed time = 0h 0m 0.354s
Placement Phase 2: CPU time = 0h 0m 0.008s, Elapsed time = 0h 0m 0.008s
Placement Phase 3: CPU time = 0h 0m 1s, Elapsed time = 0h 0m 1s
Total Placement: CPU time = 0h 0m 2s, Elapsed time = 0h 0m 2s
Running routing:
Routing Phase 0: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s
Routing Phase 1: CPU time = 0h 0m 0.173s, Elapsed time = 0h 0m 0.173s
Routing Phase 2: CPU time = 0h 0m 0.224s, Elapsed time = 0h 0m 0.224s
Routing Phase 3: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s
Total Routing: CPU time = 0h 0m 0.397s, Elapsed time = 0h 0m 0.397s
Generate output files:
CPU time = 0h 0m 4s, Elapsed time = 0h 0m 4s
Total Time and Memory Usage: CPU time = 0h 0m 6s, Elapsed time = 0h 0m 6s, Peak memory usage = 391MB
3. Resource Usage Summary
----------------------------------------------------------
Resources | Usage
----------------------------------------------------------
Logic | 137/20736 <1%
--LUT,ALU,ROM16 | 137(137 LUT, 0 ALU, 0 ROM16)
--SSRAM(RAM16) | 0
Register | 0/16173 0%
--Logic Register as Latch | 0/15552 0%
--Logic Register as FF | 0/15552 0%
--I/O Register as Latch | 0/621 0%
--I/O Register as FF | 0/621 0%
CLS | 74/10368 <1%
I/O Port | 25
I/O Buf | 25
--Input Buf | 13
--Output Buf | 12
--Inout Buf | 0
IOLOGIC | 0%
BSRAM | 0%
DSP | 0%
PLL | 0/4 0%
DCS | 0/8 0%
DQCE | 0/24 0%
OSC | 0/1 0%
CLKDIV | 0/8 0%
DLLDLY | 0/8 0%
DQS | 0/9 0%
DHCEN | 0/16 0%
==========================================================
4. I/O Bank Usage Summary
-----------------------
I/O Bank | Usage
-----------------------
bank 0 | 1/29(3%)
bank 1 | 3/20(15%)
bank 2 | 2/20(10%)
bank 3 | 8/32(25%)
bank 4 | 2/36(5%)
bank 5 | 0/36(0%)
bank 6 | 1/18(5%)
bank 7 | 8/16(50%)
=======================
5. Global Clock Usage Summary
-------------------------------
Global Clock | Usage
-------------------------------
PRIMARY | 0/8(0%)
LW | 0/8(0%)
GCLK_PIN | 1/8(13%)
PLL | 0/4(0%)
CLKDIV | 0/8(0%)
DLLDLY | 0/8(0%)
===============================
6. Global Clock Signals
-------------------------------------------
Signal | Global Clock | Location
-------------------------------------------
===========================================
7. Pinout by Port Name
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Port Name | Diff Pair | Loc./Bank | Constraint | Dir. | Site | IO Type | Drive | Pull Mode | PCI Clamp | Hysteresis | Open Drain | Vref | Single Resistor | Diff Resistor | BankVccio
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
A[0] | | A11/7 | Y | in | IOL15[A] | LVCMOS18 | NA | NONE | ON | NONE | NA | NA | OFF | NA | 1.8
A[1] | | N6/3 | Y | in | IOR51[A] | LVCMOS18 | NA | NONE | ON | NONE | NA | NA | OFF | NA | 1.8
A[2] | | E15/1 | Y | in | IOT44[B] | LVCMOS18 | NA | NONE | ON | NONE | NA | NA | NA | NA | 1.8
A[3] | | L9/3 | Y | in | IOR40[B] | LVCMOS18 | NA | NONE | ON | NONE | NA | NA | OFF | NA | 1.8
B[0] | | B11/7 | Y | in | IOL13[A] | LVCMOS18 | NA | NONE | ON | NONE | NA | NA | OFF | NA | 1.8
B[1] | | D11/7 | Y | in | IOL22[A] | LVCMOS18 | NA | NONE | ON | NONE | NA | NA | OFF | NA | 1.8
B[2] | | N7/3 | Y | in | IOR47[B] | LVCMOS18 | NA | NONE | ON | NONE | NA | NA | OFF | NA | 1.8
B[3] | | N8/3 | Y | in | IOR40[A] | LVCMOS18 | NA | NONE | ON | NONE | NA | NA | OFF | NA | 1.8
opCodeA[0] | | T5/4 | Y | in | IOB54[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
opCodeA[1] | | T4/4 | Y | in | IOB45[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
opCodeA[2] | | E8/6 | Y | in | IOL45[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | OFF | NA | 1.8
select[0] | | A15/7 | Y | in | IOL2[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | OFF | NA | 1.8
select[1] | | A14/7 | Y | in | IOL8[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | OFF | NA | 1.8
Y[0] | | P6/3 | Y | out | IOR53[A] | LVCMOS18 | 8 | NONE | NA | NA | OFF | NA | OFF | NA | 1.8
Y[1] | | T7/3 | Y | out | IOR29[A] | LVCMOS18 | 8 | NONE | NA | NA | OFF | NA | OFF | NA | 1.8
Y[2] | | P8/3 | Y | out | IOR42[A] | LVCMOS18 | 8 | NONE | NA | NA | OFF | NA | OFF | NA | 1.8
Y[3] | | P9/3 | Y | out | IOR38[B] | LVCMOS18 | 8 | NONE | NA | NA | OFF | NA | OFF | NA | 1.8
Y[4] | | T11/2 | Y | out | IOR24[A] | LVCMOS18 | 8 | NONE | NA | NA | OFF | NA | OFF | NA | 1.8
Y[5] | | T12/2 | Y | out | IOR17[B] | LVCMOS18 | 8 | NONE | NA | NA | OFF | NA | OFF | NA | 1.8
Y[6] | | M14/1 | Y | out | IOT40[A] | LVCMOS18 | 8 | NONE | NA | NA | OFF | NA | NA | NA | 1.8
Y[7] | | J14/0 | Y | out | IOT22[B] | LVCMOS18 | 8 | NONE | NA | NA | OFF | NA | NA | NA | 1.8
Y[8] | | D14/1 | Y | out | IOT44[A] | LVCMOS18 | 8 | NONE | NA | NA | OFF | NA | NA | NA | 1.8
Y[9] | | B14/7 | Y | out | IOL2[A] | LVCMOS18 | 8 | NONE | NA | NA | OFF | NA | OFF | NA | 1.8
Y[10] | | B13/7 | Y | out | IOL8[A] | LVCMOS18 | 8 | NONE | NA | NA | OFF | NA | OFF | NA | 1.8
Y[11] | | B12/7 | Y | out | IOL7[B] | LVCMOS18 | 8 | NONE | NA | NA | OFF | NA | OFF | NA | 1.8
===================================================================================================================================================================================================================
8. All Package Pins
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Loc./Bank| Signal | Dir. | Site | IO Type | Drive | Pull Mode | PCI Clamp | Hysteresis | Open Drain | Vref | Single Resistor | Diff Resistor | Bank Vccio
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
L15/0 | - | in | IOT2[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
D16/0 | - | in | IOT4[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
E14/0 | - | in | IOT4[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
C16/0 | - | in | IOT5[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
D15/0 | - | in | IOT5[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
E16/0 | - | in | IOT6[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
F15/0 | - | in | IOT6[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
F13/0 | - | in | IOT8[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
G12/0 | - | in | IOT8[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
F14/0 | - | in | IOT9[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
F16/0 | - | in | IOT9[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
F12/0 | - | in | IOT12[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
G13/0 | - | in | IOT12[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
G15/0 | - | in | IOT13[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
G14/0 | - | in | IOT13[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
G11/0 | - | in | IOT14[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
H12/0 | - | in | IOT14[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
G16/0 | - | in | IOT16[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
H15/0 | - | in | IOT16[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
H13/0 | - | in | IOT18[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
J12/0 | - | in | IOT18[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
H14/0 | - | in | IOT20[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
H16/0 | - | in | IOT20[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
J16/0 | - | in | IOT22[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
J14/0 | Y[7] | out | IOT22[B] | LVCMOS18 | 8 | NONE | NA | NA | OFF | NA | NA | NA | 1.8
J15/0 | - | in | IOT24[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
K16/0 | - | in | IOT24[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
H11/0 | - | in | IOT27[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
J13/0 | - | in | IOT27[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
K14/1 | - | in | IOT30[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
K15/1 | - | in | IOT30[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
J11/1 | - | in | IOT32[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
L12/1 | - | in | IOT32[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
L16/1 | - | in | IOT34[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
L14/1 | - | in | IOT34[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
K13/1 | - | in | IOT36[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
K12/1 | - | in | IOT36[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
K11/1 | - | in | IOT38[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
L13/1 | - | in | IOT38[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
M14/1 | Y[6] | out | IOT40[A] | LVCMOS18 | 8 | NONE | NA | NA | OFF | NA | NA | NA | 1.8
M15/1 | - | in | IOT40[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
D14/1 | Y[8] | out | IOT44[A] | LVCMOS18 | 8 | NONE | NA | NA | OFF | NA | NA | NA | 1.8
E15/1 | A[2] | in | IOT44[B] | LVCMOS18 | NA | NONE | ON | NONE | NA | NA | NA | NA | 1.8
N15/1 | - | in | IOT48[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
P16/1 | - | in | IOT48[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
N16/1 | - | in | IOT52[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
N14/1 | - | in | IOT52[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
P15/1 | - | in | IOT54[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
R16/1 | - | in | IOT54[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
A4/5 | - | in | IOB2[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
C5/5 | - | in | IOB2[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
D6/5 | - | in | IOB3[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
E7/5 | - | in | IOB3[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
A3/5 | - | in | IOB4[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
B4/5 | - | in | IOB4[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
A5/5 | - | in | IOB7[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
B6/5 | - | in | IOB7[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
B1/5 | - | in | IOB8[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
C2/5 | - | in | IOB8[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
D3/5 | - | in | IOB9[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
D1/5 | - | in | IOB9[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
E2/5 | - | in | IOB12[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
E3/5 | - | in | IOB12[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
B3/5 | - | in | IOB13[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
A2/5 | - | in | IOB13[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
C1/5 | - | in | IOB14[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
D2/5 | - | in | IOB14[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
E1/5 | - | in | IOB16[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
F2/5 | - | in | IOB16[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
F4/5 | - | in | IOB18[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
G6/5 | - | in | IOB18[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
F3/5 | - | in | IOB19[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
F1/5 | - | in | IOB19[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
G5/5 | - | in | IOB20[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
G4/5 | - | in | IOB20[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
G2/5 | - | in | IOB21[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
G3/5 | - | in | IOB21[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
F5/5 | - | in | IOB22[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
H6/5 | - | in | IOB22[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
G1/5 | - | in | IOB24[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
H2/5 | - | in | IOB24[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
H4/5 | - | in | IOB26[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
J6/5 | - | in | IOB26[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
J1/5 | - | in | IOB27[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
J3/5 | - | in | IOB27[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
L2/4 | - | in | IOB30[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
M1/4 | - | in | IOB30[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
H3/4 | - | in | IOB32[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
H1/4 | - | in | IOB32[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
J2/4 | - | in | IOB34[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
K1/4 | - | in | IOB34[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
H5/4 | - | in | IOB35[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
J4/4 | - | in | IOB35[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
K3/4 | - | in | IOB36[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
K2/4 | - | in | IOB36[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
J5/4 | - | in | IOB37[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
K6/4 | - | in | IOB37[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
L1/4 | - | in | IOB38[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
L3/4 | - | in | IOB38[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
K4/4 | - | in | IOB39[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
L5/4 | - | in | IOB39[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
K5/4 | - | in | IOB40[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
L4/4 | - | in | IOB40[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
N2/4 | - | in | IOB41[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
P1/4 | - | in | IOB41[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
M3/4 | - | in | IOB42[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
N1/4 | - | in | IOB42[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
M2/4 | - | in | IOB43[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
N3/4 | - | in | IOB43[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
R1/4 | - | in | IOB44[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
P2/4 | - | in | IOB44[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
P4/4 | - | in | IOB45[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
T4/4 | opCodeA[1] | in | IOB45[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
R3/4 | - | in | IOB48[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
T2/4 | - | in | IOB48[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
P5/4 | - | in | IOB50[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
R5/4 | - | in | IOB50[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
R4/4 | - | in | IOB52[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
T3/4 | - | in | IOB52[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
R6/4 | - | in | IOB54[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
T5/4 | opCodeA[0] | in | IOB54[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
B14/7 | Y[9] | out | IOL2[A] | LVCMOS18 | 8 | NONE | NA | NA | OFF | NA | OFF | NA | 1.8
A15/7 | select[0] | in | IOL2[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | OFF | NA | 1.8
C12/7 | - | in | IOL7[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
B12/7 | Y[11] | out | IOL7[B] | LVCMOS18 | 8 | NONE | NA | NA | OFF | NA | OFF | NA | 1.8
B13/7 | Y[10] | out | IOL8[A] | LVCMOS18 | 8 | NONE | NA | NA | OFF | NA | OFF | NA | 1.8
A14/7 | select[1] | in | IOL8[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | OFF | NA | 1.8
F10/7 | - | in | IOL11[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
B11/7 | B[0] | in | IOL13[A] | LVCMOS18 | NA | NONE | ON | NONE | NA | NA | OFF | NA | 1.8
A12/7 | - | in | IOL13[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
A11/7 | A[0] | in | IOL15[A] | LVCMOS18 | NA | NONE | ON | NONE | NA | NA | OFF | NA | 1.8
C11/7 | - | in | IOL15[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
D10/7 | - | in | IOL17[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
E10/7 | - | in | IOL17[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
D11/7 | B[1] | in | IOL22[A] | LVCMOS18 | NA | NONE | ON | NONE | NA | NA | OFF | NA | 1.8
A9/7 | - | in | IOL27[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
C9/7 | - | in | IOL27[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
C8/6 | - | in | IOL29[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
A8/6 | - | in | IOL29[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
F9/6 | - | in | IOL31[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
E11/6 | - | in | IOL31[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
B9/6 | - | in | IOL33[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
A10/6 | - | in | IOL33[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
F8/6 | - | in | IOL35[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
D9/6 | - | in | IOL35[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
D8/6 | - | in | IOL38[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
E9/6 | - | in | IOL38[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
B7/6 | - | in | IOL40[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
C7/6 | - | in | IOL40[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
F7/6 | - | in | IOL45[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
E8/6 | opCodeA[2] | in | IOL45[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | OFF | NA | 1.8
C4/6 | - | in | IOL47[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
B5/6 | - | in | IOL47[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
E6/6 | - | in | IOL53[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
D7/6 | - | in | IOL53[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T15/2 | - | in | IOR7[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
R14/2 | - | in | IOR7[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
P12/2 | - | in | IOR8[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
T13/2 | - | in | IOR8[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
R12/2 | - | in | IOR11[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
P13/2 | - | in | IOR11[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
R11/2 | - | in | IOR17[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
T12/2 | Y[5] | out | IOR17[B] | LVCMOS18 | 8 | NONE | NA | NA | OFF | NA | OFF | NA | 1.8
R13/2 | - | in | IOR20[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
T14/2 | - | in | IOR20[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
M10/2 | - | in | IOR22[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
N11/2 | - | in | IOR22[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
T11/2 | Y[4] | out | IOR24[A] | LVCMOS18 | 8 | NONE | NA | NA | OFF | NA | OFF | NA | 1.8
P11/2 | - | in | IOR24[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
C6/2 | - | out | IOR25[A] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8
B8/2 | - | in | IOR25[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
A7/2 | - | in | IOR26[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
A6/2 | - | in | IOR26[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
N10/2 | - | in | IOR27[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
M11/2 | - | in | IOR27[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
T7/3 | Y[1] | out | IOR29[A] | LVCMOS18 | 8 | NONE | NA | NA | OFF | NA | OFF | NA | 1.8
R8/3 | - | in | IOR29[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
M16/3 | - | in | IOR30[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
B16/3 | - | in | IOR30[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
C15/3 | - | in | IOR31[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
B10/3 | - | in | IOR31[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
A13/3 | - | in | IOR32[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
C13/3 | - | in | IOR32[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
P10/3 | - | in | IOR33[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
R10/3 | - | in | IOR33[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
M9/3 | - | in | IOR34[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
L10/3 | - | in | IOR34[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
R9/3 | - | in | IOR35[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
T10/3 | - | in | IOR35[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
M8/3 | - | in | IOR36[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
N9/3 | - | in | IOR36[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
T9/3 | - | in | IOR38[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
P9/3 | Y[3] | out | IOR38[B] | LVCMOS18 | 8 | NONE | NA | NA | OFF | NA | OFF | NA | 1.8
C10/3 | - | in | IOR39[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
N8/3 | B[3] | in | IOR40[A] | LVCMOS18 | NA | NONE | ON | NONE | NA | NA | OFF | NA | 1.8
L9/3 | A[3] | in | IOR40[B] | LVCMOS18 | NA | NONE | ON | NONE | NA | NA | OFF | NA | 1.8
P8/3 | Y[2] | out | IOR42[A] | LVCMOS18 | 8 | NONE | NA | NA | OFF | NA | OFF | NA | 1.8
T8/3 | - | in | IOR42[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
M6/3 | - | in | IOR44[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
L8/3 | - | in | IOR44[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
M7/3 | - | in | IOR47[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
N7/3 | B[2] | in | IOR47[B] | LVCMOS18 | NA | NONE | ON | NONE | NA | NA | OFF | NA | 1.8
R7/3 | - | in | IOR49[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
P7/3 | - | in | IOR49[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
N6/3 | A[1] | in | IOR51[A] | LVCMOS18 | NA | NONE | ON | NONE | NA | NA | OFF | NA | 1.8
P6/3 | Y[0] | out | IOR53[A] | LVCMOS18 | 8 | NONE | NA | NA | OFF | NA | OFF | NA | 1.8
T6/3 | - | in | IOR53[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
========================================================================================================================================================================================

View File

View File

@ -0,0 +1,10 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Timing Analysis Report</title>
</head>
<frameset cols="20%, 80%">
<frame src="bttn_tr_cata.html" name="cataFrame" />
<frame src="bttn_tr_content.html" name="mainFrame"/>
</frameset>
</html>

View File

@ -0,0 +1,132 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Timing Report Navigation</title>
<style type="text/css">
@import url(../temp/style.css);
body { font-family: Verdana, Arial, sans-serif; font-size: 12px; }
div#catalog_wrapper { width: 100%; }
div#catalog ul { list-style: none; margin-left: -15px; }
div#catalog ul li { margin: 3px 0 3px 0; text-align: left; color: #0084ff; white-space: nowrap; word-break: keep-all; }
div#catalog a { display:inline-block; text-decoration: none; color: #0084ff; font-weight: bold; padding: 4px; margin: 0 0 0 0; }
div#catalog a:visited { color: #0084ff; }
div#catalog a:hover { color: #fff; background: #0084ff; }
div.triangle_fake, div.triangle { display: inline-block; cursor: pointer; width: 8px; height: 0; border-top: 5px solid transparent; border-bottom: 5px solid transparent; }
div.triangle_fake { border-left: 5px solid transparent; }
div.triangle { border-left: 5px solid #0084ff; }
div.triangle:hover { border-left-color: #000; }
</style>
<script>
function onClick(obj){var childs=obj.parentNode.childNodes;for(var i=0;i<childs.length;i++){if(childs[i].tagName=="UL"){if(childs[i].style.display=="none"){childs[i].style.display="block"}else{childs[i].style.display="none"}}}};
</script>
</head>
<body>
<div id="catalog_wrapper">
<div id="catalog">
<ul>
<!-- messages begin-->
<li><div class="triangle_fake"></div><a href="bttn_tr_content.html#Message" target="mainFrame" style=" font-size: 16px;">Timing Messages</a></li>
<!-- messages end-->
<!-- summaries begin-->
<li><div class="triangle" onclick="onClick(this)"></div><a href="bttn_tr_content.html#Summary" style=" font-size: 16px;" target="mainFrame">Timing Summaries</a>
<ul>
<li><div class="triangle_fake"></div><a href="bttn_tr_content.html#STA_Tool_Run_Summary" style=" font-size: 14px;" target="mainFrame">STA Tool Run Summary</a></li>
<li><div class="triangle_fake"></div><a href="bttn_tr_content.html#Clock_Report" style=" font-size: 14px;" target="mainFrame">Clock Summary</a></li>
<li><div class="triangle_fake"></div><a href="bttn_tr_content.html#Max_Frequency_Report" style=" font-size: 14px;" target="mainFrame">Max Frequency Summary</a></li>
<li><div class="triangle_fake"></div><a href="bttn_tr_content.html#Total_Negative_Slack_Report" style=" font-size: 14px;" target="mainFrame">Total Negative Slack Summary</a></li>
</ul>
</li>
<!-- summaries end-->
<!-- details begin-->
<li><div class="triangle" onclick="onClick(this)"></div><a href="bttn_tr_content.html#Detail" style=" font-size: 16px;" target="mainFrame">Timing Details</a>
<ul>
<!--All_Path_Slack_Table begin-->
<li><div class="triangle" onclick="onClick(this)"></div><a href="bttn_tr_content.html#All_Path_Slack_Table" style=" font-size: 14px;" target="mainFrame">Path Slacks Table</a>
<ul>
<!--Setup_Slack_Table begin-->
<li><div class="triangle_fake"></div><a href="bttn_tr_content.html#Setup_Slack_Table" style=" font-size: 13px;" target="mainFrame">Setup Paths Table</a>
</li>
<!--Setup_Slack_Table end-->
<!--Hold_Slack_Table begin-->
<li><div class="triangle_fake"></div><a href="bttn_tr_content.html#Hold_Slack_Table" style=" font-size: 13px;" target="mainFrame">Hold Paths Table</a>
</li>
<!--Hold_Slack_Table end-->
<!--Recovery_Slack_Table begin-->
<li><div class="triangle_fake"></div><a href="bttn_tr_content.html#Recovery_Slack_Table" style=" font-size: 13px;" target="mainFrame">Recovery Paths Table</a>
</li>
<!--Recovery_Slack_Table end-->
<!--Removal_Slack_Table begin-->
<li><div class="triangle_fake"></div><a href="bttn_tr_content.html#Removal_Slack_Table" style=" font-size: 13px;" target="mainFrame">Removal Paths Table</a>
</li>
<!--Removal_Slack_Table end-->
</ul>
</li><!--All_Path_Slack_Table end-->
<!--MIN_PULSE_WIDTH_TABLE begin-->
<li><div class="triangle_fake"></div><a href="bttn_tr_content.html#MIN_PULSE_WIDTH_TABLE" style=" font-size: 14px;" target="mainFrame">Minimum Pulse Width Table</a>
</li>
<!--MIN_PULSE_WIDTH_TABLE end-->
<!--Timing_Report_by_Analysis_Type begin-->
<li><div class="triangle" onclick="onClick(this)"></div><a href="bttn_tr_content.html#Timing_Report_by_Analysis_Type" style=" font-size: 14px;" target="mainFrame">Timing Report By Analysis Type</a>
<ul>
<!--Setup_Analysis begin-->
<li><div class="triangle_fake"></div><a href="bttn_tr_content.html#Setup_Analysis" style=" font-size: 13px;" target="mainFrame">Setup Analysis Report</a>
</li>
<!--Setup_Analysis end-->
<!--Hold_Analysis begin-->
<li><div class="triangle_fake"></div><a href="bttn_tr_content.html#Hold_Analysis" style=" font-size: 13px;" target="mainFrame">Hold Analysis Report</a>
</li>
<!--Hold_Analysis end-->
<!--Recovery_Analysis begin-->
<li><div class="triangle_fake"></div><a href="bttn_tr_content.html#Recovery_Analysis" style=" font-size: 13px;" target="mainFrame">Recovery Analysis Report</a>
</li>
<!--Recovery_Analysis end-->
<!--Removal_Analysis begin-->
<li><div class="triangle_fake"></div><a href="bttn_tr_content.html#Removal_Analysis" style=" font-size: 13px;" target="mainFrame">Removal Analysis Report</a>
</li>
<!--Removal_Analysis end-->
</ul>
</li>
<!--Timing_Report_by_Analysis_Type end-->
<!--Minimum_Pulse_Width_Report begin-->
<li><div class="triangle_fake"></div><a href="bttn_tr_content.html#Minimum_Pulse_Width_Report" style=" font-size: 14px;" target="mainFrame">Minimum Pulse Width Report</a>
</li>
<!--Minimum_Pulse_Width_Report end-->
<!--High_Fanout_Nets_Report begin-->
<li><div class="triangle_fake"></div><a href="bttn_tr_content.html#High_Fanout_Nets_Report" style=" font-size: 14px;" target="mainFrame">High Fanout Nets Report</a></li>
<!--High_Fanout_Nets_Report end-->
<!--Route_Congestions_Report begin-->
<li><div class="triangle_fake"></div><a href="bttn_tr_content.html#Route_Congestions_Report" style=" font-size: 14px;" target="mainFrame">Route Congestions Report</a></li>
<!--Route_Congestions_Report end-->
<!--Timing_Exceptions_Report begin-->
<li><div class="triangle" onclick="onClick(this)"></div><a href="bttn_tr_content.html#Timing_Exceptions_Report" style=" font-size: 14px;" target="mainFrame">Timing Exceptions Report</a>
<ul>
<!--Setup_Analysis_Exceptions begin-->
<li><div class="triangle_fake"></div><a href="bttn_tr_content.html#Setup_Analysis_Exceptions" style=" font-size: 13px;" target="mainFrame">Setup Analysis Report</a>
</li>
<!--Setup_Analysis_Exceptions end-->
<!--Hold_Analysis_Exceptions begin-->
<li><div class="triangle_fake"></div><a href="bttn_tr_content.html#Hold_Analysis_Exceptions" style=" font-size: 13px;" target="mainFrame">Hold Analysis Report</a>
</li>
<!--Hold_Analysis_Exceptions end-->
<!--Recovery_Analysis_Exceptions begin-->
<li><div class="triangle_fake"></div><a href="bttn_tr_content.html#Recovery_Analysis_Exceptions" style=" font-size: 13px;" target="mainFrame">Recovery Analysis Report</a>
</li>
<!--Recovery_Analysis_Exceptions end-->
<!--Removal_Analysis_Exceptions begin-->
<li><div class="triangle_fake" onclick="onClick(this)"></div><a href="bttn_tr_content.html#Removal_Analysis_Exceptions" style=" font-size: 13px;" target="mainFrame">Removal Analysis Report</a>
</li>
<!--Removal_Analysis_Exceptions end-->
</ul>
</li>
<!--Timing_Exceptions_Report end-->
<!--SDC_Report begin-->
<li><div class="triangle_fake"></div><a href="bttn_tr_content.html#SDC_Report" style=" font-size: 14px;" target="mainFrame">Timing Constraints Report</a></li>
<!--SDC_Report end-->
</ul>
</li>
<!-- details end-->
</ul>
</div><!-- catalog -->
</div><!-- catalog_wrapper -->
</body>
</html>

View File

@ -0,0 +1,257 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Timing Analysis Report</title>
<style type="text/css">
@import url(../temp/style.css);
body { font-family: Verdana, Arial, sans-serif; font-size: 12px; }
div#content { width: 100%; margin: }
hr { margin-top: 30px; margin-bottom: 30px; }
h1, h3 { text-align: center; }
h1 {margin-top: 50px; }
table, th, td {white-space:pre; border: 1px solid #aaa; }
table { border-collapse:collapse; margin-top: 10px; margin-bottom: 20px; width: 100%; }
th, td { padding: 5px 5px 5px 5px; }
th { color: #fff; font-weight: bold; background-color: #0084ff; }
table.summary_table td.label { width: 24%; min-width: 200px; background-color: #dee8f4; }
table.detail_table th.label { min-width: 8%; width: 8%; }
</style>
</head>
<body>
<div id="content">
<h1><a name="Message">Timing Messages</a></h1>
<table class="summary_table">
<tr>
<td class="label">Report Title</td>
<td>Timing Analysis Report</td>
</tr>
<tr>
<td class="label">Design File</td>
<td>\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\impl\gwsynthesis\bttn.vg</td>
</tr>
<tr>
<td class="label">Physical Constraints File</td>
<td>\\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\bttn.cst</td>
</tr>
<tr>
<td class="label">Timing Constraint File</td>
<td>---</td>
</tr>
<tr>
<td class="label">Tool Version</td>
<td>V1.9.9.03 Education (64-bit)</td>
</tr>
<tr>
<td class="label">Part Number</td>
<td>GW2A-LV18PG256C8/I7</td>
</tr>
<tr>
<td class="label">Device</td>
<td>GW2A-18</td>
</tr>
<tr>
<td class="label">Device Version</td>
<td>C</td>
</tr>
<tr>
<td class="label">Created Time</td>
<td>Sat Jan 18 22:12:46 2025
</td>
</tr>
<tr>
<td class="label">Legal Announcement</td>
<td>Copyright (C)2014-2024 Gowin Semiconductor Corporation. All rights reserved.</td>
</tr>
</table>
<h1><a name="Summary">Timing Summaries</a></h1>
<h2><a name="STA_Tool_Run_Summary">STA Tool Run Summary:</a></h2>
<table class="summary_table">
<tr>
<td class="label">Setup Delay Model</td>
<td>Slow 0.95V 85C C8/I7</td>
</tr>
<tr>
<td class="label">Hold Delay Model</td>
<td>Fast 1.05V 0C C8/I7</td>
</tr>
<tr>
<td class="label">Numbers of Paths Analyzed</td>
<td>124</td>
</tr>
<tr>
<td class="label">Numbers of Endpoints Analyzed</td>
<td>12</td>
</tr>
<tr>
<td class="label">Numbers of Falling Endpoints</td>
<td>0</td>
</tr>
<tr>
<td class="label">Numbers of Setup Violated Endpoints</td>
<td>0</td>
</tr>
<tr>
<td class="label">Numbers of Hold Violated Endpoints</td>
<td>0</td>
</tr>
</table>
<h2><a name="Clock_Report">Clock Summary:</a></h2>
<table class="detail_table">
<tr>
<th class="label">Clock Name</th>
<th class="label">Type</th>
<th class="label">Period</th>
<th class="label">Frequency(MHz)</th>
<th class="label">Rise</th>
<th class="label">Fall</th>
<th class="label">Source</th>
<th class="label">Master</th>
<th class="label">Objects</th>
</tr>
</table>
<h2><a name="Max_Frequency_Report">Max Frequency Summary:</a></h2>
<table>
<tr>
<th>NO.</th>
<th>Clock Name</th>
<th>Constraint</th>
<th>Actual Fmax</th>
<th>Logic Level</th>
<th>Entity</th>
</tr>
</table>
<h2><a name="Total_Negative_Slack_Report">Total Negative Slack Summary:</a></h2>
<table class="detail_table">
<tr>
<th class="label">Clock Name</th>
<th class="label">Analysis Type</th>
<th class="label">Endpoints TNS</th>
<th class="label">Number of Endpoints</th>
</tr>
</table>
<h1><a name="Detail">Timing Details</a></h1>
<h2><a name="All_Path_Slack_Table">Path Slacks Table:</a></h2>
<h3><a name="Setup_Slack_Table">Setup Paths Table</a></h3>
<h4>Report Command:report_timing -setup -max_paths 25 -max_common_paths 1</h4>
<h4>Nothing to report!</h4>
<h3><a name="Hold_Slack_Table">Hold Paths Table</a></h3>
<h4>Report Command:report_timing -hold -max_paths 25 -max_common_paths 1</h4>
<h4>Nothing to report!</h4>
<h3><a name="Recovery_Slack_Table">Recovery Paths Table</a></h3>
<h4>Report Command:report_timing -recovery -max_paths 25 -max_common_paths 1</h4>
<h4>Nothing to report!</h4>
<h3><a name="Removal_Slack_Table">Removal Paths Table</a></h3>
<h4>Report Command:report_timing -removal -max_paths 25 -max_common_paths 1</h4>
<h4>Nothing to report!</h4>
<h2><a name="MIN_PULSE_WIDTH_TABLE">Minimum Pulse Width Table:</a></h2>
<table class="detail_table">
<tr>
<th class="label">Number</th>
<th class="label">Slack</th>
<th class="label">Actual Width</th>
<th class="label">Required Width</th>
<th class="label">Type</th>
<th class="label">Clock</th>
<th class="label">Objects</th>
</tr>
<h4>Report Command:report_min_pulse_width -nworst 10 -detail</h4>
<h4>Nothing to report!</h4>
</table>
<h2><a name="Timing_Report_by_Analysis_Type">Timing Report By Analysis Type:</a></h2>
<h3><a name="Setup_Analysis">Setup Analysis Report</a></h3>
<h4>Report Command:report_timing -setup -max_paths 25 -max_common_paths 1</h4>
<h4>No setup paths to report!</h4>
<h3><a name="Hold_Analysis">Hold Analysis Report</a></h3>
<h4>Report Command:report_timing -hold -max_paths 25 -max_common_paths 1</h4>
<h4>No hold paths to report!</h4>
<h3><a name="Recovery_Analysis">Recovery Analysis Report</a></h3>
<h4>Report Command:report_timing -recovery -max_paths 25 -max_common_paths 1</h4>
<h4>No recovery paths to report!</h4>
<h3><a name="Removal_Analysis">Removal Analysis Report</a></h3>
<h4>Report Command:report_timing -removal -max_paths 25 -max_common_paths 1</h4>
<h4>No removal paths to report!</h4>
<h2><a name="Minimum_Pulse_Width_Report">Minimum Pulse Width Report:</a></h2>
<h4>Report Command:report_min_pulse_width -nworst 10 -detail</h4>
<h4>Nothing to report!</h4>
<h2><a name="High_Fanout_Nets_Report">High Fanout Nets Report:</a></h2>
<h4>Report Command:report_high_fanout_nets -max_nets 10</h4>
<table class="detail_table">
<tr>
<th class="label">FANOUT</th>
<th class="label">NET NAME</th>
<th class="label">WORST SLACK</th>
<th class="label">MAX DELAY</th>
</tr>
</table>
<h2><a name="Route_Congestions_Report">Route Congestions Report:</a></h2>
<h4>Report Command:report_route_congestion -max_grids 10</h4>
<table class="detail_table">
<tr>
<th class="label">GRID LOC</th>
<th class="label">ROUTE CONGESTIONS</th>
</tr>
<tr>
<td>R29C29</td>
<td>52.78%</td>
</tr>
<tr>
<td>R30C29</td>
<td>40.28%</td>
</tr>
<tr>
<td>R27C29</td>
<td>33.33%</td>
</tr>
<tr>
<td>R30C28</td>
<td>33.33%</td>
</tr>
<tr>
<td>R29C28</td>
<td>27.78%</td>
</tr>
<tr>
<td>R29C30</td>
<td>27.78%</td>
</tr>
<tr>
<td>R30C27</td>
<td>26.39%</td>
</tr>
<tr>
<td>R29C27</td>
<td>23.61%</td>
</tr>
<tr>
<td>R30C30</td>
<td>19.44%</td>
</tr>
<tr>
<td>R27C28</td>
<td>19.44%</td>
</tr>
</table>
<h2><a name="Timing_Exceptions_Report">Timing Exceptions Report:</a></h2>
<h3><a name="Setup_Analysis_Exceptions">Setup Analysis Report</a></h3>
<h4>Report Command:report_exceptions -setup -max_paths 5 -max_common_paths 1</h4>
<h4>No timing exceptions to report!</h4>
<h3><a name="Hold_Analysis_Exceptions">Hold Analysis Report</a></h3>
<h4>Report Command:report_exceptions -hold -max_paths 5 -max_common_paths 1</h4>
<h4>No timing exceptions to report!</h4>
<h3><a name="Recovery_Analysis_Exceptions">Recovery Analysis Report</a></h3>
<h4>Report Command:report_exceptions -recovery -max_paths 5 -max_common_paths 1</h4>
<h4>No timing exceptions to report!</h4>
<h3><a name="Removal_Analysis_Exceptions">Removal Analysis Report</a></h3>
<h4>Report Command:report_exceptions -removal -max_paths 5 -max_common_paths 1</h4>
<h4>No timing exceptions to report!</h4>
<h2><a name="SDC_Report">Timing Constraints Report:</a></h2>
<table class="detail_table">
<tr>
<th class="label">SDC Command Type</th>
<th class="label">State</th>
<th class="label">Detail Command</th>
</tr>
</table>
</div><!-- content -->
</body>
</html>

View File

@ -0,0 +1,13 @@
-d \\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\impl\gwsynthesis\bttn.vg
-p GW2A-18C-PBGA256-8
-pn GW2A-LV18PG256C8/I7
-cst \\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\src\bttn.cst
-cfg \\wsl.localhost\Debian\home\koray\code\verilog\gowin\bttn\impl\pnr\device.cfg
-bit
-tr
-ph
-timing
-cst_error
-correct_hold 1
-route_maxfan 23
-global_freq 100.000

View File

@ -0,0 +1,21 @@
set JTAG regular_io = false
set SSPI regular_io = false
set MSPI regular_io = false
set READY regular_io = false
set DONE regular_io = false
set I2C regular_io = false
set RECONFIG_N regular_io = false
set CRC_check = true
set compress = false
set encryption = false
set security_bit_enable = true
set bsram_init_fuse_print = true
set background_programming = off
set secure_mode = false
set program_done_bypass = false
set wake_up = 0
set format = binary
set power_on_reset_monitor = true
set multiboot_spi_flash_address = 0x00000000
set vccx = 3.3
set unused_pin = default

View File

@ -0,0 +1,702 @@
[
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/bttn.v",
"InstLine" : 1,
"InstName" : "bttn",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/bttn.v",
"ModuleLine" : 1,
"ModuleName" : "bttn",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/bttn.v",
"InstLine" : 10,
"InstName" : "a1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/ALU.v",
"ModuleLine" : 1,
"ModuleName" : "ALU",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/ALU.v",
"InstLine" : 18,
"InstName" : "opCd",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/opCode.v",
"ModuleLine" : 1,
"ModuleName" : "opCode"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/ALU.v",
"InstLine" : 20,
"InstName" : "aU",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/arithmeticUnit.v",
"ModuleLine" : 1,
"ModuleName" : "arithmeticUnit",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/arithmeticUnit.v",
"InstLine" : 13,
"InstName" : "a1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/addition.v",
"ModuleLine" : 1,
"ModuleName" : "addition",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/addition.v",
"InstLine" : 11,
"InstName" : "f0",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"ModuleLine" : 1,
"ModuleName" : "fulladder",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 8,
"InstName" : "h1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 9,
"InstName" : "h2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
}
]
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/addition.v",
"InstLine" : 12,
"InstName" : "f1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"ModuleLine" : 1,
"ModuleName" : "fulladder",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 8,
"InstName" : "h1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 9,
"InstName" : "h2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
}
]
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/addition.v",
"InstLine" : 13,
"InstName" : "f2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"ModuleLine" : 1,
"ModuleName" : "fulladder",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 8,
"InstName" : "h1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 9,
"InstName" : "h2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
}
]
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/addition.v",
"InstLine" : 14,
"InstName" : "f3",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"ModuleLine" : 1,
"ModuleName" : "fulladder",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 8,
"InstName" : "h1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 9,
"InstName" : "h2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
}
]
}
]
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/arithmeticUnit.v",
"InstLine" : 14,
"InstName" : "s1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/subtraction.v",
"ModuleLine" : 1,
"ModuleName" : "subtraction",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/subtraction.v",
"InstLine" : 11,
"InstName" : "f0",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fullsubtraction.v",
"ModuleLine" : 1,
"ModuleName" : "fullsubtraction",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fullsubtraction.v",
"InstLine" : 8,
"InstName" : "hf1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfsubtraction.v",
"ModuleLine" : 1,
"ModuleName" : "halfsubtraction"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fullsubtraction.v",
"InstLine" : 9,
"InstName" : "hf2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfsubtraction.v",
"ModuleLine" : 1,
"ModuleName" : "halfsubtraction"
}
]
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/subtraction.v",
"InstLine" : 12,
"InstName" : "f1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fullsubtraction.v",
"ModuleLine" : 1,
"ModuleName" : "fullsubtraction",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fullsubtraction.v",
"InstLine" : 8,
"InstName" : "hf1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfsubtraction.v",
"ModuleLine" : 1,
"ModuleName" : "halfsubtraction"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fullsubtraction.v",
"InstLine" : 9,
"InstName" : "hf2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfsubtraction.v",
"ModuleLine" : 1,
"ModuleName" : "halfsubtraction"
}
]
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/subtraction.v",
"InstLine" : 13,
"InstName" : "f2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fullsubtraction.v",
"ModuleLine" : 1,
"ModuleName" : "fullsubtraction",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fullsubtraction.v",
"InstLine" : 8,
"InstName" : "hf1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfsubtraction.v",
"ModuleLine" : 1,
"ModuleName" : "halfsubtraction"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fullsubtraction.v",
"InstLine" : 9,
"InstName" : "hf2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfsubtraction.v",
"ModuleLine" : 1,
"ModuleName" : "halfsubtraction"
}
]
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/subtraction.v",
"InstLine" : 14,
"InstName" : "f3",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fullsubtraction.v",
"ModuleLine" : 1,
"ModuleName" : "fullsubtraction",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fullsubtraction.v",
"InstLine" : 8,
"InstName" : "hf1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfsubtraction.v",
"ModuleLine" : 1,
"ModuleName" : "halfsubtraction"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fullsubtraction.v",
"InstLine" : 9,
"InstName" : "hf2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfsubtraction.v",
"ModuleLine" : 1,
"ModuleName" : "halfsubtraction"
}
]
}
]
}
]
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/ALU.v",
"InstLine" : 21,
"InstName" : "lU",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/logicUnit.v",
"ModuleLine" : 1,
"ModuleName" : "logicUnit"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/ALU.v",
"InstLine" : 22,
"InstName" : "mU",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/multiplier.v",
"ModuleLine" : 1,
"ModuleName" : "multiplier",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/multiplier.v",
"InstLine" : 26,
"InstName" : "add0",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/addition.v",
"ModuleLine" : 1,
"ModuleName" : "addition",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/addition.v",
"InstLine" : 11,
"InstName" : "f0",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"ModuleLine" : 1,
"ModuleName" : "fulladder",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 8,
"InstName" : "h1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 9,
"InstName" : "h2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
}
]
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/addition.v",
"InstLine" : 12,
"InstName" : "f1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"ModuleLine" : 1,
"ModuleName" : "fulladder",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 8,
"InstName" : "h1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 9,
"InstName" : "h2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
}
]
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/addition.v",
"InstLine" : 13,
"InstName" : "f2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"ModuleLine" : 1,
"ModuleName" : "fulladder",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 8,
"InstName" : "h1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 9,
"InstName" : "h2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
}
]
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/addition.v",
"InstLine" : 14,
"InstName" : "f3",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"ModuleLine" : 1,
"ModuleName" : "fulladder",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 8,
"InstName" : "h1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 9,
"InstName" : "h2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
}
]
}
]
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/multiplier.v",
"InstLine" : 42,
"InstName" : "add1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/addition.v",
"ModuleLine" : 1,
"ModuleName" : "addition",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/addition.v",
"InstLine" : 11,
"InstName" : "f0",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"ModuleLine" : 1,
"ModuleName" : "fulladder",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 8,
"InstName" : "h1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 9,
"InstName" : "h2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
}
]
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/addition.v",
"InstLine" : 12,
"InstName" : "f1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"ModuleLine" : 1,
"ModuleName" : "fulladder",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 8,
"InstName" : "h1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 9,
"InstName" : "h2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
}
]
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/addition.v",
"InstLine" : 13,
"InstName" : "f2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"ModuleLine" : 1,
"ModuleName" : "fulladder",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 8,
"InstName" : "h1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 9,
"InstName" : "h2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
}
]
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/addition.v",
"InstLine" : 14,
"InstName" : "f3",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"ModuleLine" : 1,
"ModuleName" : "fulladder",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 8,
"InstName" : "h1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 9,
"InstName" : "h2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
}
]
}
]
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/multiplier.v",
"InstLine" : 58,
"InstName" : "add2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/addition.v",
"ModuleLine" : 1,
"ModuleName" : "addition",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/addition.v",
"InstLine" : 11,
"InstName" : "f0",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"ModuleLine" : 1,
"ModuleName" : "fulladder",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 8,
"InstName" : "h1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 9,
"InstName" : "h2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
}
]
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/addition.v",
"InstLine" : 12,
"InstName" : "f1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"ModuleLine" : 1,
"ModuleName" : "fulladder",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 8,
"InstName" : "h1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 9,
"InstName" : "h2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
}
]
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/addition.v",
"InstLine" : 13,
"InstName" : "f2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"ModuleLine" : 1,
"ModuleName" : "fulladder",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 8,
"InstName" : "h1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 9,
"InstName" : "h2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
}
]
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/addition.v",
"InstLine" : 14,
"InstName" : "f3",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"ModuleLine" : 1,
"ModuleName" : "fulladder",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 8,
"InstName" : "h1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"InstLine" : 9,
"InstName" : "h2",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"ModuleLine" : 1,
"ModuleName" : "halfadder"
}
]
}
]
}
]
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/ALU.v",
"InstLine" : 76,
"InstName" : "btod1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/BinaryToBCD.v",
"ModuleLine" : 1,
"ModuleName" : "BinaryToBCD",
"SubInsts" : [
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/BinaryToBCD.v",
"InstLine" : 14,
"InstName" : "d1t",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/dabble.v",
"ModuleLine" : 1,
"ModuleName" : "dabble"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/BinaryToBCD.v",
"InstLine" : 23,
"InstName" : "d2u",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/dabble.v",
"ModuleLine" : 1,
"ModuleName" : "dabble"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/BinaryToBCD.v",
"InstLine" : 32,
"InstName" : "d3v",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/dabble.v",
"ModuleLine" : 1,
"ModuleName" : "dabble"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/BinaryToBCD.v",
"InstLine" : 41,
"InstName" : "d4w",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/dabble.v",
"ModuleLine" : 1,
"ModuleName" : "dabble"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/BinaryToBCD.v",
"InstLine" : 50,
"InstName" : "d5x",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/dabble.v",
"ModuleLine" : 1,
"ModuleName" : "dabble"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/BinaryToBCD.v",
"InstLine" : 59,
"InstName" : "d6y",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/dabble.v",
"ModuleLine" : 1,
"ModuleName" : "dabble"
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/BinaryToBCD.v",
"InstLine" : 68,
"InstName" : "d7z",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/dabble.v",
"ModuleLine" : 1,
"ModuleName" : "dabble"
}
]
}
]
},
{
"InstFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/bttn.v",
"InstLine" : 11,
"InstName" : "s1",
"ModuleFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/selector.v",
"ModuleLine" : 1,
"ModuleName" : "selector"
}
]
}
]

View File

@ -0,0 +1,73 @@
{
"Device" : "GW2A-18C",
"Files" : [
{
"Path" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/ALU.v",
"Type" : "verilog"
},
{
"Path" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/BinaryToBCD.v",
"Type" : "verilog"
},
{
"Path" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/addition.v",
"Type" : "verilog"
},
{
"Path" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/arithmeticUnit.v",
"Type" : "verilog"
},
{
"Path" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/bttn.v",
"Type" : "verilog"
},
{
"Path" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/dabble.v",
"Type" : "verilog"
},
{
"Path" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fulladder.v",
"Type" : "verilog"
},
{
"Path" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/fullsubtraction.v",
"Type" : "verilog"
},
{
"Path" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfadder.v",
"Type" : "verilog"
},
{
"Path" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/halfsubtraction.v",
"Type" : "verilog"
},
{
"Path" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/logicUnit.v",
"Type" : "verilog"
},
{
"Path" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/multiplier.v",
"Type" : "verilog"
},
{
"Path" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/opCode.v",
"Type" : "verilog"
},
{
"Path" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/selector.v",
"Type" : "verilog"
},
{
"Path" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/src/subtraction.v",
"Type" : "verilog"
}
],
"IncludePath" : [
],
"LoopLimit" : 2000,
"ResultFile" : "//wsl.localhost/Debian/home/koray/code/verilog/gowin/bttn/impl/temp/rtl_parser.result",
"Top" : "",
"VerilogStd" : "verilog_2001",
"VhdlStd" : "vhdl_93"
}

View File

79
gowin/bttn/src/ALU.v Normal file
View File

@ -0,0 +1,79 @@
module ALU (
input [3:0] A, B,
input CarryIN,
input [2:0] opCodeA,
output [11:0] bcd,
output CarryOUT, overflow
);
// Supports: ADD[0], SUB[1], MULT[2], AND[4], OR[5], XOR[6]
wire [7:0] opCode8;
wire [3:0] add_Y, sub_Y;
wire [3:0] resultA, resultO, resultX, lUOutput1;
wire [3:0] aUtemp1, aUtemp2, lUOutput2;
wire [3:0] wireY, wireLA;
wire [7:0] opwireM, wireM, Y;
opCode opCd (.A(opCodeA), .opCode(opCode8));
arithmeticUnit aU(.opCode(opCode8[1:0]), .A(A), .B(B), .CarryIN(CarryIN), .add_Y(add_Y), .sub_Y(sub_Y), .CarryOUT(CarryOUT), .overflow(overflow));
logicUnit lU (.opCode(opCode8[6:4]), .A(A), .B(B), .resultA(resultA), .resultO(resultO), .resultX(resultX));
multiplier mU (.A(A), .B(B), .Y(opwireM));
or o01 (lUOutput1[0], resultA[0], resultO[0]);
or o02 (lUOutput1[1], resultA[1], resultO[1]);
or o03 (lUOutput1[2], resultA[2], resultO[2]);
or o04 (lUOutput1[3], resultA[3], resultO[3]);
or o11 (lUOutput2[0], lUOutput1[0], resultX[0]);
or o12 (lUOutput2[1], lUOutput1[1], resultX[1]);
or o13 (lUOutput2[2], lUOutput1[2], resultX[2]);
or o14 (lUOutput2[3], lUOutput1[3], resultX[3]);
and a01 (aUtemp1[0], opCode8[0], add_Y[0]);
and a02 (aUtemp1[1], opCode8[0], add_Y[1]);
and a03 (aUtemp1[2], opCode8[0], add_Y[2]);
and a04 (aUtemp1[3], opCode8[0], add_Y[3]);
and a11 (aUtemp2[0], opCode8[1], sub_Y[0]);
and a12 (aUtemp2[1], opCode8[1], sub_Y[1]);
and a13 (aUtemp2[2], opCode8[1], sub_Y[2]);
and a14 (aUtemp2[3], opCode8[1], sub_Y[3]);
and a21 (wireM[0], opCode8[2], opwireM[0]);
and a22 (wireM[1], opCode8[2], opwireM[1]);
and a23 (wireM[2], opCode8[2], opwireM[2]);
and a24 (wireM[3], opCode8[2], opwireM[3]);
and a25 (wireM[4], opCode8[2], opwireM[4]);
and a26 (wireM[5], opCode8[2], opwireM[5]);
and a27 (wireM[6], opCode8[2], opwireM[6]);
and a28 (wireM[7], opCode8[2], opwireM[7]);
or o21 (wireY[0], aUtemp1[0], aUtemp2[0]);
or o22 (wireY[1], aUtemp1[1], aUtemp2[1]);
or o23 (wireY[2], aUtemp1[2], aUtemp2[2]);
or o24 (wireY[3], aUtemp1[3], aUtemp2[3]);
or o1 (wireLA[0], lUOutput2[0], wireY[0]);
or o2 (wireLA[1], lUOutput2[1], wireY[1]);
or o3 (wireLA[2], lUOutput2[2], wireY[2]);
or o4 (wireLA[3], lUOutput2[3], wireY[3]);
or o31 (Y[0], wireLA[0], wireM[0]);
or o32 (Y[1], wireLA[1], wireM[1]);
or o33 (Y[2], wireLA[2], wireM[2]);
or o34 (Y[3], wireLA[3], wireM[3]);
or o35 (Y[4], 1'b0, wireM[4]);
or o36 (Y[5], 1'b0, wireM[5]);
or o37 (Y[6], 1'b0, wireM[6]);
or o38 (Y[7], 1'b0, wireM[7]);
BinaryToBCD btod1(.binary(Y), .bcd(bcd)); // WIRE Y BINARY!!!!
endmodule

View File

@ -0,0 +1,79 @@
module BinaryToBCD (
input [7:0] binary,
output [11:0] bcd
);
wire empty1, empty2;
wire [3:0] dab1, dab2, dab3, dab4, dab5;
and a111 (empty1, 1'b0, 1'b0);
and a000 (empty2, 1'b0, 1'b0);
and a222 (bcd[11], 1'b0, 1'b0);
and a223 (bcd[10], 1'b0, 1'b0);
dabble d1t (.A((empty1)),
.B(binary[7]),
.C(binary[6]),
.D(binary[5]),
.X(dab1[0]),
.Y(dab1[1]),
.Z(dab1[2]),
.E(dab1[3]));
dabble d2u (.A((dab1[1])),
.B(dab1[2]),
.C(dab1[3]),
.D(binary[4]),
.X(dab2[0]),
.Y(dab2[1]),
.Z(dab2[2]),
.E(dab2[3]));
dabble d3v (.A((dab2[1])),
.B(dab2[2]),
.C(dab2[3]),
.D(binary[3]),
.X(dab3[0]),
.Y(dab3[1]),
.Z(dab3[2]),
.E(dab3[3]));
dabble d4w (.A((empty2)),
.B(dab1[0]),
.C(dab2[0]),
.D(dab3[0]),
.X(bcd[9]),
.Y(dab4[1]),
.Z(dab4[2]),
.E(dab4[3]));
dabble d5x (.A((dab3[1])),
.B(dab3[2]),
.C(dab3[3]),
.D(binary[2]),
.X(dab5[0]),
.Y(dab5[1]),
.Z(dab5[2]),
.E(dab5[3]));
dabble d6y (.A((dab4[1])),
.B(dab4[2]),
.C(dab4[3]),
.D(dab5[0]),
.X(bcd[8]),
.Y(bcd[7]),
.Z(bcd[6]),
.E(bcd[5]));
dabble d7z (.A((dab5[1])),
.B(dab5[2]),
.C(dab5[3]),
.D(binary[1]),
.X(bcd[4]),
.Y(bcd[3]),
.Z(bcd[2]),
.E(bcd[1]));
or o1 (bcd[0], binary[0], 1'b0);
endmodule

20
gowin/bttn/src/addition.v Normal file
View File

@ -0,0 +1,20 @@
module addition (
input [3:0] A, B,
input CarryIN,
output [3:0] Y,
output CarryOUT,
output overflow
);
wire [2:0] Carry4;
fulladder f0(.A(A[0]), .B(B[0]), .Carry(CarryIN), .Sum(Y[0]), .CarryO(Carry4[0]));
fulladder f1(.A(A[1]), .B(B[1]), .Carry(Carry4[0]), .Sum(Y[1]), .CarryO(Carry4[1]));
fulladder f2(.A(A[2]), .B(B[2]), .Carry(Carry4[1]), .Sum(Y[2]), .CarryO(Carry4[2]));
fulladder f3(.A(A[3]), .B(B[3]), .Carry(Carry4[2]), .Sum(Y[3]), .CarryO(CarryOUT));
//overflowDetect od1 (.opCode(2'b01), .A(A), .B(B), .Y(Y), .CarryOUT(CarryOUT), .overflowDetect(overflow)); (KULLANILMAYACAK!!!!)
xor ov1 (overflow, Carry4[2], CarryOUT);
endmodule

View File

@ -0,0 +1,33 @@
module arithmeticUnit (
input [1:0] opCode,
input [3:0] A, B,
input CarryIN,
output [3:0] add_Y, sub_Y,
output CarryOUT,
output overflow
);
wire [3:0] addY, subY;
wire CarryOUTADD, CarryOUTSUB, tempCAdd, tempCSub, tempoverflow;
addition a1(.A(A), .B(B), .CarryIN(CarryIN), .Y(addY), .CarryOUT(CarryOUTADD), .overflow(tempoverflow));
subtraction s1(.A(A), .B(B), .BorrowIN(CarryIN), .Y(subY), .BorrowOUT(CarryOUTSUB));
and add1 (add_Y[0], opCode[0], addY[0]);
and add2 (add_Y[1], opCode[0], addY[1]);
and add3 (add_Y[2], opCode[0], addY[2]);
and add4 (add_Y[3], opCode[0], addY[3]);
and sub1 (sub_Y[0], opCode[1], subY[0]);
and sub2 (sub_Y[1], opCode[1], subY[1]);
and sub3 (sub_Y[2], opCode[1], subY[2]);
and sub4 (sub_Y[3], opCode[1], subY[3]);
// or or1 (CarryOUT, CarryOUTADD, CarryOUTSUB); (OLD!!!)
and and10 (tempCSub, CarryOUTSUB, opCode[1]);
and and11 (tempCAdd, CarryOUTADD, opCode[0]);
or or4 (CarryOUT, tempCAdd, tempCSub);
and add12 (overflow, opCode[0], tempoverflow);
endmodule

2191
gowin/bttn/src/bttn Normal file

File diff suppressed because it is too large Load Diff

59
gowin/bttn/src/bttn.cst Normal file
View File

@ -0,0 +1,59 @@
//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
//All rights reserved.
//File Title: Physical Constraints file
//Tool Version: V1.9.9.03 Education (64-bit)
//Part Number: GW2A-LV18PG256C8/I7
//Device: GW2A-18
//Device Version: C
//Created Time: Sat 01 18 21:56:09 2025
IO_LOC "Y[11]" B12;
IO_PORT "Y[11]" IO_TYPE=LVCMOS18 PULL_MODE=NONE DRIVE=8 BANK_VCCIO=1.8;
IO_LOC "Y[10]" B13;
IO_PORT "Y[10]" IO_TYPE=LVCMOS18 PULL_MODE=NONE DRIVE=8 BANK_VCCIO=1.8;
IO_LOC "Y[9]" B14;
IO_PORT "Y[9]" IO_TYPE=LVCMOS18 PULL_MODE=NONE DRIVE=8 BANK_VCCIO=1.8;
IO_LOC "Y[8]" D14;
IO_PORT "Y[8]" IO_TYPE=LVCMOS18 PULL_MODE=NONE DRIVE=8 BANK_VCCIO=1.8;
IO_LOC "Y[7]" J14;
IO_PORT "Y[7]" IO_TYPE=LVCMOS18 PULL_MODE=NONE DRIVE=8 BANK_VCCIO=1.8;
IO_LOC "Y[6]" M14;
IO_PORT "Y[6]" IO_TYPE=LVCMOS18 PULL_MODE=NONE DRIVE=8 BANK_VCCIO=1.8;
IO_LOC "Y[5]" T12;
IO_PORT "Y[5]" IO_TYPE=LVCMOS18 PULL_MODE=NONE DRIVE=8 BANK_VCCIO=1.8;
IO_LOC "Y[4]" T11;
IO_PORT "Y[4]" IO_TYPE=LVCMOS18 PULL_MODE=NONE DRIVE=8 BANK_VCCIO=1.8;
IO_LOC "Y[3]" P9;
IO_PORT "Y[3]" IO_TYPE=LVCMOS18 PULL_MODE=NONE DRIVE=8 BANK_VCCIO=1.8;
IO_LOC "Y[2]" P8;
IO_PORT "Y[2]" IO_TYPE=LVCMOS18 PULL_MODE=NONE DRIVE=8 BANK_VCCIO=1.8;
IO_LOC "Y[1]" T7;
IO_PORT "Y[1]" IO_TYPE=LVCMOS18 PULL_MODE=NONE DRIVE=8 BANK_VCCIO=1.8;
IO_LOC "Y[0]" P6;
IO_PORT "Y[0]" IO_TYPE=LVCMOS18 PULL_MODE=NONE DRIVE=8 BANK_VCCIO=1.8;
IO_LOC "select[1]" A14;
IO_PORT "select[1]" IO_TYPE=LVCMOS18 PULL_MODE=UP BANK_VCCIO=1.8;
IO_LOC "select[0]" A15;
IO_PORT "select[0]" IO_TYPE=LVCMOS18 PULL_MODE=UP BANK_VCCIO=1.8;
IO_LOC "opCodeA[2]" E8;
IO_PORT "opCodeA[2]" IO_TYPE=LVCMOS18 PULL_MODE=UP BANK_VCCIO=1.8;
IO_LOC "opCodeA[1]" T4;
IO_PORT "opCodeA[1]" IO_TYPE=LVCMOS18 PULL_MODE=UP BANK_VCCIO=1.8;
IO_LOC "opCodeA[0]" T5;
IO_PORT "opCodeA[0]" IO_TYPE=LVCMOS18 PULL_MODE=UP BANK_VCCIO=1.8;
IO_LOC "B[3]" N8;
IO_PORT "B[3]" IO_TYPE=LVCMOS18 PULL_MODE=NONE BANK_VCCIO=1.8;
IO_LOC "B[2]" N7;
IO_PORT "B[2]" IO_TYPE=LVCMOS18 PULL_MODE=NONE BANK_VCCIO=1.8;
IO_LOC "B[1]" D11;
IO_PORT "B[1]" IO_TYPE=LVCMOS18 PULL_MODE=NONE BANK_VCCIO=1.8;
IO_LOC "B[0]" B11;
IO_PORT "B[0]" IO_TYPE=LVCMOS18 PULL_MODE=NONE BANK_VCCIO=1.8;
IO_LOC "A[3]" L9;
IO_PORT "A[3]" IO_TYPE=LVCMOS18 PULL_MODE=NONE BANK_VCCIO=1.8;
IO_LOC "A[2]" E15;
IO_PORT "A[2]" IO_TYPE=LVCMOS18 PULL_MODE=NONE BANK_VCCIO=1.8;
IO_LOC "A[1]" N6;
IO_PORT "A[1]" IO_TYPE=LVCMOS18 PULL_MODE=NONE BANK_VCCIO=1.8;
IO_LOC "A[0]" A11;
IO_PORT "A[0]" IO_TYPE=LVCMOS18 PULL_MODE=NONE BANK_VCCIO=1.8;

13
gowin/bttn/src/bttn.v Normal file
View File

@ -0,0 +1,13 @@
module bttn (
input [3:0] A, B,
input [2:0] opCodeA,
input [1:0] select,
output [11:0] Y
);
wire wire1, wire2;
wire [11:0] selectY;
ALU a1(.A(A), .B(B), .opCodeA(opCodeA), .CarryIN(1'b0), .bcd(selectY), .CarryOUT(wire1), .overflow(wire2));
selector s1(.A(A), .B(B), .opCodeA(opCodeA), .select(select), .ALUY(selectY), .Y(Y));
endmodule

1103
gowin/bttn/src/bttn.vcd Normal file

File diff suppressed because it is too large Load Diff

23
gowin/bttn/src/bttnTB.v Normal file
View File

@ -0,0 +1,23 @@
module bttnTB();
reg [3:0] A,B;
reg [2:0] opCodeA;
reg [1:0] select;
wire [11:0] Y;
bttn uut (
.A(A),
.B(B),
.opCodeA(opCodeA),
.select(select),
.Y(Y)
);
initial begin
$dumpfile("bttn.vcd");
$dumpvars;
A = 4'b0001; B = 4'b0110; opCodeA = 3'b000; select = 2'b01; #5;
$finish;
end
endmodule

22
gowin/bttn/src/dabble.v Normal file
View File

@ -0,0 +1,22 @@
module dabble (
input A, B, C, D,
output X, Y, Z, E
);
wire xor1, nor1, xor2, nor2, nor3, or1;
xor xo1 (xor1, A, D);
nor no1 (nor1, A, B);
xor xo2 (xor2, A, C);
nor no2 (nor2, xor1, xor2);
nor no3 (nor3, nor2, nor1);
buf bu1 (X, nor3);
or o1 (or1, xor1, nor1);
nor no4 (Y, or1, C);
and an1 (Z, or1, xor2);
xor xo3 (E, nor3, D);
endmodule

View File

@ -0,0 +1,12 @@
module fulladder (
input A, B, Carry,
output Sum, CarryO
);
wire xor1, and1, and2;
halfadder h1(.A(A), .B(B), .Sum(xor1), .Carry(and1));
halfadder h2 (.A(xor1), .B(Carry), .Sum(Sum), .Carry(and2));
or o1 (CarryO, and1, and2);
endmodule

View File

@ -0,0 +1,12 @@
module fullsubtraction (
input A, B, BorrowIN,
output Difference, BorrowOut
);
wire tempD, tempB1, tempB2;
halfsubtraction hf1(.A(A), .B(B), .Difference(tempD), .Borrow(tempB1));
halfsubtraction hf2(.A(tempD), .B(BorrowIN), .Difference(Difference), .Borrow(tempB2));
or o1 (BorrowOut, tempB1, tempB2);
endmodule

View File

@ -0,0 +1,9 @@
module halfadder (
input A, B,
output Sum, Carry
);
and a1 (Carry, A, B);
xor xo1 (Sum, A, B);
endmodule

View File

@ -0,0 +1,12 @@
module halfsubtraction (
input A, B,
output Difference, Borrow
);
wire notA;
xor xo1 (Difference, A, B);
not a1 (notA, A);
and an1 (Borrow, notA, B);
endmodule

View File

@ -0,0 +1,39 @@
module logicUnit (
input [2:0] opCode,
input [3:0] A, B,
output [3:0] resultA, resultO, resultX
);
wire [3:0] and1, or1, xor1;
and a01 (and1[0], A[0], B[0]);
and a02 (and1[1], A[1], B[1]);
and a03 (and1[2], A[2], B[2]);
and a04 (and1[3], A[3], B[3]);
or o01 (or1[0], A[0], B[0]);
or o02 (or1[1], A[1], B[1]);
or o03 (or1[2], A[2], B[2]);
or o04 (or1[3], A[3], B[3]);
xor xor01 (xor1[0], A[0], B[0]);
xor xor02 (xor1[1], A[1], B[1]);
xor xor03 (xor1[2], A[2], B[2]);
xor xor04 (xor1[3], A[3], B[3]);
and a_o1 (resultA[0], opCode[0], and1[0]);
and a_o2 (resultA[1], opCode[0], and1[1]);
and a_o3 (resultA[2], opCode[0], and1[2]);
and a_o4 (resultA[3], opCode[0], and1[3]);
and o_o1 (resultO[0], opCode[1], or1[0]);
and o_o2 (resultO[1], opCode[1], or1[1]);
and o_o3 (resultO[2], opCode[1], or1[2]);
and o_o4 (resultO[3], opCode[1], or1[3]);
and x_o1 (resultX[0], opCode[2], xor1[0]);
and x_o2 (resultX[1], opCode[2], xor1[1]);
and x_o3 (resultX[2], opCode[2], xor1[2]);
and x_o4 (resultX[3], opCode[2], xor1[3]);
endmodule

View File

@ -0,0 +1,76 @@
module multiplier (
input [3:0] A, B,
output [7:0] Y
);
wire [3:0] b0, a0, a1, a2;
wire [4:0] S0, S1, S2;
wire carry0, carry1, carry2;
wire overflow0, overflow1, overflow2;
// Partial product generation
and (Y[0], A[0], B[0]); // LSB of the result
// Generate partial products for B[0] and B[1]
and ab00 (b0[0], A[1], B[0]);
and ab01 (b0[1], A[2], B[0]);
and ab02 (b0[2], A[3], B[0]);
not ab03 (b0[3], 1'b1); // Initialize b0[3] to 0
and aa00 (a0[0], A[0], B[1]);
and aa01 (a0[1], A[1], B[1]);
and aa02 (a0[2], A[2], B[1]);
and aa03 (a0[3], A[3], B[1]);
// First addition
addition add0 (
.A(a0),
.B(b0),
.CarryIN(1'b0),
.Y(S0[3:0]),
.CarryOUT(S0[4]),
.overflow(overflow0)
);
// Generate partial products for B[2]
and aa10 (a1[0], A[0], B[2]);
and aa11 (a1[1], A[1], B[2]);
and aa12 (a1[2], A[2], B[2]);
and aa13 (a1[3], A[3], B[2]);
// Second addition
addition add1 (
.A(a1),
.B(S0[4:1]),
.CarryIN(1'b0),
.Y(S1[3:0]),
.CarryOUT(S1[4]),
.overflow(overflow1)
);
// Generate partial products for B[3]
and aa20 (a2[0], A[0], B[3]);
and aa21 (a2[1], A[1], B[3]);
and aa22 (a2[2], A[2], B[3]);
and aa23 (a2[3], A[3], B[3]);
// Third addition
addition add2 (
.A(a2),
.B(S1[4:1]),
.CarryIN(1'b0),
.Y(S2[3:0]),
.CarryOUT(S2[4]),
.overflow(overflow2)
);
// Combine results into the final output Y
or o01 (Y[1], S0[0], 1'b0);
or o02 (Y[2], S1[0], 1'b0);
or o03 (Y[3], S2[0], 1'b0);
or o04 (Y[4], S2[1], 1'b0);
or o05 (Y[5], S2[2], 1'b0);
or o06 (Y[6], S2[3], 1'b0);
or o07 (Y[7], S2[4], 1'b0);
endmodule

25
gowin/bttn/src/opCode.v Normal file
View File

@ -0,0 +1,25 @@
module opCode (
input [2:0] A,
output [7:0] opCode
);
wire and1, and2, and3, and4, notA, notB, notC;
not n1(notA, A[2]);
not n2(notB, A[1]);
not n3(notC, A[0]);
and a01(and1, A[2], A[1]);
and a02(and2, notA, A[1]);
and a03(and3, A[2], notB);
and a04(and4, notA, notB);
and a1(opCode[0], and4, notC);
and a2(opCode[1], and4, A[0]);
and a3(opCode[2], and2, notC);
and a4(opCode[3], and2, A[0]);
and a5(opCode[4], and3, notC);
and a6(opCode[5], and3, A[0]);
and a7(opCode[6], and1, notC);
and a8(opCode[7], and1, A[0]);
endmodule

20
gowin/bttn/src/selector.v Normal file
View File

@ -0,0 +1,20 @@
module selector (
input [3:0] A,
input [3:0] B,
input [2:0] opCodeA,
input [1:0] select,
input [11:0] ALUY,
output reg [11:0] Y
);
always @(*) begin
case (select)
2'b00: Y = {8'b00000000, A}; // Zero-extend A to 8 bits
2'b01: Y = {8'b00000000, B}; // Zero-extend B to 8 bits
2'b10: Y = {9'b000000000, opCodeA}; // Zero-extend opCodeA to 8 bits
2'b11: Y = ALUY; // Directly assign ALUY
default: Y = ALUY; // Default case for safety
endcase
end
endmodule

View File

@ -0,0 +1,16 @@
module subtraction (
input [3:0] A, B,
input BorrowIN,
output [3:0] Y,
output BorrowOUT //Overflow signal'ini yani negatif gonderecek
);
wire [3:0] tempB;
// Full Subtraction logic for each bit (borrow-in for each subsequent bit)
fullsubtraction f0 (.A(A[0]), .B(B[0]), .BorrowIN(BorrowIN), .Difference(Y[0]), .BorrowOut(tempB[0]));
fullsubtraction f1 (.A(A[1]), .B(B[1]), .BorrowIN(tempB[0]), .Difference(Y[1]), .BorrowOut(tempB[1]));
fullsubtraction f2 (.A(A[2]), .B(B[2]), .BorrowIN(tempB[1]), .Difference(Y[2]), .BorrowOut(tempB[2]));
fullsubtraction f3 (.A(A[3]), .B(B[3]), .BorrowIN(tempB[2]), .Difference(Y[3]), .BorrowOut(BorrowOUT));
endmodule

8
gowin/pmodtest/bttn.v Normal file
View File

@ -0,0 +1,8 @@
module bttn (
input [3:0] bttns,
output [3:0] pmod
);
assign bttns = pmod;
endmodule

2109
spartanTest/ALU Normal file

File diff suppressed because it is too large Load Diff

1074
spartanTest/ALU.vcd Normal file

File diff suppressed because it is too large Load Diff

26
spartanTest/ALUtb.v Normal file
View File

@ -0,0 +1,26 @@
module ALUtb ();
reg [3:0] A, B;
reg CarryIN;
reg [2:0] opCodeA;
wire [11:0] bcd;
wire CarryOUT, overflow;
ALU uut (
.A(A),
.B(B),
.CarryIN(CarryIN),
.opCodeA(opCodeA),
.bcd(bcd),
.CarryOUT(CarryOUT),
.overflow(overflow)
);
initial begin
$dumpfile("ALU.vcd");
$dumpvars;
A = 4'b1100; B = 4'b1100; CarryIN = 1'b0; opCodeA = 3'b010; #5;
$finish;
end
endmodule

140
spartanTest/selector Normal file
View File

@ -0,0 +1,140 @@
#! /usr/bin/vvp
:ivl_version "11.0 (stable)";
:ivl_delay_selection "TYPICAL";
:vpi_time_precision + 0;
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/system.vpi";
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_sys.vpi";
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_textio.vpi";
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/v2005_math.vpi";
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/va_math.vpi";
S_0x558eb92edb80 .scope module, "selectorTB" "selectorTB" 2 1;
.timescale 0 0;
v0x558eb9317af0_0 .var "A", 3 0;
v0x558eb9317bd0_0 .var "ALUY", 7 0;
v0x558eb9317ca0_0 .var "B", 3 0;
v0x558eb9317da0_0 .net "Y", 7 0, v0x558eb9317740_0; 1 drivers
v0x558eb9317e70_0 .var "opCodeA", 2 0;
v0x558eb9317f60_0 .var "select", 1 0;
S_0x558eb9302140 .scope module, "uut" "selector" 2 9, 3 1 0, S_0x558eb92edb80;
.timescale 0 0;
.port_info 0 /INPUT 4 "A";
.port_info 1 /INPUT 4 "B";
.port_info 2 /INPUT 3 "opCodeA";
.port_info 3 /INPUT 2 "select";
.port_info 4 /INPUT 8 "ALUY";
.port_info 5 /OUTPUT 8 "Y";
v0x558eb9302350_0 .net "A", 3 0, v0x558eb9317af0_0; 1 drivers
v0x558eb93175a0_0 .net "ALUY", 7 0, v0x558eb9317bd0_0; 1 drivers
v0x558eb9317680_0 .net "B", 3 0, v0x558eb9317ca0_0; 1 drivers
v0x558eb9317740_0 .var "Y", 7 0;
v0x558eb9317820_0 .net "opCodeA", 2 0, v0x558eb9317e70_0; 1 drivers
v0x558eb9317950_0 .net "select", 1 0, v0x558eb9317f60_0; 1 drivers
E_0x558eb93001f0/0 .event edge, v0x558eb9317950_0, v0x558eb9302350_0, v0x558eb9317680_0, v0x558eb9317820_0;
E_0x558eb93001f0/1 .event edge, v0x558eb93175a0_0;
E_0x558eb93001f0 .event/or E_0x558eb93001f0/0, E_0x558eb93001f0/1;
.scope S_0x558eb9302140;
T_0 ;
%wait E_0x558eb93001f0;
%load/vec4 v0x558eb9317950_0;
%dup/vec4;
%pushi/vec4 0, 0, 2;
%cmp/u;
%jmp/1 T_0.0, 6;
%dup/vec4;
%pushi/vec4 1, 0, 2;
%cmp/u;
%jmp/1 T_0.1, 6;
%dup/vec4;
%pushi/vec4 2, 0, 2;
%cmp/u;
%jmp/1 T_0.2, 6;
%dup/vec4;
%pushi/vec4 3, 0, 2;
%cmp/u;
%jmp/1 T_0.3, 6;
%pushi/vec4 0, 0, 8;
%store/vec4 v0x558eb9317740_0, 0, 8;
%jmp T_0.5;
T_0.0 ;
%pushi/vec4 0, 0, 4;
%load/vec4 v0x558eb9302350_0;
%concat/vec4; draw_concat_vec4
%store/vec4 v0x558eb9317740_0, 0, 8;
%jmp T_0.5;
T_0.1 ;
%pushi/vec4 0, 0, 4;
%load/vec4 v0x558eb9317680_0;
%concat/vec4; draw_concat_vec4
%store/vec4 v0x558eb9317740_0, 0, 8;
%jmp T_0.5;
T_0.2 ;
%pushi/vec4 0, 0, 5;
%load/vec4 v0x558eb9317820_0;
%concat/vec4; draw_concat_vec4
%store/vec4 v0x558eb9317740_0, 0, 8;
%jmp T_0.5;
T_0.3 ;
%load/vec4 v0x558eb93175a0_0;
%store/vec4 v0x558eb9317740_0, 0, 8;
%jmp T_0.5;
T_0.5 ;
%pop/vec4 1;
%jmp T_0;
.thread T_0, $push;
.scope S_0x558eb92edb80;
T_1 ;
%vpi_call 2 19 "$dumpfile", "selector.vcd" {0 0 0};
%vpi_call 2 20 "$dumpvars" {0 0 0};
%pushi/vec4 1, 0, 4;
%store/vec4 v0x558eb9317af0_0, 0, 4;
%pushi/vec4 2, 0, 4;
%store/vec4 v0x558eb9317ca0_0, 0, 4;
%pushi/vec4 7, 0, 3;
%store/vec4 v0x558eb9317e70_0, 0, 3;
%pushi/vec4 240, 0, 8;
%store/vec4 v0x558eb9317bd0_0, 0, 8;
%pushi/vec4 0, 0, 2;
%store/vec4 v0x558eb9317f60_0, 0, 2;
%delay 5, 0;
%pushi/vec4 1, 0, 4;
%store/vec4 v0x558eb9317af0_0, 0, 4;
%pushi/vec4 2, 0, 4;
%store/vec4 v0x558eb9317ca0_0, 0, 4;
%pushi/vec4 7, 0, 3;
%store/vec4 v0x558eb9317e70_0, 0, 3;
%pushi/vec4 240, 0, 8;
%store/vec4 v0x558eb9317bd0_0, 0, 8;
%pushi/vec4 1, 0, 2;
%store/vec4 v0x558eb9317f60_0, 0, 2;
%delay 5, 0;
%pushi/vec4 1, 0, 4;
%store/vec4 v0x558eb9317af0_0, 0, 4;
%pushi/vec4 2, 0, 4;
%store/vec4 v0x558eb9317ca0_0, 0, 4;
%pushi/vec4 7, 0, 3;
%store/vec4 v0x558eb9317e70_0, 0, 3;
%pushi/vec4 112, 0, 8;
%store/vec4 v0x558eb9317bd0_0, 0, 8;
%pushi/vec4 2, 0, 2;
%store/vec4 v0x558eb9317f60_0, 0, 2;
%delay 5, 0;
%pushi/vec4 1, 0, 4;
%store/vec4 v0x558eb9317af0_0, 0, 4;
%pushi/vec4 2, 0, 4;
%store/vec4 v0x558eb9317ca0_0, 0, 4;
%pushi/vec4 7, 0, 3;
%store/vec4 v0x558eb9317e70_0, 0, 3;
%pushi/vec4 112, 0, 8;
%store/vec4 v0x558eb9317bd0_0, 0, 8;
%pushi/vec4 3, 0, 2;
%store/vec4 v0x558eb9317f60_0, 0, 2;
%delay 5, 0;
%vpi_call 2 25 "$finish" {0 0 0};
%end;
.thread T_1;
# The file index is used to find the file name in the following table.
:file_names 4;
"N/A";
"<interactive>";
"selectorTB.v";
"selector.v";

View File

@ -1,68 +1,20 @@
module selector (
input [3:0] select,
input [7:0] Y,
input [3:0] A, B,
input [3:0] A,
input [3:0] B,
input [2:0] opCodeA,
output [7:0] s0
input [1:0] select,
input [7:0] ALUY,
output reg [7:0] Y
);
wire [3:0] a0, b0, tempAB, tempYO;
wire [7:0] y0;
wire [2:0] op0;
wire tempsO, temps;
// Select signals for A
and a00 (a0[0], select[0], A[0]);
and a01 (a0[1], select[0], A[1]);
and a02 (a0[2], select[0], A[2]);
and a03 (a0[3], select[0], A[3]);
// Select signals for B
and b00 (b0[0], select[1], B[0]);
and b01 (b0[1], select[1], B[1]);
and b02 (b0[2], select[1], B[2]);
and b03 (b0[3], select[1], B[3]);
// Select signals for Y
and y00 (y0[0], select[2], Y[0]);
and y01 (y0[1], select[2], Y[1]);
and y02 (y0[2], select[2], Y[2]);
and y03 (y0[3], select[2], Y[3]);
and y04 (y0[4], select[2], Y[4]);
and y05 (y0[5], select[2], Y[5]);
and y06 (y0[6], select[2], Y[6]);
and y07 (y0[7], select[2], Y[7]);
// Select signals for opCodeA
and op00 (op0[0], select[3], opCodeA[0]);
and op01 (op0[1], select[3], opCodeA[1]);
and op02 (op0[2], select[3], opCodeA[2]);
// Combine A and B
or or1 (tempAB[0], a0[0], b0[0]);
or or2 (tempAB[1], a0[1], b0[1]);
or or3 (tempAB[2], a0[2], b0[2]);
or or4 (tempAB[3], a0[3], b0[3]);
// Combine Y and opCodeA
or or5 (tempYO[0], y0[0], op0[0]);
or or6 (tempYO[1], y0[1], op0[1]);
or or7 (tempYO[2], y0[2], op0[2]);
or or8 (tempYO[3], y0[3], 1'b0);
// NOR for select logic
nor s01 (tempsO, select[0], select[1]);
nor s02 (temps, tempsO, select[3]);
// Final s0 connections
or or9 (s0[0], tempAB[0], tempYO[0]);
or or10 (s0[1], tempAB[1], tempYO[1]);
or or11 (s0[2], tempAB[2], tempYO[2]);
or or12 (s0[3], tempAB[3], tempYO[3]);
and and13 (s0[4], y0[4], temps);
and and14 (s0[5], y0[5], temps);
and and15 (s0[6], y0[6], temps);
and and16 (s0[7], y0[7], temps);
always @(*) begin
case (select)
2'b00: Y = {4'b0000, A}; // Zero-extend A to 8 bits
2'b01: Y = {4'b0000, B}; // Zero-extend B to 8 bits
2'b10: Y = {5'b00000, opCodeA}; // Zero-extend opCodeA to 8 bits
2'b11: Y = ALUY; // Directly assign ALUY
default: Y = 8'b00000000; // Default case for safety
endcase
end
endmodule

59
spartanTest/selector.vcd Normal file
View File

@ -0,0 +1,59 @@
$date
Sat Jan 18 17:21:23 2025
$end
$version
Icarus Verilog
$end
$timescale
1s
$end
$scope module selectorTB $end
$var wire 8 ! Y [7:0] $end
$var reg 4 " A [3:0] $end
$var reg 8 # ALUY [7:0] $end
$var reg 4 $ B [3:0] $end
$var reg 3 % opCodeA [2:0] $end
$var reg 2 & select [1:0] $end
$scope module uut $end
$var wire 4 ' A [3:0] $end
$var wire 8 ( ALUY [7:0] $end
$var wire 4 ) B [3:0] $end
$var wire 3 * opCodeA [2:0] $end
$var wire 2 + select [1:0] $end
$var reg 8 , Y [7:0] $end
$upscope $end
$upscope $end
$enddefinitions $end
#0
$dumpvars
b1 ,
b0 +
b111 *
b10 )
b11110000 (
b1 '
b0 &
b111 %
b10 $
b11110000 #
b1 "
b1 !
$end
#5
b10 !
b10 ,
b1 &
b1 +
#10
b111 !
b111 ,
b10 &
b10 +
b1110000 #
b1110000 (
#15
b1110000 !
b1110000 ,
b11 &
b11 +
#20

View File

@ -1,25 +1,27 @@
module selectorTB();
reg [3:0] select, A, B;
reg [7:0] Y;
reg [1:0] select;
reg [3:0] A, B;
reg [7:0] ALUY;
reg [2:0] opCodeA;
wire [7:0] s0;
wire [7:0] Y;
selector uut (
.select(select),
.A(A),
.B(B),
.opCodeA(opCodeA),
.s0(s0)
.ALUY(ALUY),
.Y(Y)
);
initial begin
$dumpfile("selector.vcd");
$dumpvars;
A = 4'b0001; B = 4'b0010; opCodeA = 3'b111; Y = 8'b1111_0000; select = 4'b0010; #5;
A = 4'b0001; B = 4'b0010; opCodeA = 3'b111; Y = 8'b1111_0000; select = 4'b0001; #5;
A = 4'b0001; B = 4'b0010; opCodeA = 3'b111; Y = 8'b0111_0000; select = 4'b0100; #5;
A = 4'b0001; B = 4'b0010; opCodeA = 3'b111; Y = 8'b0111_0000; select = 4'b1000; #5;
A = 4'b0001; B = 4'b0010; opCodeA = 3'b111; ALUY = 8'b1111_0000; select = 2'b00; #5;
A = 4'b0001; B = 4'b0010; opCodeA = 3'b111; ALUY = 8'b1111_0000; select = 2'b01; #5;
A = 4'b0001; B = 4'b0010; opCodeA = 3'b111; ALUY = 8'b0111_0000; select = 2'b10; #5;
A = 4'b0001; B = 4'b0010; opCodeA = 3'b111; ALUY = 8'b0111_0000; select = 2'b11; #5;
$finish;
end