<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[S_Wiper的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/S_Wiper</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; S_Wiper]]></copyright><item><title><![CDATA[求助！如何解决VMWare桥接无线网卡无法上网的问题？]]></title><link>https://blog.youkuaiyun.com/S_Wiper/article/details/151962621</link><guid>https://blog.youkuaiyun.com/S_Wiper/article/details/151962621</guid><author>S_Wiper</author><pubDate>Mon, 22 Sep 2025 14:23:05 +0800</pubDate><description><![CDATA[摘要：用户尝试将VMWare Ubuntu虚拟机桥接到Intel Wi-Fi 6 AX101无线网卡时遇到无法上网问题，表现为无法获取IPv4地址。通过手动配置IP（与主机相同）后解决上网问题，但未解决桥接模式下的核心需求。问题可能涉及DHCP分配异常或网络配置冲突，寻求更优解决方案。（99字）]]></description><category></category></item><item><title><![CDATA[Ubuntu 虚拟机 | DPDK 协议栈开发 | 2、DPDK驱动绑定VMWare模拟网卡 + Testpmd发包测试]]></title><link>https://blog.youkuaiyun.com/S_Wiper/article/details/151754175</link><guid>https://blog.youkuaiyun.com/S_Wiper/article/details/151754175</guid><author>S_Wiper</author><pubDate>Tue, 16 Sep 2025 15:19:56 +0800</pubDate><description><![CDATA[本文介绍了在Ubuntu虚拟机中配置DPDK驱动并绑定VMWare虚拟网卡的过程。通过安装VFIO驱动，将模拟的Intel E1000网卡从内核解绑至DPDK，并使用Testpmd工具进行发包测试。在主机端使用Wireshark成功捕获测试报文，验证了配置的正确性。文章还提到了运行Helloworld程序时出现的PMD轮循模式错误，目前尚未解决。整体展示了DPDK环境搭建、驱动安装和网络测试的完整流程，为后续DPDK协议栈开发奠定了基础。]]></description><category></category></item><item><title><![CDATA[Ubuntu 虚拟机 | DPDK 协议栈开发 | 1、环境搭建 + 虚拟端口测试]]></title><link>https://blog.youkuaiyun.com/S_Wiper/article/details/151715492</link><guid>https://blog.youkuaiyun.com/S_Wiper/article/details/151715492</guid><author>S_Wiper</author><pubDate>Mon, 15 Sep 2025 16:34:58 +0800</pubDate><description><![CDATA[本文介绍了在Ubuntu 24.04系统上部署DPDK 25.07的完整过程。主要内容包括：1）开发环境准备和依赖安装；2）DPDK源码下载、编译和安装；3）大页内存配置；4）通过testpmd工具和net_null虚拟网卡驱动进行数据包转发测试。文章提供了详细的命令步骤和配置说明，并附有官方文档参考链接，实现了一个可复现的DPDK开发环境搭建方案，为后续网络性能测试和开发奠定基础。]]></description><category></category></item><item><title><![CDATA[【亲测】安装Linux双系统的有效参考链接！！！]]></title><link>https://blog.youkuaiyun.com/S_Wiper/article/details/144282752</link><guid>https://blog.youkuaiyun.com/S_Wiper/article/details/144282752</guid><author>S_Wiper</author><pubDate>Fri, 06 Dec 2024 10:08:27 +0800</pubDate><description><![CDATA[网上很多关于双系统安装的帖子，本人亲测了几个有效的帖子，这里摘出来供大家参考。在安装之前，这是因为很多软件/驱动都限制支持的版本，因此一味安装最新版不一定是个好的选择。个人推荐安装ubuntu20.04版本。]]></description><category></category></item><item><title><![CDATA[【Vivado】xdc约束文件编写]]></title><link>https://blog.youkuaiyun.com/S_Wiper/article/details/144231715</link><guid>https://blog.youkuaiyun.com/S_Wiper/article/details/144231715</guid><author>S_Wiper</author><pubDate>Wed, 04 Dec 2024 10:35:47 +0800</pubDate><description><![CDATA[通过Clocking Wizard IP创建的时钟（MMCM或PLL），系统会自动生成约束。从布局布线后的结果来看时序勉强收敛，因此我想不修改MMCM输出时钟频率的同时，手动修改约束，验证一下时序设计裕量。源时钟是200MHz，这里想将输出时钟约束到150MHz，因此通过 -multiply_by 和 -devide_by 组合实现。在优化布局布线后的时序时发现，一些寄存器的扇出数过大。因此尝试通过约束限制特定端口的最大扇出。其中，IPs_match* 表示所有前缀为IPs_match的信号组。]]></description><category></category></item><item><title><![CDATA[【FPGA】BRAM使用细节]]></title><link>https://blog.youkuaiyun.com/S_Wiper/article/details/140451178</link><guid>https://blog.youkuaiyun.com/S_Wiper/article/details/140451178</guid><author>S_Wiper</author><pubDate>Mon, 15 Jul 2024 23:13:06 +0800</pubDate><description><![CDATA[上图是实际综合的结果，其中，DP指真双端口BRAM，SP指单端口BRAM。对于单端口BRAM，18X1024大小只占用0.5块BRAM，而36X512同样占用0.5块BRAM，这实际上是使用一个18Kb的BRAM实现的，其中一半18X512使用其中一组读写端口，另一半18X512使用另一组读写端口。双端口36X512则占用完整的一块BRAM，因为双端口都被占用，因此无法像单端口一样灵活组合。]]></description><category></category></item><item><title><![CDATA[完美解决VMware共享文件夹在Ubuntu中看不到的问题]]></title><link>https://blog.youkuaiyun.com/S_Wiper/article/details/130559917</link><guid>https://blog.youkuaiyun.com/S_Wiper/article/details/130559917</guid><author>S_Wiper</author><pubDate>Mon, 08 May 2023 15:37:49 +0800</pubDate><description><![CDATA[但是每次重启都要手动输入一次指令，非常麻烦，下面设置每次启动自动挂载。简单来讲，rc.local是一个系统启动脚本，会在系统启动时自动运行。把挂载命令添加到rc.local文件中就可以在每次系统启动时自动挂载。但在后来的ubuntu版本中去除了这一功能，自启动服务方面基本由 systemd 全面接管了。但可以通过 /etc/systemd/system/rc-local.service 文件指定rc.local 的启动顺序和行为，从而能够继续使用rc.local作为系统启动脚本。]]></description><category></category></item><item><title><![CDATA[C语言中不同文件的函数如何调用？]]></title><link>https://blog.youkuaiyun.com/S_Wiper/article/details/129139100</link><guid>https://blog.youkuaiyun.com/S_Wiper/article/details/129139100</guid><author>S_Wiper</author><pubDate>Tue, 21 Feb 2023 11:15:08 +0800</pubDate><description><![CDATA[如图，在程序A中定义了函数init_isa()，如果在程序B中想要调用，方法是两个程序同时引用同一个头文件，并在头文件中加入对该函数的声明。这里两个程序同时引用了isa.h，并且在isa.h中加入了函数声明。]]></description><category></category></item><item><title><![CDATA[Makefile编写]]></title><link>https://blog.youkuaiyun.com/S_Wiper/article/details/129135644</link><guid>https://blog.youkuaiyun.com/S_Wiper/article/details/129135644</guid><author>S_Wiper</author><pubDate>Tue, 21 Feb 2023 11:10:51 +0800</pubDate><description><![CDATA[参数中的变量，如$ (1)，$ (2)，$ (3)等，会被参数< param1 >;最常见的应该是：echo $PATH了，表示打印该shell中存在的环境变量。${var_name} 跟 $var_name差不多，但是用 ${ }会比较精确的界定变量名称的范围。你可以写一个非常复杂的表达式，这个表达式中，你可以定义许多参数，然后你可以用call函数来向这个表达式传递参数。在bash中，$( )与``（反引号）都是用来作命令替换的，执行括号或者反引号中的命令, 然后返回结果。]]></description><category></category></item><item><title><![CDATA[【Verilog】组合逻辑一些注意事项]]></title><link>https://blog.youkuaiyun.com/S_Wiper/article/details/128966934</link><guid>https://blog.youkuaiyun.com/S_Wiper/article/details/128966934</guid><author>S_Wiper</author><pubDate>Fri, 10 Feb 2023 11:30:37 +0800</pubDate><description><![CDATA[这段话的意思是：在过程赋值语句中，表达式右侧的计算结果在某种条件的触发下放到一个变量当中，而这个变量可以声明成reg类型的。根据触发条件的不同，过程赋值语句可以建模不同的硬件结构：如果这个条件是时钟的上升沿或下降沿，那么这个硬件模型就是一个触发器；如果这个条件是某一信号的高电平或低电平，那么这个硬件模型就是一个锁存器；如果这个条件是赋值语句右侧任意操作数的变化，那么这个硬件模型就是一个组合逻辑。也就是说，综合出触发器的条件是，需要有时钟的沿触发。]]></description><category></category></item><item><title><![CDATA[【Vivado】生成网表文件]]></title><link>https://blog.youkuaiyun.com/S_Wiper/article/details/128897984</link><guid>https://blog.youkuaiyun.com/S_Wiper/article/details/128897984</guid><author>S_Wiper</author><pubDate>Mon, 06 Feb 2023 13:49:39 +0800</pubDate><description><![CDATA[在vivado中执行综合后即可生成网表文件，简单来说网表文件是对电路设计逻辑结构的描述，如网表由单元（cell）、引脚（pin）、端口（port）和网络（Net）构成。综合之后Open Synthesis Design可以看到这样一个窗口，这就是记录了电路的网表信息。]]></description><category></category></item><item><title><![CDATA[【Verilog】手撕异步FIFO]]></title><link>https://blog.youkuaiyun.com/S_Wiper/article/details/127223819</link><guid>https://blog.youkuaiyun.com/S_Wiper/article/details/127223819</guid><author>S_Wiper</author><pubDate>Sun, 09 Oct 2022 17:15:47 +0800</pubDate><description><![CDATA[在上一篇同步FIFO中已经介绍过，FIFO是一种先进先出的数据缓存器，它与普通存储器的区别是没有读写外部地址，这样使用起来非常简单，但缺点就是只能顺序写入数据。FIFO分为同步FIFO和异步FIFO两种，其中同步FIFO的输入与输出采用相同的时钟，而异步FIFO的读写时钟是互相独立的。]]></description><category></category></item><item><title><![CDATA[【Verilog】手撕同步FIFO]]></title><link>https://blog.youkuaiyun.com/S_Wiper/article/details/127207101</link><guid>https://blog.youkuaiyun.com/S_Wiper/article/details/127207101</guid><author>S_Wiper</author><pubDate>Sun, 09 Oct 2022 11:11:23 +0800</pubDate><description><![CDATA[FIFO是一种先进先出的数据缓存器，一般用在隔离两边读写带宽不一致，或者位宽不一样的地方。在FPGA设计中，使用FIFO一般有两个方法，第一个方法是直接调用官方的FIFO IP，第二个方法是自己设计FIFO控制逻辑。FIFO包括同步FIFO和异步FIFO两种，同步FIFO有一个时钟信号，读和写逻辑全部使用这一个时钟信号；异步FIFO有两个时钟信号，读和写逻辑使用各自的时钟。]]></description><category></category></item><item><title><![CDATA[贪心之小船过河问题]]></title><link>https://blog.youkuaiyun.com/S_Wiper/article/details/73197910</link><guid>https://blog.youkuaiyun.com/S_Wiper/article/details/73197910</guid><author>S_Wiper</author><pubDate>Wed, 14 Jun 2017 07:54:57 +0800</pubDate><description><![CDATA[题目来自南阳理工OJ 过河问题描述在漆黑的夜里，N位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话，大家是无论如何也不敢过桥去的。不幸的是，N个人一共只带了一只手电筒，而桥窄得只够让两个人同时过。如果各自单独过桥的话，N人所需要的时间已知；而如果两人同时过桥，所需要的时间就是走得比较慢的那个人单独行动时所需的时间。问题是，如何设计一个方案，让这N人尽快过桥。输入输出输入 
第一行是一个]]></description><category></category></item><item><title><![CDATA[贪心之多机调度问题]]></title><link>https://blog.youkuaiyun.com/S_Wiper/article/details/73135462</link><guid>https://blog.youkuaiyun.com/S_Wiper/article/details/73135462</guid><author>S_Wiper</author><pubDate>Mon, 12 Jun 2017 19:29:18 +0800</pubDate><description><![CDATA[题目来自洛谷1190



问题描述：

学校里有一个水房，水房里一共装有 m 个龙头可供同学们打开水，每个龙头每秒钟的

供水量相等，均为 1。

现在有 n 名同学准备接水，他们的初始接水顺序已经确定。将这些同学按接水顺序从 1到 n 编号，i 号同学的接水量为 wi。接水开始时，1 到 m 号同学各占一个水龙头，并同时打开水龙头接水。当其中某名同学 j 完成其接水量要求 wj后，下一名排队等]]></description><category></category></item><item><title><![CDATA[贪心之钱币找零问题]]></title><link>https://blog.youkuaiyun.com/S_Wiper/article/details/73124245</link><guid>https://blog.youkuaiyun.com/S_Wiper/article/details/73124245</guid><author>S_Wiper</author><pubDate>Mon, 12 Jun 2017 17:03:34 +0800</pubDate><description><![CDATA[问题描述：假设1元、2元、5元、10元、20元、50元、100元的纸币分别有c0, c1, c2, c3, c4, c5, c6张。现在要用这些钱来支付K元，至少要用多少张纸币？问题分析：用贪心算法的思想，很显然，每一步尽可能用面值大的纸币即可。在日常生活中我们自然而然也是这么做的。在程序中已经事先将Value按照从小到大的顺序排好。]]></description><category></category></item><item><title><![CDATA[贪心之背包问题]]></title><link>https://blog.youkuaiyun.com/S_Wiper/article/details/73104892</link><guid>https://blog.youkuaiyun.com/S_Wiper/article/details/73104892</guid><author>S_Wiper</author><pubDate>Mon, 12 Jun 2017 13:48:40 +0800</pubDate><description><![CDATA[背包问题题目来自南阳理工OJ]]></description><category></category></item><item><title><![CDATA[贪心之活动选择问题]]></title><link>https://blog.youkuaiyun.com/S_Wiper/article/details/73087114</link><guid>https://blog.youkuaiyun.com/S_Wiper/article/details/73087114</guid><author>S_Wiper</author><pubDate>Mon, 12 Jun 2017 07:26:43 +0800</pubDate><description><![CDATA[会场安排问题]]></description><category></category></item><item><title><![CDATA[贪心总论]]></title><link>https://blog.youkuaiyun.com/S_Wiper/article/details/73087110</link><guid>https://blog.youkuaiyun.com/S_Wiper/article/details/73087110</guid><author>S_Wiper</author><pubDate>Mon, 12 Jun 2017 07:15:45 +0800</pubDate><description><![CDATA[贪心算法的定义：贪心算法是指在对问题求解时，总是做出在当前看来是最好的选择。也就是说，不从整体最优上加以考虑，只做出在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解，关键是贪心策略的选择，选择的贪心策略必须具备无后效性，即某个状态以前的过程不会影响以后的状态，只与当前状态有关。解题的一般步骤：1.建立数学模型来描述问题； 
2.把求解的问题分成若干个子问题； 
3.对每一子问题求解]]></description><category></category></item><item><title><![CDATA[分治算法之二分查找]]></title><link>https://blog.youkuaiyun.com/S_Wiper/article/details/72953243</link><guid>https://blog.youkuaiyun.com/S_Wiper/article/details/72953243</guid><author>S_Wiper</author><pubDate>Fri, 09 Jun 2017 08:15:14 +0800</pubDate><description><![CDATA[c++提供一类STL函数来实现对数组中元素的检索，其中较为简单且应用较广的是binary_search,upper_bound和lower_bound,]]></description><category></category></item></channel></rss>