SystemVerilog/Verilog的testbench中文件的写入和读取操作

在Testbench中很可能需要文件的读写操作,在可综合的设计中也可能会用到文件写入。SystemVerilog/Verilog提供的文件写入读取方法并不多,主要有两类。

第一类是writememb/writememh/readmemb/readmemh,第二类是$fscanf/$fwrite。第一类用法简单,但是功能弱,文件读取也不支持多维数组;第二类用法复杂一点,功能相对强大,配合循环语句可以处理多维数组。

1. writemem[b|h]/readmem[b|h]

writemem[b|h]主要有以下用法:

(1)$readmemb("<数据文件名>",<存储器名>);

(2)$readmemb("<数据文件名>",<存储器名>,<起始地址>);

(3)$readmemb("<数据文件名>",<存储器名>,<起始地址>,<终止地址>);

其中起始地址和终止地址都是相对于“存储器名”指定的数据而言,而不是指写入文件时的位置。参考以下代码。

parameter WIDTH         = 8;
parameter INDEX0        = 16;
parameter FILE_PATH_B   = "E:/FPGA/PRACTICE/FileReadWrite/files/file_b.txt";
parameter FILE_PATH_H   = "E:/FPGA/PRACTICE/FileReadWrite/files/file_h.txt";
parameter FILE_PATH_F   = "E:/FPGA/PRACTICE/FileReadWrite/files/file_f.txt";
parameter FILE_PATH_HALF= "E:/FPGA/PRACTICE/FileReadWrite/files/file_half.txt";

reg     [WIDTH-1: 0]    dat0[INDEX0-1: 0], dat1[INDEX0-1: 0];
wire    [WIDTH-1: 0]    dat1_comp[INDEX0-1: 0];
reg     [WIDTH-1: 0]    dat0_read[INDEX0-1: 0];
integer i, j;
integer fid;

initial begin
    for( i=0; i

$writememb( FILE_PATH_B, dat0, 0 )将以二进制的格式写入数据,如下图所示。每个数据占据一行。注意,使用writememb写入的文件也要通过readmemb读出,否则数据可能是错误的

SystemVerilog/Verilog的testbench中文件的写入和读取操作_第1张图片

$writememb( FILE_PATH_B, dat0, 0 )将以二进制的格式写入数据。

$writememh( FILE_PATH_HALF, dat0, INDEX0/2 )将从dat0[8]开始按照十六进制写入数据,如下图所示。

SystemVerilog/Verilog的testbench中文件的写入和读取操作_第2张图片

$readmemb和$reamdmemh可以从文件中读取数据,其用法如下。

(1)$readmem[b|h]("<数据文件名>",<存储器名>);

(2)$readmem[b|h]("<数据文件名>",<存储器名>,<起始地址>);

(3)$readmem[b|h]("<数据文件名>",<存储器名>,<起始地址>,<终止地址>);

其中起始地址是指从数据文件中读取的数据将从“存储器名”的指定地址开始填充,参考上文程序中的以下语句。

$readmemh( FILE_PATH_H, dat0_read, INDEX0/2 );

for( i=0; i

从FILE_PATH_H中读取的数据将从dat0_read的地址INDEX0/2的位置开始填充,而dat0_read中未初始化且未填充的数据为“x”,如下图所示。

注意,readmem[b|h]是将数据放在存储器中,所以dat0_read应该定义为reg型,而不是wire

此外,readmem[b|h]是不能填充二维数据的。比如reg [M:N] dat[X:Y]是可以使用readmem[b|h]填充的,而reg [M:N] dat[X:Y] [A:B]是不可以用作readmem[b|h]的操作对象的。

2. $fwrite和$fscanf

2.1 基本用法

这两个系统函数的功能更强大,参考以下代码。

initial begin
    for( i=0; imiidump111.(7969)--PHYstat
  • verilog 从入门到看得懂---verilog 的基本语法数据和运算 DKZ001 fpga开发
    笔者之前主要是使用c语言和matab进行编程,从2024年年初开始接触verilog,通过了一周的学习,基本上对verilog的语法有了基本认知。总统来说,verilog的语法还是很简单的,主要难点是verilog是并行运行,并且强烈和硬件实际电路相关,在设计到的时候需要考虑时序问题和可综合问题。时序问题:因为verilog是基于硬件实现,在实现的时候要考虑到硬件电路的建立时间和稳定时间,所以会遇
  • 【vivado】fpga时钟信号引入 刘小适 日拱一卒XilinxSoCFPGAfpga开发
    FPGA的时钟信号一般由板上晶振经由时钟引脚引入,有时由于工程需要也会从pin脚引入其他外部时钟,这时为了该时钟能够正常工作,满足xilinxfpga的外部时钟引入规则。一、从专用的MRCC/SRCC时钟引脚引入对于XilinxFPGA来说必须使用片上的MRCC或者SRCC引脚来把外部时钟信号引入FPGA、添加相关的时钟约束,然后再在FPGA上使用这些引入的时钟。二、从其他IO引入外部时钟如果设计
  • Verilog语法-参数(parameter,localparam) 刘小适 Verilog设计硬件架构fpga开发
    一、参数的用途Veilog中参数的关键词为parameter、localparam,它们在verilog模块的主要用途有两个:第一是便于阅读;第二是便于进行模块的修改。便于阅读很好理解,将代码中常用的数值参数化,用对应的逻辑含义来进行参数命名,这样变提高了代码的逻辑可读性。便于修改主要是两个方面,一方面是在要对代码中多处重复出现的同一值进行修改时,容易出现漏改错改的现象,使用参数后,便只用修改参数
  • verilog中,何时用reg和wire 四臂西瓜 其他fpga开发FPGA
    何时用?组合逻辑用wire,时序逻辑用reg。reg可以存储数据,wire则就是一根线,只能传递数据。比如?时序逻辑always@(posedgeclkornegedgerst_n)begin//bigrivergoestotheeastendinitialbegin//AllthestartfollowsBeidouend组合逻辑assignhey=hey;//Bagayalualways@(*
  • FPGA常用通信协议 —UART(二)---UART接收 毛豆仙人 fpga开发
    一、信号说明因为是接收端,所以输入的是RX,发送端一次发8位串行数据,在本模块中,要接收这8位数据并转换为并行数据,因为最终要实现数据的回环,这8位并行数据会在下一个模块中被转换为串行数据再发出去,需要一个数据有效信号,当它拉高时表示八位数据接收完成,可以进行并串转换并发送了。时钟采用50Mhz,下面是信号列表reg1,reg2,reg3rx打拍后的信号work_en拉高表示正在接收信号bote_
  • FPGA-AXI4总线介绍 北纬二六 AXI协议学习fpga开发
    下一节:AXI接口时序解读AXI总线概述Xilinx软件官方axi协议有以下三种:AXI4:是面向高性能传输且带有存储地址映射的,最大允许256次数据突发传输。AXI4-Lite:轻量级的地址映射传输。AXI4-Stream:无地址映射,允许无限制数据突发传输。AXI4总线关键信号解释1.写地址通道信号(代表写地址控制信号等)AWID:写地址IDAWADDR:写地址,一次突发传输的起始地址AWLE
  • FPGA_AXI4总线 neufeifatonju FPGAAXI4
    转至https://blog.csdn.net/yake827/article/details/41485005(一)AXI总线是什么?AXI是ARM1996年提出的微控制器总线家族AMBA中的一部分。AXI的第一个版本出现在AMBA3.0,发布于2003年。当前的最新的版本发布于2010年。AXI4:主要面向高性能地址映射通信的需求;AXI4-Lite:是一个简单地吞吐量地址映射性通信总线;AX
  • 如何成为fpga工程师 宸极FPGA_IC fpga开发fpga硬件工程嵌入式硬件
    FPGA的应用领域非常的广,尤其再人工智能,大数据,云计算等等方向非常吃香。加上国家这两年的政策支持,整个芯片行业相比较其他的传统行业来说会好很多,总之前景是光明的,道路是曲折的,想要在人才密集度高且资金密集度高的行业生存,我们要多关注自身能力的提高,以适应行业的不断变化!最近有很多人在问小编要如何学习FPGA,今天闲暇无事就来码字聊聊,欢迎有不同看法的知友一起留言讨论。如何成为一名FPGA工程师
  • 【EDA概述】 Winner1300 EDAfpga开发
    文章目录前言一、EAD技术的发展二、FPGA和CPLD有什么区别三、FPGA应用?四、FPGA技术开发与单片机技术开发发展前景五、FPGA技术开发和单片机技术开发各自的薪资水平如何六、如何学习FPGA总结前言提示:这里可以添加本文要记录的大概内容:EDA技术提示:以下是本篇文章正文内容,下面案例可供参考一、EAD技术的发展EDA技术的发展主要经历了以下四个阶段:雏形时期:20世纪60年代中期到70
  • System Verilog学习笔记(十二)——数组(2) 颖子爱学习 SystemVerilog学习笔记学习笔记
    SystemVerilog学习笔记(十二)——数组(2)动态数组在编译时不会为其定制尺寸,而是在仿真运行时来确定动态数组一开始为空,需要使用new[]来为其分配空间声明方式intdyn[],d2[];//声明了两个动态数组initialbegindyn=new[5];//包含5个元素foreach(dyn[j])dyn[j]=j;//初始化元素d2=dyn;//拷贝数组dyn.delete();/
  • #FPGA(基础知识) GrassFishStudio fpga开发
    1.IDE:QuartusII2.设备:CycloneIIEP2C8Q208C8N3.实验:正点原子-verilog基础知识4.时序图:5.步骤6.代码:
  • xilinx FPGA 除法器IP核(divider)的使用 vivado 2019.1 小 阿 飞 fpga开发
    参考:xilinxFPGA除法器ip核(divider)的使用(VHDL&Vivado)_vivado除法器_坚持每天写程序的博客-CSDN博客一、创建除法IPvivado的除法器ip核有三种类型,跟ISE相比多了一个LuMult类型,总结来说就是LuMult:使用了DSP切片、块RAM和少量的FPGA逻辑原语(寄存器和lut),所以和Radix2相比占用fpga资源更少;可以选择有符号或者无符号
  • 除法器 c语言 模拟,用Vivado-HLS实现低latency除法器 小小羊羊羊 除法器c语言模拟
    GeorgeWang–XilinxDSPSpecialist1VivadoHLS简介XilinxVivadoHigh-LevelSynthesis(HLS)工具将C,C++,或者SystemC设计规范,算法转成RegisterTransferLevel(RTL)实现,可综合到XilinxFPGA。将DSP算法快速转到RTLFPGA实现将C至RTL时间缩短4倍基于C语言的验证时间缩短100倍RTL仿
  • xilinx FPGA 乘法器 除法器 开方 IP核的使用(VHDL&ISE) 坚持每天写程序 xilinxfpgaip核使用例程(VHDL)FPGAVHDLISEfpga开发
    目录一、乘法器ip核1.新建工程之后建一个ip核文件:2.配置ip核:3.编写顶层文件或者激励文件:第一种情况:这个是加了ce的第二种情况:这个是加了ce和sclr的第三种情况:这个是不加使能的乘法器的正确使用:第二天的新进展:最高位是1结果之所以出问题,是因为设置的时候我忘了改了,那个输入的类型默认是signed,即有符号位,大家一定要看清楚哟,按照自己需求,看是否设置最高位为有符号位二、除法器
  • 数字信号处理基础----xilinx除法器IP使用 black_pigeon FPGA数字信号处理数字信号处理基础补码
    前言在进行数字信号处理的时候,计算是必不可少的,通常情况下,能够不用乘法器和除法器就不用乘除法器,可以采用移位和加减法的方式来完成计算。但在一些特殊情况下,希望采用乘除法,这时候在FPGA当中就需要专用的IP了。乘除法在FPGA当中实现起来是比较困难的一件事情。若直接在verilog代码中使用了乘法或者除法,其实最终对应到电路中,要么是采用大量的blockram来实现,要么是占用DSP资源。这种情
  • 基于FPGA的I2C接口控制器(包含单字节和多字节读写) 电路_fpga FPGAFPGA基础模块fpga开发
    1、概括  前文对IIC的时序做了详细的讲解,还有不懂的可以获取TI的IIC数据手册查看原理。通过手册需要知道的是IIC读、写数据都是以字节为单位,每次操作后接收方都需要进行应答。主机向从机写入数据后,从机接收数据,需要把总线拉低来告知主机,前面发送的数据已经被接收。主机在读取从机数据后,如果还需要继续读取数据,就要对从机做出应答,否则不应答。  另一个需要注意的是数据在时钟的低电平中间进行赋值,
  • 【FPGA开发】HDMI通信协议解析及FPGA实现 Include everything FPGA开发fpga开发
    本篇文章包含的内容一、HDMI简介1.1HDMI引脚解析1.2HDMI工作原理1.3DVI编码1.4TMDS编码二、并串转换、单端差分转换原语2.1原语简介2.2原语:IO端口组件2.3IOB输入输出缓冲区2.4并转串原语`OSERDESE2`2.4.1`OSERDESE2`工作原理2.4.2`OSERDESE2`级联示意图2.4.3`OSERDESE2`工作时序图2.4.4`OSERDESE2`
  • FPGA时钟资源与设计方法——IO延迟约束(Vivado) CWNULT fpga开发
    目录1I/O延迟约束简介2IO约束指令3输入延迟(InputDelay)4输出延迟(OutputDelay)1I/O延迟约束简介Vivado对整个工程的时序进行分析时,只能分析内部的时序信息,对于外部的时序信息Vivado无法提供,在设计中要精确建模外部时序信息,必须为输入和输出端口提供输入输出延迟信息,而I/O延迟约束就是告知XilinxVivado集成设计环境(IDE)FPGA管脚外部的输入输
  • Xilinx(AMD) 7系列FPGA配置引脚说明 CWNULT 加载配置篇fpga开发
    xilinx7系列FPGA配置引脚下表详细描述了xilinx7系列FPGA所有配置引脚及其功能。PinNameBanktypeDirectionDescriptionCFGBVS0dedicatedIBank0电压选择,当Bank0电压为2.5v/3.3v时该引脚上拉到VCCO_0,如果Bank0工作于1.8V该引脚下拉接地。对于只能工作于1.8V的器件,该引脚不适用。(公用控制引脚)实际设计中:
  • 【FPGA】高云FPGA之数字钟实验->HC595驱动数码管 凉开水白菜 FPGAfpga开发高云
    高云FPGA之IP核的使用1、设计定义2、设计输入2.1数码管译码显示2.274HC595驱动2.3主模块设计3、分析和综合4、功能仿真6.1hex8模块仿真6.2HC595模块5、布局布线6、时序仿真7、IO分配以及配置文件(bit流文件)的生成8、配置(烧录)FPGA9、在线调试1、设计定义通过74HC595芯片点亮8位数码管,通过计时器实现数码管计时显示软件开发环境高云V1.99版本硬件开发
  • vivado DSP Block cckkppll fpga开发
    当对推理进行编码并以DSP块为目标时,建议使用签名算术运算,并且要求预加器结果有一个额外的宽度位,以便可以打包到DSP块中。Pre-AdderDynamicallyConfiguredFollowedbyMultiplierandPost-Adder(Verilog)Filename:dynpreaddmultadd.v//Pre-add/subtractselectwithDynamiccont
  • 嵌入式 系统 开发 - 第一件事 “搭开发环境” FOOLCODE DSP数字信号处理芯片应用FPGA现场可编程门阵列芯片应用fpga开发
    无论是对DSP,FPGA,或其他可编程芯片开发都要“搭开发环境”:懒得写太多字,画个图来扯淡吧!看看实际怎么搞的:)这张照片仅仅是老哥自己的一个DSP开发实际连结的搞法儿啊,上面的图是一个通用说明。公牛对母牛或者母牛对公牛说IloveU,其实目的是搞出来一个“犊子”,为了这个目标,公母牛在被窝里读了很多育犊“经”,就是不真"干",那就是个"完犊子",净”扯犊子“了。真的“干”的那个档口,我“靠”这
  • FPGA时钟资源与设计方法——时钟抖动(jitter)、时钟偏斜(skew)概念讲解 CWNULT fpga开发
    目录1时钟抖动(clockjitter)2时钟偏斜(clockskew)1时钟抖动(clockjitter)时钟抖动(Jitter):时钟抖动指的是时钟周期的不稳定性,即:时钟周期随着时间发生变化。时钟抖动是由于晶振本身稳定性导致的,跟晶振本身的工艺有关,所以在设计中无法避免它能带来的影响,通常只能在设计中留有一定的余量。2时钟偏斜(clockskew)时钟偏斜(skew):时钟偏斜指电路中源时钟
  • VPX信号处理卡设计原理图:9-基于DSP TMS320C6678+FPGA XC7V690T的6U VPX信号处理卡 信号处理 无线电通信 hexiaoyan827 fpga开发VPX信号处理卡信号处理无线电通信领域固态硬盘存储
    一、概述本板卡基于标准6UVPX架构,为通用高性能信号处理平台,系我公司自主研发。板卡采用一片TIDSPTMS320C6678和一片Xilinx公司Virtex7系列的FPGAXC7V690T-2FFG1761I作为主处理器,Xilinx的AritexXC7A200T作为辅助处理器。XC7A200T负责管理板卡的上电时序,时钟配置,系统及模块复位,程序重配等。为您提供了丰富的运算资源。如图1所示:
  • CPU,GPU,ASIC和FPGA简介 audrey-luo 服务器
    计算机处理器是任何计算系统中至关重要的组件。在这个数字时代,了解CPU、GPU、ASIC和FPGA之间的区别对于优化整体性能至关重要。飞速(FS)将深入探讨CPU、GPU、ASIC和FPGA之间的区别,以增强您的技术知识,并决定如何选择合适的处理器。什么是CPU,GPU,ASIC,和FPGACPU、GPU、ASIC和FPGA是四种计算机处理器类型,在任何计算系统中都起着至关重要的作用,并且对整体性
  • DPU技术的进步:赋予未来创新力量 audrey-luo 人工智能网络服务器运维AIGC
    随着云计算和虚拟化技术的发展,网卡在功能和硬件结构方面也经历了四个阶段,即网卡、智能网卡、基于FPGA的DPU和DPUSoC网卡。本文将重点介绍这些不同类型的网络适配器和处理器,在硬件、可编程能力、开发和应用方面的特点。网卡的演进和应用传统的基本网卡,也被称为NIC或网络适配器,在计算机网络中的作用至关重要。它的主要功能是将数据转换为网络设备之间高效传输所需的格式。随着时间的推移,网卡的功能不断扩
  • AI芯片技术架构有哪些?FPGA芯片定义及结构分析 Hack电子 人工智能架构fpga开发
    点击蓝字关注我们关注、星标公众号,精彩内容每日送达来源:网络素材ai芯片技术架构有哪些?AI芯片的技术架构可以根据其设计方式和特点进行分类。以下是几种常见的AI芯片技术架构:GPU(图形处理器)架构:GPU最初是用于图形渲染和游戏处理的,但由于其高度并行的特性,逐渐被应用于深度学习计算。GPU架构采用多个计算单元(CUDA核心)进行并行计算,能够高效地执行浮点运算和矩阵计算。NVIDIA的Tens
  • 手把手教你实现pynq-z2条形码识别 雪天鱼
    我是雪天鱼,一名FPGA爱好者,研究方向是FPGA架构探索和SOC设计。关注公众号【集成电路设计教程】,拉你进“IC设计交流群”。1.前言单单实现一个二维码识别就花了将近一个星期,这篇文章我就详细介绍这段时间走过的坑,代码附在文末,着急需要的小伙伴直接翻到最后即可2.linux配置要想实现本项目,首先解决以下三大要点,也着实浪费了很多时间2.1解决pynq联网pynq联网的教程网上可谓是不少,但是
  • html 周华华 html
    js 1,数组的排列 var arr=[1,4,234,43,52,]; for(var x=0;x<arr.length;x++){    for(var y=x-1;y<arr.length;y++){      if(arr[x]<arr[y]){     &
  • 【Struts2 四】Struts2拦截器 bit1129 struts2拦截器
    Struts2框架是基于拦截器实现的,可以对某个Action进行拦截,然后某些逻辑处理,拦截器相当于AOP里面的环绕通知,即在Action方法的执行之前和之后根据需要添加相应的逻辑。事实上,即使struts.xml没有任何关于拦截器的配置,Struts2也会为我们添加一组默认的拦截器,最常见的是,请求参数自动绑定到Action对应的字段上。   Struts2中自定义拦截器的步骤是:
  • make:cc 命令未找到解决方法 daizj linux命令未知make cc
    安装rz sz程序时,报下面错误:   [root@slave2 src]# make posix cc   -O -DPOSIX -DMD=2 rz.c -o rz make: cc:命令未找到 make: *** [posix] 错误 127   系统:centos 6.6 环境:虚拟机   错误原因:系统未安装gcc,这个是由于在安
  • Oracle之Job应用 周凡杨 oracle job
    最近写服务,服务上线后,需要写一个定时执行的SQL脚本,清理并更新数据库表里的数据,应用到了Oracle 的 Job的相关知识。在此总结一下。   一:查看相关job信息    1、相关视图  dba_jobs  all_jobs  user_jobs  dba_jobs_running 包含正在运行
  • 多线程机制 朱辉辉33 多线程
    转至http://blog.csdn.net/lj70024/archive/2010/04/06/5455790.aspx 程序、进程和线程: 程序是一段静态的代码,它是应用程序执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。线程是比进程更小的单位,一个进程执行过程中可以产生多个线程,每个线程有自身的
  • web报表工具FineReport使用中遇到的常见报错及解决办法(一) 老A不折腾 web报表finereportjava报表报表工具
    FineReport使用中遇到的常见报错及解决办法(一) 这里写点抛砖引玉,希望大家能把自己整理的问题及解决方法晾出来,Mark一下,利人利己。   出现问题先搜一下文档上有没有,再看看度娘有没有,再看看论坛有没有。有报错要看日志。下面简单罗列下常见的问题,大多文档上都有提到的。   1、address pool is full: 含义:地址池满,连接数超过并发数上
  • mysql rpm安装后没有my.cnf 林鹤霄 没有my.cnf
    Linux下用rpm包安装的MySQL是不会安装/etc/my.cnf文件的, 至于为什么没有这个文件而MySQL却也能正常启动和作用,在这儿有两个说法, 第一种说法,my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动, 第二种说法,MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于r
  • Kindle Fire HDX root并安装谷歌服务框架之后仍无法登陆谷歌账号的问题 aigo root
    原文:http://kindlefireforkid.com/how-to-setup-a-google-account-on-amazon-fire-tablet/   Step 4: Run ADB command from your PC   On the PC, you need install Amazon Fire ADB driver and instal
  • javascript 中var提升的典型实例 alxw4616 JavaScript
    // 刚刚在书上看到的一个小问题,很有意思.大家一起思考下吧 myname = 'global'; var fn = function () { console.log(myname); // undefined var myname = 'local'; console.log(myname); // local }; fn() // 上述代码实际上等同于以下代码 m
  • 定时器和获取时间的使用 百合不是茶 时间的转换定时器
    定时器:定时创建任务在游戏设计的时候用的比较多   Timer();定时器 TImerTask();Timer的子类  由 Timer 安排为一次执行或重复执行的任务。       定时器类Timer在java.util包中。使用时,先实例化,然后使用实例的schedule(TimerTask task, long delay)方法,设定
  • JDK1.5 Queue bijian1013 javathreadjava多线程Queue
    JDK1.5 Queue LinkedList: LinkedList不是同步的。如果多个线程同时访问列表,而其中至少一个线程从结构上修改了该列表,则它必须 保持外部同步。(结构修改指添加或删除一个或多个元素的任何操作;仅设置元素的值不是结构修改。)这一般通过对自然封装该列表的对象进行同步操作来完成。如果不存在这样的对象,则应该使用 Collections.synchronizedList 方
  • http认证原理和https bijian1013 httphttps
    一.基础介绍         在URL前加https://前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更加安全。         Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后
  • 【Java范型五】范型继承 bit1129 java
    定义如下一个抽象的范型类,其中定义了两个范型参数,T1,T2   package com.tom.lang.generics; public abstract class SuperGenerics<T1, T2> { private T1 t1; private T2 t2; public abstract void doIt(T
  • 【Nginx六】nginx.conf常用指令(Directive) bit1129 Directive
    1. worker_processes    8; 表示Nginx将启动8个工作者进程,通过ps -ef|grep nginx,会发现有8个Nginx Worker Process在运行   nobody 53879 118449 0 Apr22 ? 00:26:15 nginx: worker process
  • lua 遍历Header头部 ronin47 lua header 遍历 
    local headers = ngx.req.get_headers()   ngx.say("headers begin", "<br/>")   ngx.say("Host : ", he
  • java-32.通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小(两数组的差最小)。 bylijinnan java
    import java.util.Arrays; public class MinSumASumB { /** * Q32.有两个序列a,b,大小都为n,序列元素的值任意整数,无序. * * 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。 * 例如: * int[] a = {100,99,98,1,2,3
  • redis 开窍的石头 redis
    在redis的redis.conf配置文件中找到# requirepass foobared 把它替换成requirepass 12356789 后边的12356789就是你的密码 打开redis客户端输入config get requirepass 返回 redis 127.0.0.1:6379> config get requirepass 1) "require
  • [JAVA图像与图形]现有的GPU架构支持JAVA语言吗? comsci java语言
          无论是opengl还是cuda,都是建立在C语言体系架构基础上的,在未来,图像图形处理业务快速发展,相关领域市场不断扩大的情况下,我们JAVA语言系统怎么从这么庞大,且还在不断扩大的市场上分到一块蛋糕,是值得每个JAVAER认真思考和行动的事情       
  • 安装ubuntu14.04登录后花屏了怎么办 cuiyadll ubuntu
    这个情况,一般属于显卡驱动问题。 可以先尝试安装显卡的官方闭源驱动。 按键盘三个键:CTRL + ALT  +  F1 进入终端,输入用户名和密码登录终端: 安装amd的显卡驱动 sudo  apt-get  install  fglrx 安装nvidia显卡驱动 sudo  ap
  • SSL 与 数字证书 的基本概念和工作原理 darrenzhu 加密ssl证书密钥签名
    SSL 与 数字证书 的基本概念和工作原理 http://www.linuxde.net/2012/03/8301.html SSL握手协议的目的是或最终结果是让客户端和服务器拥有一个共同的密钥,握手协议本身是基于非对称加密机制的,之后就使用共同的密钥基于对称加密机制进行信息交换。 http://www.ibm.com/developerworks/cn/webspher
  • Ubuntu设置ip的步骤 dcj3sjt126com ubuntu
    在单位的一台机器完全装了Ubuntu Server,但回家只能在XP上VM一个,装的时候网卡是DHCP的,用ifconfig查了一下ip是192.168.92.128,可以ping通。 转载不是错: Ubuntu命令行修改网络配置方法 /etc/network/interfaces打开后里面可设置DHCP或手动设置静态ip。前面auto eth0,让网卡开机自动挂载. 1. 以D
  • php包管理工具推荐 dcj3sjt126com PHPComposer
    http://www.phpcomposer.com/   Composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。 中文文档  入门指南  下载  安装包列表 Composer 中国镜像
  • Gson使用四(TypeAdapter) eksliang jsongsonGson自定义转换器gsonTypeAdapter
    转载请出自出处:http://eksliang.iteye.com/blog/2175595 一.概述        Gson的TypeAapter可以理解成自定义序列化和返序列化 二、应用场景举例        例如我们通常去注册时(那些外国网站),会让我们输入firstName,lastName,但是转到我们都
  • JQM控件之Navbar和Tabs gundumw100 htmlxmlcss
    在JQM中使用导航栏Navbar是简单的。 只需要将data-role="navbar"赋给div即可: <div data-role="navbar"> <ul> <li><a href="#" class="ui-btn-active&qu
  • 利用归并排序算法对大文件进行排序 iwindyforest java归并排序大文件分治法Merge sort
      归并排序算法介绍,请参照Wikipeida zh.wikipedia.org/wiki/%E5%BD%92%E5%B9%B6%E6%8E%92%E5%BA%8F 基本思想: 大文件分割成行数相等的两个子文件,递归(归并排序)两个子文件,直到递归到分割成的子文件低于限制行数 低于限制行数的子文件直接排序 两个排序好的子文件归并到父文件 直到最后所有排序好的父文件归并到输入
  • iOS UIWebView URL拦截 啸笑天 UIWebView
    本文译者:candeladiao,原文:URL filtering for UIWebView on the iPhone说明:译者在做app开发时,因为页面的javascript文件比较大导致加载速度很慢,所以想把javascript文件打包在app里,当UIWebView需要加载该脚本时就从app本地读取,但UIWebView并不支持加载本地资源。最后从下文中找到了解决方法,第一次翻译,难免有
  • 索引的碎片整理SQL语句 macroli sql
    SET NOCOUNT ON DECLARE @tablename VARCHAR (128) DECLARE @execstr VARCHAR (255) DECLARE @objectid INT DECLARE @indexid INT DECLARE @frag DECIMAL DECLARE @maxfrag DECIMAL --设置最大允许的碎片数量,超过则对索引进行碎片
  • Angularjs同步操作http请求with $promise qiaolevip 每天进步一点点学习永无止境AngularJS纵观千象
    // Define a factory app.factory('profilePromise', ['$q', 'AccountService', function($q, AccountService) { var deferred = $q.defer(); AccountService.getProfile().then(function(res) {
  • hibernate联合查询问题 sxj19881213 sqlHibernateHQL联合查询
    最近在用hibernate做项目,遇到了联合查询的问题,以及联合查询中的N+1问题。 针对无外键关联的联合查询,我做了HQL和SQL的实验,希望能帮助到大家。(我使用的版本是hibernate3.3.2)   1 几个常识:  (1)hql中的几种join查询,只有在外键关联、并且作了相应配置时才能使用。  (2)hql的默认查询策略,在进行联合查询时,会产
  • struts2.xml wuai struts
    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache