Trying to preserve other peoples code
Recorded: May 26, 2026, 3:01 p.m.
| Original | Summarized |
GitHub - Essenceia/CRC_generator: CRC Generator is a command-line application that generates Verilog or VHDL code for CRC of any data width between 1 and 1024 and polynomial width between 1 and 1024. The code is written in C and is cross-platform compatible. Written by Evgeni Stavinov. · GitHub Skip to content Navigation Menu Toggle navigation
Sign in
Appearance settings PlatformAI CODE CREATIONGitHub CopilotWrite better code with AIGitHub SparkBuild and deploy intelligent appsGitHub ModelsManage and compare promptsMCP RegistryNewIntegrate external toolsDEVELOPER WORKFLOWSActionsAutomate any workflowCodespacesInstant dev environmentsIssuesPlan and track workCode ReviewManage code changesAPPLICATION SECURITYGitHub Advanced SecurityFind and fix vulnerabilitiesCode securitySecure your code as you buildSecret protectionStop leaks before they startEXPLOREWhy GitHubDocumentationBlogChangelogMarketplaceView all featuresSolutionsBY COMPANY SIZEEnterprisesSmall and medium teamsStartupsNonprofitsBY USE CASEApp ModernizationDevSecOpsDevOpsCI/CDView all use casesBY INDUSTRYHealthcareFinancial servicesManufacturingGovernmentView all industriesView all solutionsResourcesEXPLORE BY TOPICAISoftware DevelopmentDevOpsSecurityView all topicsEXPLORE BY TYPECustomer storiesEvents & webinarsEbooks & reportsBusiness insightsGitHub SkillsSUPPORT & SERVICESDocumentationCustomer supportCommunity forumTrust centerPartnersView all resourcesOpen SourceCOMMUNITYGitHub SponsorsFund open source developersPROGRAMSSecurity LabMaintainer CommunityAcceleratorGitHub StarsArchive ProgramREPOSITORIESTopicsTrendingCollectionsEnterpriseENTERPRISE SOLUTIONSEnterprise platformAI-powered developer platformAVAILABLE ADD-ONSGitHub Advanced SecurityEnterprise-grade security featuresCopilot for BusinessEnterprise-grade AI featuresPremium SupportEnterprise-grade 24/7 supportPricing Search or jump to... Search code, repositories, users, issues, pull requests...
Search Clear
Search syntax tips Provide feedback Include my email address so I can be contacted Cancel Submit feedback Saved searches
Name Query To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up
Appearance settings Resetting focus You signed in with another tab or window. Reload to refresh your session. Dismiss alert Essenceia CRC_generator Public
Notifications
Fork
Star Code Issues Pull requests Actions Projects Security and quality Insights
Additional navigation options
Code Issues Pull requests Actions Projects Security and quality Insights
mainBranchesTagsGo to fileCodeOpen more actions menuFolders and filesNameNameLast commit messageLast commit dateLatest commit History10 Commits10 Commitsdocdoc .gitignore.gitignore LICENSE.mdLICENSE.md README.mdREADME.md crc_gen.cppcrc_gen.cpp View all filesRepository files navigationREADMEMIT licenseCRC Generator for Verilog or VHDL language: verilog or vhdl data_width: data bus width ${1..1024}$ poly_width: polynomial width ${1..1024}$ poly_string: a string that describes CRC polynomial, eg: Ethernet MAC FCS uses poly 04C11DB7 Notes on poly_string usage: parameters: example: usb crc5 = x^5+x^2+1 Generation in action: //----------------------------------------------------------------------------- reg [3:0] lfsr_q, end // always always @(posedge clk, posedge rst) begin Archived version About the original author About CRC Generator is a command-line application that generates Verilog or VHDL code for CRC of any data width between 1 and 1024 and polynomial width between 1 and 1024. The code is written in C and is cross-platform compatible. Written by Evgeni Stavinov. vhdl verilog crc ethernet galois-field lfsr Resources Readme MIT license Uh oh! There was an error while loading. Please reload this page. Activity 3 0 0 Report repository Releases [Linux] Linux only release Latest Packages
Uh oh! There was an error while loading. Please reload this page. Contributors Uh oh! There was an error while loading. Please reload this page. Languages C++
Footer © 2026 GitHub, Inc. Footer navigation Terms Privacy Security Status Community Docs Contact Manage cookies Do not share my personal information You can’t perform that action at this time. |
The CRC Generator is a cross-platform, command-line application developed by Evgeni Stavinov that functions to generate hardware description code, specifically Verilog or VHDL, for Cyclic Redundancy Check (CRC) calculations. The application is implemented in C, which provides the underlying mechanism for generating the necessary specifications for digital logic design. The utility of the tool lies in its capacity to generate code for CRC operations across a wide range of data and polynomial widths, supporting data widths and polynomial widths ranging between 1 and 1024. The process of generating the code is initiated through command-line invocation. Users specify the desired programming language, the data bus width, the polynomial width, and the polynomial representation string. The application handles the complexity of mapping these mathematical and structural parameters into synthesizable hardware descriptions. For instance, the application allows inputting polynomial information using string representations, such as those found in standards like Ethernet MAC FCS, which relate to generating the specific logic required for the CRC calculation. This capability bridges the gap between abstract mathematical concepts of error control coding and concrete digital circuit implementation. The core functionality is exemplified by the generation of modules, such as the provided Verilog code snippet, which details the logic necessary for a CRC module. This module demonstrates the internal state logic, including the linear feedback shift register (LFSR) management, which is fundamental to CRC algorithms. The structure involves defining input data, control signals, and the resulting CRC output based on the specified polynomial and data sequence. The logic involves sequential and combinational assignments to manage the state of the register, demonstrating how these abstract generation parameters translate directly into clocked digital logic that can be implemented in hardware. Evgeni Stavinov, the creator of this tool, brings significant expertise to the development, possessing over twenty years of experience in diverse fields including FPGA logic design, embedded software, and communication protocols. This background informs the tool's focus on generating hardware-relevant descriptions, emphasizing the practical application of digital design principles to error detection. The tool is designed to be used by specifying parameters comprehensively, ensuring that the resulting Verilog or VHDL code accurately reflects the required CRC computation structure for the specified data and polynomial sizes. |