HAST-327: Update Lombiq.Analyzers to latest #173
Triggered via pull request
October 18, 2023 21:56
Status
Cancelled
Total duration
5m 30s
Artifacts
–
build-and-test.yml
on: pull_request
Matrix: Build and Test (larger runners) / Build and Test
Matrix: Build and Test - NuGetTest solution / Build and Test
Matrix: Build and Test (standard runners) / Build and Test
Waiting for pending jobs
Post Pull Request Checks Automation
/
Post Pull Request Checks Automation
Annotations
8 errors
Build and Test (larger runners) / Build and Test (gitrunners-ubuntu-2204-x64-4vcpu)
Process completed with exit code 1.
|
Hast.Transformer.Vhdl.Tests.VerificationTests.CatapultSamplesVerificationTests ► Posit32FusedSampleMatchesApproved:
test/Hast.Transformer.Vhdl.Tests/VerificationTests/ShouldMatchApprovedExtensions.cs#L40
Failed test found in:
test/Hast.Transformer.Vhdl.Tests/TestResults/test-results.trx
Error:
Shouldly.ShouldMatchApprovedException : To approve the changes run this command:
cp "/home/ubuntu/work/Hastlayer-SDK/Hastlayer-SDK/test/Hast.Transformer.Vhdl.Tests/VerificationTests/VerificationSources/CatapultSamplesVerificationTests.Posit32FusedSampleMatchesApproved.received.vhdl" "/home/ubuntu/work/Hastlayer-SDK/Hastlayer-SDK/test/Hast.Transformer.Vhdl.Tests/VerificationTests/VerificationSources/CatapultSamplesVerificationTests.Posit32FusedSampleMatchesApproved.approved.vhdl"
----------------------------
string.Join(
string.Empty,
hardwareDescriptions.Select(hardwareDescription => hardwareDescription.VhdlSource + hardwareDescription.XdcSource))
should match approved with options: Ignoring line endings
"-- Generated by Hastlayer (hastlayer.com) at <date and time removed for approval testing> for the following hardware entry points:
-- * System.Void Hast.Samples.SampleAssembly.Posit32FusedCalculator::CalculateFusedSum(Hast.Transformer.SimpleMemory.SimpleMemory)
-- VHDL libraries necessary for the generated code to work. These libraries are included here instead of being managed separately in the Hardware Framework so they can be more easily updated.
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
package TypeConversion is
function SmartResize(input: unsigned; size: natural) return unsigned;
function SmartResize(input: signed; size: natural) return signed;
function ToUnsignedAndExpand(input: signed; size: natural) return unsigned;
end TypeConversion;
package body TypeConversion is
-- The .NET behavior is different than that of resize() ("To create a larger vector, the new [leftmost] bit
-- positions are filled with the sign bit(ARG'LEFT). When truncating, the sign bit is retained along with the
-- rightmost part.") when casting to a smaller type: "If the source type is larger than the destination type,
-- then the source value is truncated by discarding its "extra" most significant bits. The result is then
-- treated as a value of the destination type." Thus we need to simply truncate when casting down. See:
-- https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/conversions
function SmartResize(input: unsigned; size: natural) return unsigned is
begin
if (size < input'LENGTH) then
return input(size - 1 downto 0);
else
-- Resize() is supposed to work with little endian numbers: "When truncating, the sign bit is retained
-- along with the rightmost part." for signed numbers and "When truncating, the leftmost bits are
-- dropped." for unsigned ones. See: http://www.csee.umbc.edu/portal/help/VHDL/numeric_std.vhdl
return resize(input, size);
end if;
end SmartResize;
function SmartResize(input: signed; size: natural) return signed is
begin
if (size < input'LENGTH) then
return input(size - 1 downto 0);
else
return resize(input, size);
end if;
end SmartResize;
function ToUnsignedAndExpand(input: signed; size: natural) return unsigned is
variable result: unsigned(size - 1 downto 0);
begin
if (input >= 0) then
return resize(unsigned(input), size);
else
result := (others => '1');
result(input'LENGTH - 1 downto 0) := unsigned(input);
return result;
end if;
end ToUnsignedAndExpand;
end TypeConversion;
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
package SimpleMemory is
-- Data conversion functions:
function ConvertUInt32ToStdLogicVector(input: unsigned(31 downto 0)) return std_logic_vector;
function ConvertStdLogicVectorToUInt32(input : std_logic_vector) return un
|
Hast.Transformer.Vhdl.Tests.VerificationTests.CatapultSamplesVerificationTests ► PositSampleMatchesApproved:
src/Hastlayer/Hast.Transformer.Vhdl/SubTransformers/ExpressionTransformers/InvocationExpressionTransformer.cs#L377
Failed test found in:
test/Hast.Transformer.Vhdl.Tests/TestResults/test-results.trx
Error:
System.InvalidOperationException : The invoked method System.UInt16 System.Math::Min(System.UInt16,System.UInt16) can't be found and thus can't be transformed. Did you forget to add an assembly to the list of the assemblies to generate hardware from? Parent entity where the affected code is: System.UInt16 Lombiq.Arithmetics.BitMask::LengthOfRunOfBits(System.UInt16)
|
Hast.Transformer.Vhdl.Tests.VerificationTests.XilinxSamplesVerificationTests ► Posit32FusedSampleMatchesApproved(deviceName: "Alveo U50"):
test/Hast.Transformer.Vhdl.Tests/VerificationTests/ShouldMatchApprovedExtensions.cs#L40
Failed test found in:
test/Hast.Transformer.Vhdl.Tests/TestResults/test-results.trx
Error:
Shouldly.ShouldMatchApprovedException : To approve the changes run this command:
cp "/home/ubuntu/work/Hastlayer-SDK/Hastlayer-SDK/test/Hast.Transformer.Vhdl.Tests/VerificationTests/VerificationSources/XilinxSamplesVerificationTests.Posit32FusedSampleMatchesApproved.Alveo U50.received.vhdl" "/home/ubuntu/work/Hastlayer-SDK/Hastlayer-SDK/test/Hast.Transformer.Vhdl.Tests/VerificationTests/VerificationSources/XilinxSamplesVerificationTests.Posit32FusedSampleMatchesApproved.Alveo U50.approved.vhdl"
----------------------------
string.Join(
string.Empty,
hardwareDescriptions.Select(hardwareDescription => hardwareDescription.VhdlSource + hardwareDescription.XdcSource))
should match approved with options: Ignoring line endings
"-- Generated by Hastlayer (hastlayer.com) at <date and time removed for approval testing> for the following hardware entry points:
-- * System.Void Hast.Samples.SampleAssembly.Posit32FusedCalculator::CalculateFusedSum(Hast.Transformer.SimpleMemory.SimpleMemory)
-- VHDL libraries necessary for the generated code to work. These libraries are included here instead of being managed separately in the Hardware Framework so they can be more easily updated.
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
package TypeConversion is
function SmartResize(input: unsigned; size: natural) return unsigned;
function SmartResize(input: signed; size: natural) return signed;
function ToUnsignedAndExpand(input: signed; size: natural) return unsigned;
end TypeConversion;
package body TypeConversion is
-- The .NET behavior is different than that of resize() ("To create a larger vector, the new [leftmost] bit
-- positions are filled with the sign bit(ARG'LEFT). When truncating, the sign bit is retained along with the
-- rightmost part.") when casting to a smaller type: "If the source type is larger than the destination type,
-- then the source value is truncated by discarding its "extra" most significant bits. The result is then
-- treated as a value of the destination type." Thus we need to simply truncate when casting down. See:
-- https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/conversions
function SmartResize(input: unsigned; size: natural) return unsigned is
begin
if (size < input'LENGTH) then
return input(size - 1 downto 0);
else
-- Resize() is supposed to work with little endian numbers: "When truncating, the sign bit is retained
-- along with the rightmost part." for signed numbers and "When truncating, the leftmost bits are
-- dropped." for unsigned ones. See: http://www.csee.umbc.edu/portal/help/VHDL/numeric_std.vhdl
return resize(input, size);
end if;
end SmartResize;
function SmartResize(input: signed; size: natural) return signed is
begin
if (size < input'LENGTH) then
return input(size - 1 downto 0);
else
return resize(input, size);
end if;
end SmartResize;
function ToUnsignedAndExpand(input: signed; size: natural) return unsigned is
variable result: unsigned(size - 1 downto 0);
begin
if (input >= 0) then
return resize(unsigned(input), size);
else
result := (others => '1');
result(input'LENGTH - 1 downto 0) := unsigned(input);
return result;
end if;
end ToUnsignedAndExpand;
end TypeConversion;
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
package SimpleMemory is
-- Data conversion functions:
function ConvertUInt32ToStdLogicVector(input: unsigned(31 downto 0)) return std_logic_vector;
function ConvertStdLogicVectorToUInt32(input : std_logic_v
|
Hast.Transformer.Vhdl.Tests.VerificationTests.XilinxSamplesVerificationTests ► Posit32FusedSampleMatchesApproved(deviceName: "Nexys4 DDR"):
test/Hast.Transformer.Vhdl.Tests/VerificationTests/ShouldMatchApprovedExtensions.cs#L40
Failed test found in:
test/Hast.Transformer.Vhdl.Tests/TestResults/test-results.trx
Error:
Shouldly.ShouldMatchApprovedException : To approve the changes run this command:
cp "/home/ubuntu/work/Hastlayer-SDK/Hastlayer-SDK/test/Hast.Transformer.Vhdl.Tests/VerificationTests/VerificationSources/XilinxSamplesVerificationTests.Posit32FusedSampleMatchesApproved.Nexys4 DDR.received.vhdl" "/home/ubuntu/work/Hastlayer-SDK/Hastlayer-SDK/test/Hast.Transformer.Vhdl.Tests/VerificationTests/VerificationSources/XilinxSamplesVerificationTests.Posit32FusedSampleMatchesApproved.Nexys4 DDR.approved.vhdl"
----------------------------
string.Join(
string.Empty,
hardwareDescriptions.Select(hardwareDescription => hardwareDescription.VhdlSource + hardwareDescription.XdcSource))
should match approved with options: Ignoring line endings
"-- Generated by Hastlayer (hastlayer.com) at <date and time removed for approval testing> for the following hardware entry points:
-- * System.Void Hast.Samples.SampleAssembly.Posit32FusedCalculator::CalculateFusedSum(Hast.Transformer.SimpleMemory.SimpleMemory)
-- VHDL libraries necessary for the generated code to work. These libraries are included here instead of being managed separately in the Hardware Framework so they can be more easily updated.
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
package TypeConversion is
function SmartResize(input: unsigned; size: natural) return unsigned;
function SmartResize(input: signed; size: natural) return signed;
function ToUnsignedAndExpand(input: signed; size: natural) return unsigned;
end TypeConversion;
package body TypeConversion is
-- The .NET behavior is different than that of resize() ("To create a larger vector, the new [leftmost] bit
-- positions are filled with the sign bit(ARG'LEFT). When truncating, the sign bit is retained along with the
-- rightmost part.") when casting to a smaller type: "If the source type is larger than the destination type,
-- then the source value is truncated by discarding its "extra" most significant bits. The result is then
-- treated as a value of the destination type." Thus we need to simply truncate when casting down. See:
-- https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/conversions
function SmartResize(input: unsigned; size: natural) return unsigned is
begin
if (size < input'LENGTH) then
return input(size - 1 downto 0);
else
-- Resize() is supposed to work with little endian numbers: "When truncating, the sign bit is retained
-- along with the rightmost part." for signed numbers and "When truncating, the leftmost bits are
-- dropped." for unsigned ones. See: http://www.csee.umbc.edu/portal/help/VHDL/numeric_std.vhdl
return resize(input, size);
end if;
end SmartResize;
function SmartResize(input: signed; size: natural) return signed is
begin
if (size < input'LENGTH) then
return input(size - 1 downto 0);
else
return resize(input, size);
end if;
end SmartResize;
function ToUnsignedAndExpand(input: signed; size: natural) return unsigned is
variable result: unsigned(size - 1 downto 0);
begin
if (input >= 0) then
return resize(unsigned(input), size);
else
result := (others => '1');
result(input'LENGTH - 1 downto 0) := unsigned(input);
return result;
end if;
end ToUnsignedAndExpand;
end TypeConversion;
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
package SimpleMemory is
-- Data conversion functions:
function ConvertUInt32ToStdLogicVector(input: unsigned(31 downto 0)) return std_logic_vector;
function ConvertStdLogicVectorToUInt32(input : std_logic
|
Hast.Transformer.Vhdl.Tests.VerificationTests.XilinxSamplesVerificationTests ► PositSampleMatchesApproved(deviceName: "Alveo U50"):
src/Hastlayer/Hast.Transformer.Vhdl/SubTransformers/ExpressionTransformers/InvocationExpressionTransformer.cs#L377
Failed test found in:
test/Hast.Transformer.Vhdl.Tests/TestResults/test-results.trx
Error:
System.InvalidOperationException : The invoked method System.UInt16 System.Math::Min(System.UInt16,System.UInt16) can't be found and thus can't be transformed. Did you forget to add an assembly to the list of the assemblies to generate hardware from? Parent entity where the affected code is: System.UInt16 Lombiq.Arithmetics.BitMask::LengthOfRunOfBits(System.UInt16)
|
Hast.Transformer.Vhdl.Tests.VerificationTests.XilinxSamplesVerificationTests ► PositSampleMatchesApproved(deviceName: "Nexys4 DDR"):
src/Hastlayer/Hast.Transformer.Vhdl/SubTransformers/ExpressionTransformers/InvocationExpressionTransformer.cs#L377
Failed test found in:
test/Hast.Transformer.Vhdl.Tests/TestResults/test-results.trx
Error:
System.InvalidOperationException : The invoked method System.UInt16 System.Math::Min(System.UInt16,System.UInt16) can't be found and thus can't be transformed. Did you forget to add an assembly to the list of the assemblies to generate hardware from? Parent entity where the affected code is: System.UInt16 Lombiq.Arithmetics.BitMask::LengthOfRunOfBits(System.UInt16)
|
Build and Test (larger runners) / Build and Test (gitrunners-ubuntu-2204-x64-4vcpu)
Canceling workflow due to one of the jobs failing.
|