# basic_verilog **Repository Path**: gjm9999/basic_verilog ## Basic Information - **Project Name**: basic_verilog - **Description**: https://github.com/pConst/basic_verilog/tree/master 的本地保存 - **Primary Language**: Verilog - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2024-06-07 - **Last Updated**: 2025-03-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 必须拥有的Verilog SystemVerilog模块 ======================================= 最初作为 https://github.com/pConst/basic_verilog 的一部分发布 作者:Konstantin Pavlov, pavlovconst@gmail.com 嗨!这是一系列可综合的Verilog SystemVerilog模块的集合。 所有代码在典型的FPGA项目和主流FPGA供应商中都高度可重用。 如果你发现任何代码问题,请随意发起拉取请求或联系我。 此外,如果代码在你的爱好、科学或工业项目中成功实现,请告诉我,这将是我的荣幸! 许可 --------- 代码在CC BY-SA 4_0许可下发布 这意味着,你可以为任何目的重新混合、转换并构建在材料之上,甚至可以商业化。 然而,你必须提供原作者的姓名,并将你的贡献以与原始许可相同的许可下分发。 内容描述 -------------------- 为了方便你,我已经根据它们的“难度”标记了一些源代码: :green_circle: - 用于最基本的任务 :red_circle: - 用于高级或特殊用途的例程 如果你是硬件设计的初学者,你可能想先从:green_circle:代码开始探索。 存储库中的几乎所有源文件都包含详细的描述和实例化模板! | | 目录 | 描述 | |---------------|--------------|-------------| | | Advanced Synthesis Cookbook/ | Altera的cookbook中的有用代码 | | | KCPSM6_Release9_30Sept14/ | Xilinx的Picoblaze软处理器源代码 | | :red_circle: | XilinxBoardStore_with_Alveo_cards_support | Xilinx Alveo加速卡的板定义 | | | pacoblaze-2.2/ | 适用于Altera设备的Picoblaze版本 | | | avalon_mm_master_templates/ | Altera的Avalon-MM组件模板 | | | axi_master_slave_templates/ | Vivado生成的AXI组件模板 | | | benchmark_projects/ | 基准测试各种IDE以编译完全相同的Verilog项目 | | | dual_port_ram_templates/ | 块RAM模板 | | | example_projects/ | FPGA项目模板和示例 | | | gitignores/ | FPGA项目的gitignore文件 | | | scripts/ | 有用的TCL、批处理和shell脚本 | | :red_circle: | scripts_for_intel_hls/ | 用于编译Intel HLS的有用脚本 | | :red_circle: | scripts_for_xilinx_hls/ | 用于编译Xilinx HLS的有用脚本 | | | xpm | Xilinx可参数化宏源代码 | | | 文件 | 描述 | |----------------|-------------------- |-------------| | | adder_tree.sv | 并行地将多个值相加 | | | axi4l_logger.sv | 嗅探所有AXI事务,并将地址和数据存储到FIFO中 | | :green_circle: | bin2gray.sv | 组合格雷码到二进制转换器 | | | bin2pos.sv | 将二进制编码的值转换为位置(独热)码 | | | cdc_data.sv | 标准两阶段数据同步器 | | | cdc_strobe.sv | 用于单周期脉冲的时钟交叉同步器 | | :green_circle: | clk_divider.sv | 宽参考时钟分频器 | | | clogb2.svh | 根据指定的向量/RAM深度计算计数器/地址宽度 | | :green_circle: | debounce.v | 输入按钮的两周期消抖 | | :green_circle: | delay.sv | 用于创建静态延迟或跨时钟域同步的有用模块 | | | delayed_event.sv | 生成单时钟宽度的延迟脉冲 | | | dynamic_delay.sv | 任意输入信号的动态延迟 | | :green_circle: | edge_detect.sv | 组合边沿检测器,在每个信号边沿给出一拍脉冲 | | | encoder.v | 数字编码器输入逻辑模块 | | :red_circle: | fast_counter.sv | 合成计数器 | | | fifo_combiner.sv | 从多个FIFO累积数据字到单个输出FIFO | | | fifo_operator.sv | 对来自多个FIFO的数据字执行自定义操作,并将结果存储到单个输出FIFO | | :red_circle: | fifo_single_clock_ram_*.sv | 单时钟FIFO缓冲(队列)实现 | | :red_circle: | fifo_single_clock_reg_*.sv | 单时钟FIFO缓冲(队列)实现 | | :green_circle: | gray2bin.sv | 组合二进制到格雷码转换器 | | :red_circle: | gray_functions.vh | 格雷码可参数化转换函数 | | :green_circle: | hex2ascii.sv | 将4位二进制nibble转换为8位人类可读的ASCII字符 | | | leave_one_hot.sv | 组合模块,只留下最低的热位 | | | lifo.sv | 单时钟LIFO缓冲(堆栈)实现 | | | main_tb.sv | 基本测试模板 | | | moving_average.sv | 简单移动平均实现 | | | pack_unpack_array.v | 在Verilog-2001中打包和解包2D和3D向量的宏 | | | pattern_detect.sv | 检测指定的数据模式 | | | pdm_modulator.sv | 脉冲密度调制发生器模块 | | | pos2bin.sv | 将位置(独热)值转换为二进制表示 | | | prbs_gen_chk.sv | PRBS模式发生器或检查器 | | | preview_fifo.sv | FIFO具有一次读取0、1或2个字的能力 | | | priority_enc.sv | 组合优先级编码器 | | | pulse_gen.sv | 生成具有给定宽度和延迟的脉冲 | | | pulse_stretch.sv | 可配置的脉冲拉伸/扩展模块 | | | pwm_modulator.sv | 脉冲宽度调制发生器 | | :red_circle: | read_ahead_buf.sv | 替代FIFO读端口,并在同一时钟周期执行FIFO数据更新 | | | reset_set.sv | 无亚稳态状态的SR触发器变体,设置占主导地位 | | | reset_set_comb.sv | 同步SR触发器,但具有组合输出 | | | reverse_bytes.sv | 反转多字节数组中的字节顺序 | | | reverse_dimensions.sv | 在SystemVerilog 2D向量中反转维度顺序 | | | reverse_vector.sv | 反转多比特总线中的信号顺序 | | | round_robin_enc.sv | 轮询组合编码器 | | | round_robin_performance_enc.sv | 性能改进的轮询编码器 | | | set_reset.sv | 无亚稳态状态的SR触发器变体,复位占主导地位 | | | set_reset_comb.sv | 同步SR触发器,但具有组合输出 | | | sim_clk_gen.sv | 测试模板时钟生成器 | | :red_circle: | soft_latch.sv | 组合数据保持电路 | | | spi_master.sv | 通用spi主机模块 | | :red_circle: | true_dual_port_write_first_2_clock_ram.sv | 双端口RAM/ROM模块 | | :red_circle: | true_single_port_write_first_ram.sv | 单端口RAM/ROM模块 | | | uart_debug_printer.sv | 调试数据打印机到UART终端 | | :green_circle: | uart_rx.sv | 简单但直接的UART接收器 | | | uart_rx_shifter.sv | FPGA内部或FPGA之间的简单同步消息的UART类接收器移位器 | | :green_circle: | uart_tx.sv | 简单但直接的UART发射器 | | | uart_tx_shifter.sv | FPGA内部或FPGA之间的简单同步消息的UART类发射器移位器 还为选定的模块添加了测试模板。