Skip to content

Commit 835bf1f

Browse files
Xilinx Floating: Indent primitives differently
This makes the next commit easier to analyse in diff viewers.
1 parent 750150c commit 835bf1f

File tree

1 file changed

+120
-118
lines changed

1 file changed

+120
-118
lines changed

clash-cores/src/Clash/Cores/Xilinx/Floating/Annotations.hs

Lines changed: 120 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -37,61 +37,62 @@ vhdlBinaryPrim
3737
-> Name
3838
-> String
3939
-> Primitive
40-
vhdlBinaryPrim primName tclTFName funcName = InlineYamlPrimitive [VHDL] [__i|
41-
BlackBox:
42-
name: #{primName}
43-
type: |-
44-
#{primName}
45-
:: ( KnownDomain dom -- ARG[0]
46-
, KnownNat d -- ARG[1]
47-
, HasCallStack -- ARG[2]
48-
)
49-
=> Config -- ARG[3]
50-
-> Clock dom -- ARG[4]
51-
-> Enable dom -- ARG[5]
52-
-> DSignal dom n Float -- x , ARG[6]
53-
-> DSignal dom n Float -- y , ARG[7]
54-
-> DSignal dom (n + d) Float
55-
kind: Declaration
56-
template: |-
57-
-- #{funcName} begin
58-
~DEVNULL[~LIT[3]]~GENSYM[#{funcName}][0] : block
59-
COMPONENT ~INCLUDENAME[0]
60-
PORT (
61-
aclk : IN STD_LOGIC;
62-
~IF~ISACTIVEENABLE[5]~THEN aclken : IN STD_LOGIC;
63-
~ELSE~FI s_axis_a_tvalid : IN STD_LOGIC;
64-
s_axis_a_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
65-
s_axis_b_tvalid : IN STD_LOGIC;
66-
s_axis_b_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
67-
m_axis_result_tvalid : OUT STD_LOGIC;
68-
m_axis_result_tdata : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)
69-
);
70-
END COMPONENT;
71-
~IF~ISACTIVEENABLE[5]~THEN signal ~GENSYM[clken_std][2]: std_logic;
72-
begin
73-
~SYM[2] <= '1' when (~ARG[5]) else '0';
74-
~ELSEbegin
75-
~FI ~GENSYM[#{funcName}][1] : ~INCLUDENAME[0]
76-
PORT MAP (
77-
aclk => ~ARG[4],
78-
~IF~ISACTIVEENABLE[5]~THEN aclken => ~SYM[2],
79-
~ELSE~FI s_axis_a_tvalid => '1',
80-
s_axis_a_tdata => ~ARG[6],
81-
s_axis_b_tvalid => '1',
82-
s_axis_b_tdata => ~ARG[7],
83-
m_axis_result_tvalid => open,
84-
m_axis_result_tdata => ~RESULT
85-
);
40+
vhdlBinaryPrim primName tclTFName funcName =
41+
InlineYamlPrimitive [VHDL] [__i|
42+
BlackBox:
43+
name: #{primName}
44+
type: |-
45+
#{primName}
46+
:: ( KnownDomain dom -- ARG[0]
47+
, KnownNat d -- ARG[1]
48+
, HasCallStack -- ARG[2]
49+
)
50+
=> Config -- ARG[3]
51+
-> Clock dom -- ARG[4]
52+
-> Enable dom -- ARG[5]
53+
-> DSignal dom n Float -- x , ARG[6]
54+
-> DSignal dom n Float -- y , ARG[7]
55+
-> DSignal dom (n + d) Float
56+
kind: Declaration
57+
template: |-
58+
-- #{funcName} begin
59+
~DEVNULL[~LIT[3]]~GENSYM[#{funcName}][0] : block
60+
COMPONENT ~INCLUDENAME[0]
61+
PORT (
62+
aclk : IN STD_LOGIC;
63+
~IF~ISACTIVEENABLE[5]~THEN aclken : IN STD_LOGIC;
64+
~ELSE~FI s_axis_a_tvalid : IN STD_LOGIC;
65+
s_axis_a_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
66+
s_axis_b_tvalid : IN STD_LOGIC;
67+
s_axis_b_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
68+
m_axis_result_tvalid : OUT STD_LOGIC;
69+
m_axis_result_tdata : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)
70+
);
71+
END COMPONENT;
72+
~IF~ISACTIVEENABLE[5]~THEN signal ~GENSYM[clken_std][2]: std_logic;
73+
begin
74+
~SYM[2] <= '1' when (~ARG[5]) else '0';
75+
~ELSEbegin
76+
~FI ~GENSYM[#{funcName}][1] : ~INCLUDENAME[0]
77+
PORT MAP (
78+
aclk => ~ARG[4],
79+
~IF~ISACTIVEENABLE[5]~THEN aclken => ~SYM[2],
80+
~ELSE~FI s_axis_a_tvalid => '1',
81+
s_axis_a_tdata => ~ARG[6],
82+
s_axis_b_tvalid => '1',
83+
s_axis_b_tdata => ~ARG[7],
84+
m_axis_result_tvalid => open,
85+
m_axis_result_tdata => ~RESULT
86+
);
8687

87-
end block;
88-
-- #{funcName} end
89-
includes:
90-
- extension: clash.tcl
91-
name: floating_point
92-
format: Haskell
93-
templateFunction: #{tclTFName}
94-
|]
88+
end block;
89+
-- #{funcName} end
90+
includes:
91+
- extension: clash.tcl
92+
name: floating_point
93+
format: Haskell
94+
templateFunction: #{tclTFName}
95+
|]
9596

9697
-- | The InlinePrimitive annotation for a binary function in Verilog.
9798

@@ -362,50 +363,51 @@ vhdlComparePrim
362363
-> Name
363364
-> String
364365
-> Primitive
365-
vhdlComparePrim primName tclTFName funcName = InlineYamlPrimitive [VHDL] [__i|
366-
BlackBox:
367-
name: #{primName}
368-
kind: Declaration
369-
template: |-
370-
-- #{funcName} begin
371-
~GENSYM[#{funcName}][#{blockSym}] : block
372-
COMPONENT ~INCLUDENAME[0]
373-
PORT (
374-
aclk : IN STD_LOGIC;
375-
~IF~ISACTIVEENABLE[#{enable}]~THEN aclken : IN STD_LOGIC;
376-
~ELSE~FI s_axis_a_tvalid : IN STD_LOGIC;
377-
s_axis_a_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
378-
s_axis_b_tvalid : IN STD_LOGIC;
379-
s_axis_b_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
380-
m_axis_result_tvalid : OUT STD_LOGIC;
381-
m_axis_result_tdata : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
382-
);
383-
END COMPONENT;
384-
~IF~ISACTIVEENABLE[#{enable}]~THEN signal ~GENSYM[clken_std][#{clkEnStdSym}]: std_logic;~ELSE~FI
385-
signal ~GENSYM[ip_result][#{ipResultSym}] : std_logic_vector(7 downto 0);
386-
begin
387-
~IF~ISACTIVEENABLE[#{enable}]~THEN~SYM[#{clkEnStdSym}] <= '1' when (~ARG[#{enable}]) else '0';~ELSE~FI
388-
~RESULT <= ~SYM[#{ipResultSym}](3 downto 0);
389-
~GENSYM[#{funcName}][#{compSym}] : ~INCLUDENAME[0]
390-
PORT MAP (
391-
aclk => ~ARG[#{clock}],
392-
~IF~ISACTIVEENABLE[#{enable}]~THEN aclken => ~SYM[#{clkEnStdSym}],
393-
~ELSE~FI s_axis_a_tvalid => '1',
394-
s_axis_a_tdata => ~ARG[#{x}],
395-
s_axis_b_tvalid => '1',
396-
s_axis_b_tdata => ~ARG[#{y}],
397-
m_axis_result_tvalid => open,
398-
m_axis_result_tdata => ~SYM[#{ipResultSym}]
399-
);
366+
vhdlComparePrim primName tclTFName funcName =
367+
InlineYamlPrimitive [VHDL] [__i|
368+
BlackBox:
369+
name: #{primName}
370+
kind: Declaration
371+
template: |-
372+
-- #{funcName} begin
373+
~GENSYM[#{funcName}][#{blockSym}] : block
374+
COMPONENT ~INCLUDENAME[0]
375+
PORT (
376+
aclk : IN STD_LOGIC;
377+
~IF~ISACTIVEENABLE[#{enable}]~THEN aclken : IN STD_LOGIC;
378+
~ELSE~FI s_axis_a_tvalid : IN STD_LOGIC;
379+
s_axis_a_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
380+
s_axis_b_tvalid : IN STD_LOGIC;
381+
s_axis_b_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
382+
m_axis_result_tvalid : OUT STD_LOGIC;
383+
m_axis_result_tdata : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
384+
);
385+
END COMPONENT;
386+
~IF~ISACTIVEENABLE[#{enable}]~THEN signal ~GENSYM[clken_std][#{clkEnStdSym}]: std_logic;~ELSE~FI
387+
signal ~GENSYM[ip_result][#{ipResultSym}] : std_logic_vector(7 downto 0);
388+
begin
389+
~IF~ISACTIVEENABLE[#{enable}]~THEN~SYM[#{clkEnStdSym}] <= '1' when (~ARG[#{enable}]) else '0';~ELSE~FI
390+
~RESULT <= ~SYM[#{ipResultSym}](3 downto 0);
391+
~GENSYM[#{funcName}][#{compSym}] : ~INCLUDENAME[0]
392+
PORT MAP (
393+
aclk => ~ARG[#{clock}],
394+
~IF~ISACTIVEENABLE[#{enable}]~THEN aclken => ~SYM[#{clkEnStdSym}],
395+
~ELSE~FI s_axis_a_tvalid => '1',
396+
s_axis_a_tdata => ~ARG[#{x}],
397+
s_axis_b_tvalid => '1',
398+
s_axis_b_tdata => ~ARG[#{y}],
399+
m_axis_result_tvalid => open,
400+
m_axis_result_tdata => ~SYM[#{ipResultSym}]
401+
);
400402

401-
end block;
402-
-- #{funcName} end
403-
includes:
404-
- extension: clash.tcl
405-
name: floating_point
406-
format: Haskell
407-
templateFunction: #{tclTFName}
408-
|]
403+
end block;
404+
-- #{funcName} end
405+
includes:
406+
- extension: clash.tcl
407+
name: floating_point
408+
format: Haskell
409+
templateFunction: #{tclTFName}
410+
|]
409411
where
410412
clock, enable, x, y :: Int
411413
( _knownDomain :: Int
@@ -433,27 +435,27 @@ veriComparePrim
433435
-> Primitive
434436
veriComparePrim primName tclTFName funcName =
435437
InlineYamlPrimitive [Verilog, SystemVerilog] [__i|
436-
BlackBox:
437-
name: #{primName}
438-
kind: Declaration
439-
template: |-
440-
// #{funcName} begin
441-
~INCLUDENAME[0] ~GENSYM[#{funcName}][#{compSym}] (
442-
.aclk(~ARG[#{clock}]),
443-
~IF~ISACTIVEENABLE[#{enable}]~THEN .aclken(~ARG[#{enable}]),
444-
~ELSE~FI .s_axis_a_tvalid(1'b1),
445-
.s_axis_a_tdata(~ARG[#{x}]),
446-
.s_axis_b_tvalid(1'b1),
447-
.s_axis_b_tdata(~ARG[#{y}]),
448-
.m_axis_result_tvalid(),
449-
.m_axis_result_tdata(~RESULT)
450-
);
451-
// #{funcName} end
452-
includes:
453-
- extension: clash.tcl
454-
name: floating_point
455-
format: Haskell
456-
templateFunction: #{tclTFName}
438+
BlackBox:
439+
name: #{primName}
440+
kind: Declaration
441+
template: |-
442+
// #{funcName} begin
443+
~INCLUDENAME[0] ~GENSYM[#{funcName}][#{compSym}] (
444+
.aclk(~ARG[#{clock}]),
445+
~IF~ISACTIVEENABLE[#{enable}]~THEN .aclken(~ARG[#{enable}]),
446+
~ELSE~FI .s_axis_a_tvalid(1'b1),
447+
.s_axis_a_tdata(~ARG[#{x}]),
448+
.s_axis_b_tvalid(1'b1),
449+
.s_axis_b_tdata(~ARG[#{y}]),
450+
.m_axis_result_tvalid(),
451+
.m_axis_result_tdata(~RESULT)
452+
);
453+
// #{funcName} end
454+
includes:
455+
- extension: clash.tcl
456+
name: floating_point
457+
format: Haskell
458+
templateFunction: #{tclTFName}
457459
|]
458460
where
459461
clock, enable, x, y :: Int

0 commit comments

Comments
 (0)