Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions Code/FPGA/watch/db/add_sub_1tc.tdf
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
--lpm_add_sub CARRY_CHAIN="MANUAL" CARRY_CHAIN_LENGTH=48 DEVICE_FAMILY="Cyclone IV GX" LPM_DIRECTION="SUB" LPM_WIDTH=1 cout dataa datab result
--VERSION_BEGIN 24.1 cbx_cycloneii 2025:03:05:20:06:36:SC cbx_lpm_add_sub 2025:03:05:20:06:36:SC cbx_mgl 2025:03:05:20:07:01:SC cbx_nadder 2025:03:05:20:06:36:SC cbx_stratix 2025:03:05:20:06:36:SC cbx_stratixii 2025:03:05:20:06:36:SC VERSION_END


-- Copyright (C) 2025 Altera Corporation. All rights reserved.
-- Your use of Altera Corporation's design tools, logic functions
-- and other software and tools, and any partner logic
-- functions, and any output files from any of the foregoing
-- (including device programming or simulation files), and any
-- associated documentation or information are expressly subject
-- to the terms and conditions of the Altera Program License
-- Subscription Agreement, the Altera Quartus Prime License Agreement,
-- the Altera IP License Agreement, or other applicable license
-- agreement, including, without limitation, that your use is for
-- the sole purpose of programming logic devices manufactured by
-- Altera and sold by Altera or its authorized distributors. Please
-- refer to the Altera Software License Subscription Agreements
-- on the Quartus Prime software download page.



--synthesis_resources =
SUBDESIGN add_sub_1tc
(
cout : output;
dataa[0..0] : input;
datab[0..0] : input;
result[0..0] : output;
)
VARIABLE
carry_eqn[0..0] : WIRE;
cin_wire : WIRE;
datab_node[0..0] : WIRE;
sum_eqn[0..0] : WIRE;

BEGIN
carry_eqn[] = ( ((dataa[0..0] & datab_node[0..0]) # ((dataa[0..0] # datab_node[0..0]) & cin_wire)));
cin_wire = B"1";
cout = carry_eqn[0..0];
datab_node[] = (! datab[]);
result[] = sum_eqn[];
sum_eqn[] = ( ((dataa[0..0] $ datab_node[0..0]) $ cin_wire));
END;
--VALID FILE
44 changes: 44 additions & 0 deletions Code/FPGA/watch/db/add_sub_2tc.tdf
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
--lpm_add_sub CARRY_CHAIN="MANUAL" CARRY_CHAIN_LENGTH=48 DEVICE_FAMILY="Cyclone IV GX" LPM_DIRECTION="SUB" LPM_WIDTH=2 cout dataa datab result
--VERSION_BEGIN 24.1 cbx_cycloneii 2025:03:05:20:06:36:SC cbx_lpm_add_sub 2025:03:05:20:06:36:SC cbx_mgl 2025:03:05:20:07:01:SC cbx_nadder 2025:03:05:20:06:36:SC cbx_stratix 2025:03:05:20:06:36:SC cbx_stratixii 2025:03:05:20:06:36:SC VERSION_END


-- Copyright (C) 2025 Altera Corporation. All rights reserved.
-- Your use of Altera Corporation's design tools, logic functions
-- and other software and tools, and any partner logic
-- functions, and any output files from any of the foregoing
-- (including device programming or simulation files), and any
-- associated documentation or information are expressly subject
-- to the terms and conditions of the Altera Program License
-- Subscription Agreement, the Altera Quartus Prime License Agreement,
-- the Altera IP License Agreement, or other applicable license
-- agreement, including, without limitation, that your use is for
-- the sole purpose of programming logic devices manufactured by
-- Altera and sold by Altera or its authorized distributors. Please
-- refer to the Altera Software License Subscription Agreements
-- on the Quartus Prime software download page.



--synthesis_resources =
SUBDESIGN add_sub_2tc
(
cout : output;
dataa[1..0] : input;
datab[1..0] : input;
result[1..0] : output;
)
VARIABLE
carry_eqn[1..0] : WIRE;
cin_wire : WIRE;
datab_node[1..0] : WIRE;
sum_eqn[1..0] : WIRE;

BEGIN
carry_eqn[] = ( ((dataa[1..1] & datab_node[1..1]) # ((dataa[1..1] # datab_node[1..1]) & carry_eqn[0..0])), ((dataa[0..0] & datab_node[0..0]) # ((dataa[0..0] # datab_node[0..0]) & cin_wire)));
cin_wire = B"1";
cout = carry_eqn[1..1];
datab_node[] = (! datab[]);
result[] = sum_eqn[];
sum_eqn[] = ( ((dataa[1..1] $ datab_node[1..1]) $ carry_eqn[0..0]), ((dataa[0..0] $ datab_node[0..0]) $ cin_wire));
END;
--VALID FILE
172 changes: 172 additions & 0 deletions Code/FPGA/watch/db/alt_u_div_0bf.tdf

Large diffs are not rendered by default.

43 changes: 43 additions & 0 deletions Code/FPGA/watch/db/lpm_divide_rmm.tdf
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
--lpm_divide DEVICE_FAMILY="Cyclone IV GX" LPM_DREPRESENTATION="UNSIGNED" LPM_NREPRESENTATION="UNSIGNED" LPM_WIDTHD=7 LPM_WIDTHN=12 OPTIMIZE_FOR_SPEED=5 denom numer quotient CARRY_CHAIN="MANUAL" CARRY_CHAIN_LENGTH=48 IGNORE_CARRY_BUFFERS="OFF"
--VERSION_BEGIN 24.1 cbx_cycloneii 2025:03:05:20:06:36:SC cbx_lpm_abs 2025:03:05:20:06:36:SC cbx_lpm_add_sub 2025:03:05:20:06:36:SC cbx_lpm_divide 2025:03:05:20:06:36:SC cbx_mgl 2025:03:05:20:07:01:SC cbx_nadder 2025:03:05:20:06:36:SC cbx_stratix 2025:03:05:20:06:36:SC cbx_stratixii 2025:03:05:20:06:36:SC cbx_util_mgl 2025:03:05:20:06:36:SC VERSION_END


-- Copyright (C) 2025 Altera Corporation. All rights reserved.
-- Your use of Altera Corporation's design tools, logic functions
-- and other software and tools, and any partner logic
-- functions, and any output files from any of the foregoing
-- (including device programming or simulation files), and any
-- associated documentation or information are expressly subject
-- to the terms and conditions of the Altera Program License
-- Subscription Agreement, the Altera Quartus Prime License Agreement,
-- the Altera IP License Agreement, or other applicable license
-- agreement, including, without limitation, that your use is for
-- the sole purpose of programming logic devices manufactured by
-- Altera and sold by Altera or its authorized distributors. Please
-- refer to the Altera Software License Subscription Agreements
-- on the Quartus Prime software download page.


FUNCTION sign_div_unsign_plh (denominator[6..0], numerator[11..0])
RETURNS ( quotient[11..0], remainder[6..0]);

--synthesis_resources = lut 75
SUBDESIGN lpm_divide_rmm
(
denom[6..0] : input;
numer[11..0] : input;
quotient[11..0] : output;
remain[6..0] : output;
)
VARIABLE
divider : sign_div_unsign_plh;
numer_tmp[11..0] : WIRE;

BEGIN
divider.denominator[] = denom[];
divider.numerator[] = numer_tmp[];
numer_tmp[] = numer[];
quotient[] = divider.quotient[];
remain[] = divider.remainder[];
END;
--VALID FILE
Loading