芯作者
毕业于国内某985高校硕士,平时做了很多设计,在这里分享下技术,可以共同交流一起进步!
展开
-
使用verilog设计实现16位CPU及仿真
通过改变时钟信号的频率和复位信号的持续时间,可以调整测试的时序。常见的指令包括算术逻辑运算指令(加法、减法、与、或等)、数据传输指令(加载、存储)、控制指令(跳转、分支)、以及其他特定功能的指令。:根据设计的指令集,设计CPU的整体结构,包括运算单元、寄存器文件、指令译码单元、控制单元等。:通过编写Testbench对CPU进行功能验证,测试各种指令的执行、数据传输等功能是否正确。:设计Testbench对CPU进行时序验证,测试CPU在不同时钟频率和不同输入信号的情况下能否正常工作。原创 2024-03-20 20:36:04 · 371 阅读 · 0 评论 -
使用verillog编写KMP字符串匹配算法
使用verillog编写KMP字符串匹配算法原创 2024-03-20 20:27:34 · 509 阅读 · 0 评论 -
使用verilog编写记忆拼图游戏设计及仿真
在游戏中,通过LED灯展示一个随机生成的拼图图案,然后玩家根据按钮输入猜测图案。如果猜测正确,游戏会重新展示一个新的拼图图案;请注意,这只是一个简单的testbench示例,实际测试通常需要更详细和全面的测试用例覆盖各种情况。编写记忆拼图游戏的Verilog设计涉及到多个部分,包括状态机设计、随机数生成、按钮输入检测、LED显示控制等。请注意,实际游戏设计可能需要更多的逻辑和状态来处理各种情况,例如错误计数、限制猜测时间等等。为了验证上述记忆拼图游戏设计的Verilog模块,我们可以编写一个简单的。原创 2024-03-19 21:39:44 · 417 阅读 · 0 评论 -
使用verilog编写迷宫寻宝游戏设计及仿真
设计一个基于Verilog的迷宫寻宝游戏,需要先确定游戏的规则和特性。为了简化,我们可以设想一个基础的迷宫框架,玩家从起点开始,移动至终点来赢得游戏。为了验证上面设计的迷宫寻宝游戏模块,我们可以编写一个简单的测试平台(testbench)来生成测试序列并观察模块的行为。在这个testbench中,首先定义了测试用的信号,然后实例化了之前设计的迷宫寻宝游戏模块。请注意,以上代码仅提供了一个基本的测试框架,具体的测试序列和细节应根据实际需求进行调整。原创 2024-03-19 21:34:10 · 205 阅读 · 0 评论 -
使用verilog写一个模拟比特币挖矿游戏及testbench
设计一个简单的挖矿游戏,可以围绕尝试找到特定条件下的数值这个概念构建。由于 Verilog 主要用于硬件设计和模拟,并不直接支持复杂的游戏逻辑,我们将以一个简化版本的“挖矿”过程为例。因此,为了测试的便捷性,请合理设置。此外,我们也定义了时钟信号的产生过程以及用于初始化和控制测试流程的初始块。以上是一个简单的框架,具体的实现细节和代码会根据游戏规则和目标的不同而有所差异。在这个 testbench 中,我们创建了测试用的信号,并实例化了之前定义的。在这段代码中,设计了一个非常简单的挖矿游戏。原创 2024-03-18 22:14:31 · 662 阅读 · 0 评论 -
使用verilog设计有限状态机实现的跳一跳游戏及其testbench仿真测试
这里的有限状态机定义了4个状态:IDLE(等待开始游戏),PREPARE_JUMP(准备跳跃),JUMPING(正在跳跃中),CHECK_LAND(检查是否成功落地)。跳跃由jump信号控制。根据状态转移过程中需要进行的操作,编写相应的状态动作逻辑。确定不同状态之间的转移条件,例如何时从等待开始状态转移到准备跳跃状态,如何触发跳跃动作,跳跃是否成功等。确定需要的输入信号,这些输入信号可以包括时钟信号、复位信号、游戏开始信号、跳跃信号等。确定游戏中可能存在的状态,如等待开始、准备跳跃、跳跃中、检查落地等。原创 2024-03-18 22:04:53 · 227 阅读 · 0 评论 -
使用verilog编写一个猜数游戏设计及其testbench
在设计一个复杂的猜数游戏系统时,首先要考虑游戏的整体逻辑和所包含的功能模块。以下是实现复杂猜数游戏设计的一般思路:确定游戏功能模块:定义模块接口:确定各个模块之间的输入输出接口,以及模块之间的数据传输方式和控制信号。编写各个功能模块:分别实现猜数逻辑、游戏控制、难度级别设定、得分系统和游戏结束判断等模块,确保每个模块的功能正确性和独立性。整合各个模块:将各个模块按照游戏的整体逻辑进行整合,确保模块之间的协调工作正常。编写测试台:编写 testbench 对整个游戏系统进行仿真测试,包括正常流程、边界条件和错原创 2024-03-17 15:44:03 · 77 阅读 · 0 评论 -
使用Verilog编写硬件加速器
实际的硬件加速器可能需要更复杂的逻辑来处理各种情况、错误检测和优化等。完成编写后,你还需要进行仿真验证、综合与布局布线、验证与性能分析,以确保硬件加速器的正确性和性能满足设计要求。这只是一种简单的硬件加速器的示例,具体的实现方式、功能、性能都可以根据实际需求进行调整和扩展。这个设计可以用作毕设题目的选择,Verilog编写硬件加速器:设计一个硬件加速器,使用Verilog语言实现,可以加速某些特定的算法,如加密解密算法、数据压缩等。),在这个块中描述了乘法加速器的计算逻辑。原创 2024-03-17 15:31:38 · 205 阅读 · 0 评论 -
使用verilog设计赛车游戏(FPGA毕设课设)
设计一个基于FPGA的赛车游戏,使用Verilog语言实现,并通过VGA显示原创 2023-12-23 11:22:05 · 1070 阅读 · 0 评论 -
FPGA实现腐蚀和膨胀算法verilog设计及仿真 加报告
腐蚀算法实现:腐蚀操作是通过将结构元素与图像进行逐像素比较,并将该像素位置的结果设置为结构元素与图像的逻辑“与”操作的结果来实现的。膨胀算法实现:膨胀操作是通过将结构元素与图像进行逐像素比较,并将该像素位置的结果设置为结构元素与图像的逻辑“或”操作的结果来实现的。通过并行化的方法,将图像分割成小块,并使用多个处理单元对每个小块进行腐蚀和膨胀操作,实现了图像的形态学处理。你可以在代码中定义它。最重要的是,在设计之前,请详细了解腐蚀和膨胀算法的原理和实现方式,并结合FPGA的特性进行设计和优化。原创 2023-12-16 13:32:58 · 498 阅读 · 0 评论 -
课设:FPGA音频均衡器 verilog设计及仿真 加报告
未来,随着FPGA技术的进一步发展和应用场景的扩大,FPGA音频均衡器将发挥出更大的作用,并为音频领域带来更多创新和突破。(a)音乐制作:均衡器可以调整音频信号中不同频段的能量分布,使得乐器声音更加明亮、动感,从而提升音乐制作的质量和创作的灵活性。以上步骤提供了设计一个音频均衡器的大致过程,但值得注意的是,具体实现的细节和复杂度可能因设计要求和所使用的平台而有所不同。确保设计满足预期的性能和要求。确定均衡器的功能和要求:定义你的音频均衡器需要实现的功能,包括频率范围、增益范围以及可调参数数量等。原创 2023-12-16 11:54:54 · 500 阅读 · 0 评论 -
使用verilog语言实现简单的卷积神经网络
需要注意的是,这个示例是非常简化的,仅用于演示Verilog中卷积神经网络的基本结构和操作,没有包含更复杂的层类型(如批归一化、激活函数等),也没有考虑到优化和内存管理等问题。input_image是一个3x3的2D数组,表示输入图像,output_image是一个1x1的2D数组,表示输出特征图。在这个示例中,我们假设输入图像是一个2D的灰度图像,卷积核是一个3x3的窗口,步幅为1,padding为0,激活函数为ReLU。因此,提供一个简化的示例,展示如何使用Verilog实现一个简单的卷积层。原创 2023-10-08 11:33:37 · 572 阅读 · 0 评论 -
JEPG Encoder IP verilog设计及实现
如果最终的 JPEG 比特不是一组完整的 32 比特,信号 "eof_data_partial_ready "将在一个时钟周期内为高电平,信号 "JPEG_bitstream "中的比特将在一个时钟周期内有效。在测试过程中,我模拟了不同的量化值,最后确定量化值为 1,即 Q = 100,因为这对我的代码压力最大,而且我试图在最终测试中破坏内核。该内核的计算方法可能与您的计算方法略有不同,如果您使用的赫夫曼表没有定义所有可能的值,内核可能需要一个未存储在 RAM 中的赫夫曼码,结果将是错误的比特流输出。原创 2023-10-07 15:28:08 · 516 阅读 · 0 评论 -
基于 FPGA 的机器博弈五子棋游戏
五子棋的 AI 算法我们使用了贪婪算法,对棋盘上每一个未下子的位置进行评分,选择分值最大的位置作为落子的位置。对战、AI 对 AI(主要是用来训练 AI),通过玩家手中的蓝牙笔可以进行切换,选。体健康(见下图 1)。光标指向,按下确认键落子,然后五子棋 AI 程序进行它的落子,双方轮流进行。己执黑棋还是白棋(执黑棋的一方先行),玩家通过手中的蓝牙笔来控制屏幕上的。等),无法实现双人同屏在线游戏,丧失了游戏的一部分趣味性和体验性。我们在体感游戏的启发下,设计了可以远程遥控的蓝牙笔和对应的云端平台,原创 2023-10-06 16:15:21 · 579 阅读 · 0 评论 -
基于FPGA的拔河游戏设计
拔河模块代码如下,逻辑很简单,当两人按下按键不同时为00或11时,led会朝为1方移动一位,如此先到q先到0或10,结束游戏。游戏双方 各持一个按键,迅速且不断地按动产生脉冲,哪方按 得快,亮点就向哪方移动,//// 采用3 个或门消抖。output reg[3:0] q, //led左移或右的位置。output reg[7:0] count,//胜者得分。input k2, //消抖后的key2。input key1, //// 按键1。input key2, //// 按键2。原创 2023-10-06 15:32:14 · 852 阅读 · 0 评论 -
基于FPGA点阵显示屏设计-毕设
LED显示以其组构方式灵活、显示稳定、功耗低、寿命长、技术成熟、成本低廉等特点在车站、证券所、运动场馆、交通干道及各种室内/外显示场合的信息发布,公益宣传,环境参数实时,重大活动倒计时等等得到广泛的应用。控制系统程序采用FPGA编辑,通过编程控制各显示点对应LED阳极和阴极端的电平,就可以有效的控制各显示点的亮灭。良好的稳压电源,应在环境温度变化时,有效地抑制输出电压的漂移,保持输出电压稳定。文中详细介绍了LED点阵显示的硬件设计思路、硬件电路各个部分的功能及原理、相应软件的程序设计,以及使用说明等。原创 2023-09-16 16:17:51 · 981 阅读 · 0 评论 -
vivado IP核RAM ROM使用及测试仿真
vivado IP核RAM ROM使用及测试仿真,完整工程代码,VHDL or verilog。原创 2023-05-16 19:48:57 · 561 阅读 · 0 评论 -
基于FPGA的数字电子琴-数电小系统设计
key2:key1;input keyboard_select,//键盘选择矩阵键盘orPS2键盘。output [7:0] digital_data//数码管段选。output [1:0] digital_en,//数码管片选。output reg [15:0] led,//LED输出。input [2:0] song_num,//歌曲选择。output [3:0] scan,//矩阵键盘行扫描。input ps2_data, //ps2键盘数据线。input [3:0] col,//矩阵键盘列输入。原创 2023-05-15 21:10:40 · 975 阅读 · 0 评论 -
基于 GS232 搭建的 SoC_up 说明
另外,由于 SoC_up 设计比较复杂,运行在 100MHz 的工作频率下,因而 SoC_up 的工作时钟,也就是 CPU 时钟,通用需要使用 xilinx IP 中的 PLL 单元进行分频,设置到 33MHz。SoC_up 中的 DDR3 内存控制器使用的是 xilinx IP,其需要一个 100MHz 的输入时钟,以及一个 200MHz 的参考 时钟。其中 3x1 的 AXI 仲裁器为 2 个 32 位 AXI 接口:一个接 AXI 互联网络供 CPU 访问,一个接 MAC 控制器供网口访问。原创 2023-05-01 15:27:15 · 728 阅读 · 0 评论 -
verilog设计实现8b-10b编码器包括3b4b,5b6b 及modelsim仿真
根据应用选择最佳编码表,8b10b编码器至少应使用一张编码表。详细了解和选择编码表有利于改善编码器的性能。编写编码器的状态机。编码器的状态应针对输入数据,在状态转移前确定符号的输出。在每个状态中,都必须关联与该状态相关联的输出符号。用Verilog将设计转换为FPGA或ASIC的物理实现,并通过测试验证设计性能。设计电路包括选择元件,例如寄存器、计数器、直接构成,以及各种传输门、存储器等。例如,您需要确定8位并行数据输入和10位串行数据输出。使用Verilog开发环境进行仿真测试,并通过仿真验证电路功能。原创 2023-04-22 16:29:52 · 803 阅读 · 0 评论 -
verilog实现并行CRC校验设计及仿真
并行CRC校验是一种高效的CRC校验方法,它可以用于对大数据流进行快速校验,加快数据传输速度。实现并行CRC校验需要同时对多个数据块进行CRC校验,因此需要使用多个寄存器同时计算校验值。将每组数据字节送入寄存器,每个字节顺序处理,每次处理输入一位,处理完一个字节后进行下一个字节。将寄存器的内容与校验码进行比较,如果一致,则该数据没有出现错误,否则数据出现错误。与输入的数据一样先补零,然后进行CRC校验计算,计算完毕后得出校验码。将数据分组,一组多个数据字节根据数据总位数和寄存器的位数决定。原创 2023-04-22 10:26:17 · 932 阅读 · 0 评论 -
oqpsk verilog设计实现及仿真
相位调制可以通过 look-up table 实现。实现 FIR 滤波器:在 oqpsk 调制器中使用 FIR 滤波器进行信号调制,滤波器的设计可以采用 window 函数法等。仿真测试:在 verilog 设计完成后,需要进行仿真测试以验证电路功能和正确性,调整和修改设计,直到满足性能要求。定义输入输出信号:首先要定义 oqpsk 信号的输入和输出端口,包括数据输入和同步信号输入,以及调制后的信号输出。综合和实现:完成仿真测试后,将 verilog 代码综合为门级电路,并实现到目标 FPGA 上。原创 2023-04-22 09:51:59 · 268 阅读 · 0 评论 -
密码锁设计-verilog及仿真
败次数+1,显示对应数量红灯,若累计3次则系统锁住,数码管显示ffffffff,C. 若已设置密码:按S3可以验证密码,通过小键盘逐位输入密码,输入满三位。D. 每次进入新状态,数码管清除上个状态的输入,每个状态下,同步显示键盘输。后按S5确定,如果正确则进入解锁状态,累计失败次数清零,不正确则累计失。入到数码管,显示方式不限,只需要逐位显示3个数字即可。B. 若已解锁,或未设置密码:按S2设置密码,通过4。实现3位数字的密码锁,每位数字取值1、2、3。输入满三位后按S5确定,成功后GLD0亮;原创 2023-03-28 19:39:05 · 1284 阅读 · 0 评论 -
Project part1 – 8-bit ALU Design+Project part 2: 8-bit microprocessor
part1:part2:ALU代码:run//ALUmodule ALUa+b :a-b :~(a|b) :a :8’b0 :8’b0;//end1’b1:1’b0;endmodule仿真图:control代码:input C,if(!C) beginend。原创 2023-03-23 20:15:20 · 338 阅读 · 0 评论 -
DE1开发板verilog实现简易乒乓球游戏(有上板照片验证)
实现在乒乓球游戏设计,使用PS2键盘的输入和VGA显示器的输出,在显示器上可以看到两个板子控制小球的反弹。软件平台:Quartus II 19.1。开发平台:DE1开发板。下载链接:(后续上传)原创 2023-03-13 18:46:49 · 606 阅读 · 1 评论 -
同步FIFO设计verilog设计及仿真
根据rd_addr_gen模块产生的读地址,在读使能(rd_en)为高电平的时候,将RAM中rd_addr[3:0]地址中的对应单元的数据在时钟上升沿到来的时候,读出到data_out[7:0]中。根据wr_addr_gen产生的写地址和在写使能(wr_en)为高电平的时候,将输入数据(data_in[7:0]) 在时钟上升沿到来的时候,写入wr_addr[3:0]地址对应的单元。如果FIFO未空(~empty)且有读使能(rd_en)有效,则rd_addr[3:0]加1;原创 2023-01-31 21:39:56 · 781 阅读 · 0 评论 -
基于FPGA的啸叫检测与抑制系统设计与实现verilog
在FPGA中使用硬件电路实现FFT算法,运算速度快,效率高,且Altera公司有成熟的FFT IP核,开发周期短,但硬件FFT需要较多的Memory单元存储旋转因子和临时数据以及必要的加法器和乘法器,占用较多的逻辑资源,本系统中所使用的FPGA内部资源并不丰裕,故采用第二种方案。for(n=l-1;n=n+la) //遍历每个分组,分组总数为N/la。----计算分解的级数M=log2(N)--------按照倒位序重新排列原信号--------FFT算法--------碟形运算----原创 2023-01-30 21:46:08 · 2559 阅读 · 0 评论 -
verilog实现计算器设计
该实验为用verilog编写的一个运算系统,其功能是实现4位整数的加、减、乘、除运算。运算时通过矩阵键盘输入运算类型和运算所需要的数据,然后通过内部电路处理,将计算的结果送于数码管或LCD1602显示。本设计分为两个子模块,按键输入和数码管输出。还有LCD1602控制器设计。原创 2023-01-24 21:09:36 · 2951 阅读 · 0 评论 -
H7068 DIGITAL SYSTEMS AND MICROPROCESSOR DESIGN: COURSEWORK 2022 verilog-仿真
内容:给cpubank写testbench:beginclk原创 2022-12-24 10:52:21 · 445 阅读 · 1 评论 -
块交织器5×5 verilog设计及仿真实现
块交织器 verilog设计及仿真原创 2022-12-12 16:55:14 · 1063 阅读 · 0 评论 -
verilog实现电子投票箱设计
本文用verilog描述了一个完整的电子投票箱,有一个正确、确认的按钮和一个回车(称为有效)。该代码允许轻松地改变候选人,允许根据需要放置尽可能多的候选人和/或改变其数量。我们创建了:一个作为投票箱处理器的模块,一个生成BCD显示信息的模块,几个串联的BCD计数器,一个用于七段数码管显示的BCD变压器和一个用于生成有效投票信息的解复用器。我们还创建了一个用于波浪模拟的时钟模块和一个时钟减速器,以适应任何技术的选票。在DE2-115上实现。原创 2022-10-05 19:29:52 · 793 阅读 · 0 评论 -
基于FPGA的通信信号源设计
verilog实现基于FPGA的通信信号源设计要求:能够发射正弦波对发出的正弦波进行2ask,2fsk,2psk,2dpsk调制调制时用到PN序列(伪随机序列)步骤:第一步:产生两个频率不同的载波信号第二步:编写2ask,2fsk,2psk,2dpsk模块第三步:编写伪随机序列产生模块第四步:将所有模块连接起来仿真波形:/版权声明********----------------------------文件信息--------------------------** 文件名称: DDS.原创 2022-10-01 12:29:45 · 967 阅读 · 0 评论 -
基于FPGA的数字滤波器fir
FIR20阶滤波器的采样频率为100K,截至频率为20K,通过Matlab软件导出需要的滤波器系数: -0.0000、-0.0021、-0.0063、-0.0116、-0.0124、0.0000、0.0318、0.0814、0.1375、0.1821 0.1992、0.1821、0.1375、0.0814、0.0318、0.0000、-0.0124、-0.0116、-0.0063、-0.0021、-0.0000。.fir_data_20(fir_data_20)//21滤波之后的信号。原创 2022-09-28 18:45:33 · 858 阅读 · 0 评论 -
基于FPGA的频率计与串口通信
使用verilog实现频率计和UART串口通信。原创 2022-09-14 21:19:26 · 433 阅读 · 0 评论 -
基于FPGA的会议发言限时器
暂停与继续功能,采用一个按键完成,当按下该按键时计时暂停,再按下时继续计时,以此循环。计时范围为0~99分,采用4位数码管显示,即显示00分00秒……该蜂鸣器报警模块根据计时的结果进行判断,当计时到89分00秒时,蜂鸣短音提示响起,当计时到99分00秒时蜂鸣器长音提示响起。LED显示模块要根据开始按键信号、暂停与继续按键信号、计时结束信号进行判断,当开始按键信号有效时,led亮;功能设计:根据基本要求,将该设计方案分为四个模块:计时与显示模块、暂停与继续按键功能模块、蜂鸣器报警模块、LED显示模块。原创 2022-09-06 21:21:50 · 675 阅读 · 0 评论 -
verilog实现AM调制及仿真验证
(2)调制信号为单频正弦波信号,频率范围:1kHz-10kHz,分辨率0.01kHz;(1)载波信号频率范围:1M-10MHz,分辨率0.01MHz;(3)调制深度0-1.0,步进0.1,精度优于5%;verilog实现AM调制及仿真验证。原创 2022-08-21 21:49:22 · 401 阅读 · 0 评论 -
基于FPGA的fir滤波器设计verilog实现
设计的滤波器的采样频率为100K,截至频率为20K。通过一个DDS产生两个正弦波,一个为1K的正弦波幅值较大,另一个为21K的正弦波幅值较小,然后将幅值较小的正弦波叠加到幅值较大的正弦波上。这样就产生含有高次谐波的正弦波,最后就是将该正弦波(其实都已经失真了)送往两个FIR滤波器中进行处理。FIR8阶滤波器的采样频率为100K,截至频率为20K,通过Matlab软件导出需要的滤波器系数:0.009、0.048、0.164、0.279、0.279、0.164、0.048、0.009。因为该滤波器为线性相位原创 2022-08-05 20:56:26 · 725 阅读 · 0 评论 -
基于FPGA的DDS任意波形输出
*----------------------------文件信息--------------------------波形中的每个采样点对应相位圆上的一个相位点。**---------------------------修改文件的相关信息----------------在程序中,采样时钟是50M,N相位累加器的位宽是32,M频率控制字的位宽是16位;相位累加器的值作为ROM的地址,读取ROM的相位幅度,实现相位到幅度的转换。•不仅可以产生不同频率的正弦波,而且可以控制波形的初始相位。......原创 2022-07-28 19:32:17 · 1315 阅读 · 0 评论 -
基于FPGA的64位8级流水线加法器
64位8级流水线加法器,即是将64位拆成8个8位进行运算,最后将8个8位运算的结果相加得出最后的和和进位位。第1个时钟周期计算第1个8位的和,并加上前一个的进位位。缓存前面得到的和、未进行计算的加数。第2个时钟周期计算第2个8位的和,并加上前一个的进位位。第3个时钟周期计算第3个8位的和,并加上前一个的进位位。第4个时钟周期计算第4个8位的和,并加上前一个的进位位。第5个时钟周期计算第5个8位的和,并加上前一个的进位位。第8个时钟周期计算第8个8位的和,并加上前一个的进位位。.........原创 2022-07-27 20:00:45 · 1110 阅读 · 0 评论 -
数字示波器verilog设计实现
设计硬件的设计硬件的数字部分是通过配置板载的FPGA来实现的。实现设计硬件的数字部分,通过配置板载FPGA和专有的XilinxVerilog编译器。1Mhz的采样率是通过利用板载的凌力尔特公司的通过利用板载的LinearTechnology®LTC1407A-114位双通道A/D转换器。下载并安装XilinxISE/vivado(http//www.xilinx.com/products/design-tools/ise-design-suite.html)...原创 2022-07-20 20:33:55 · 1059 阅读 · 0 评论