0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何利用Verilog HDL在FPGA上实现SRAM的读写测试

FPGA设计论坛 来源:FPGA设计论坛 2025-10-22 17:21 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本篇将详细介绍如何利用Verilog HDL在FPGA上实现SRAM的读写测试。SRAM是一种非易失性存储器,具有高速读取和写入的特点。在FPGA中实现SRAM读写测试,包括设计SRAM接口模块、建立读写操作、配置地址计数器、模拟数据流、综合与仿真以及下载到FPGA进行硬件测试。通过实践,掌握SRAM在FPGA中的使用和基本读写方法,加深对FPGA工作原理的理解。

58a7f624-ae4e-11f0-8c8f-92fbcf53809c.png

1. SRAM在FPGA中的应用与原理

静态随机存取存储器(SRAM)由于其高速读写能力和简单的接口,在现代FPGA(现场可编程门阵列)设计中扮演了至关重要的角色。本章将深入探讨SRAM在FPGA中的应用原理以及它如何成为存储解决方案中不可或缺的一部分。

SRAM的基本工作原理

SRAM是基于静态存储单元的半导体存储器,每一个存储单元由六个晶体管组成,能够存储一个位的数据。与DRAM(动态随机存取存储器)不同,SRAM不需要周期性的刷新来维持数据。SRAM的这种特性使其能够提供更快的访问速度,这对于FPGA中的高速缓存和存储关键数据非常有用。

SRAM在FPGA中的应用

在FPGA中,SRAM被广泛用于实现内存缓冲、查找表、寄存器文件等组件。由于SRAM的读写速度非常快,FPGA能够借助SRAM进行快速的数据处理和临时存储,这在数据密集型的应用中尤为关键。比如,在数据通信、图像处理、数字信号处理等领域,SRAM的使用可以显著提升性能。

SRAM的优化与考量

尽管SRAM提供了许多优势,但它也存在一些限制,例如成本较高、密度有限。因此,在FPGA设计中集成SRAM时,需要考虑如何最有效地利用这些有限的资源。此外,设计者还需要考虑SRAM的电源管理问题,以及如何结合FPGA的其他资源以优化整个系统的性能。在后续章节中,我们将进一步深入讨论SRAM接口模块的设计和实现细节。

2. Verilog HDL在FPGA设计中的作用

2.1 Verilog HDL的基本概念和语法

2.1.1 Verilog HDL的基本语法规则

在FPGA设计领域,Verilog HDL(硬件描述语言)是一种广泛使用的语言,用于描述、模拟和综合数字逻辑电路。Verilog的基本语法规则包括模块定义、端口声明、数据流、行为语句和任务和函数的使用。

模块是Verilog描述的基本单元,类似于编程语言中的函数或子程序。一个模块定义的语法如下:

modulemodule_name(port_list); // 输入输出声明inputwire[3:0] in1; outputreg[3:0] out1; // 实现部分always@(posedgeclk)begin  out1 <= in1 + 4'b0001;  endendmodule

在上面的例子中,定义了一个简单的模块,其包含了输入端口in1和输出端口out1。always块用于描述在时钟上升沿触发的行为。

2.1.2 Verilog HDL的数据类型和操作符

Verilog提供了丰富多样的数据类型来表示数字信号,其中最基本的包括wire、reg、integer和bit。wire用于表示组合逻辑,而reg通常用于表示时序逻辑或存储值。

wire[7:0]a;// 8位宽的线网reg[7:0]b; // 8位宽的寄存器

Verilog的操作符覆盖了算术、逻辑、关系、位移和还原操作符,这些操作符用于构建表达式和赋值语句。例如,+是算术加法操作符,&&是逻辑与操作符。

wire[7:0] sum;reg[7:0] count;assignsum = a + b;// 线网赋值表示组合逻辑always@(posedgeclk)begin count <= count + 1; // 寄存器赋值表示时序逻辑end

2.2 Verilog HDL在FPGA设计中的应用

2.2.1 Verilog HDL在模块化设计中的作用

模块化设计是FPGA设计的核心理念之一,允许工程师将复杂系统分解为更小、更易管理的组件。Verilog HDL通过模块定义支持这种设计方式。

在模块化设计中,可以创建独立的模块来执行特定的功能,例如计数器、多路选择器和算术运算单元。这些模块随后可以像“黑箱”一样复用在不同的设计中。

moduleadder( inputwire[7:0] a, inputwire[7:0] b, outputwire[8:0] sum ); assignsum = a + b;endmodule

在上面的例子中,adder模块是一个将两个8位数相加的简单算术组件。在其他模块中可以实例化adder,并且只需要知道输入输出接口即可。

2.2.2 Verilog HDL在时序控制中的应用

时序控制是数字逻辑设计的另一个关键方面,特别是对于时钟驱动的FPGA设计。Verilog通过always块和时序控制语句如posedge和negedge提供了强大的时序控制能力。

always@(posedgeclkornegedgereset)beginif(!reset)begin// 异步复位逻辑  q <= 0;  endelsebegin// 同步时序逻辑     q <= d;  endend

在这个例子中,always块描述了一个寄存器的行为,其中posedge clk表示在时钟上升沿触发,negedge reset表示在复位信号的下降沿触发。

通过使用Verilog进行时序控制,设计师可以精确地定义数据在FPGA内部的流动和操作,以及何时触发特定事件,确保设计满足严格的时间要求。

3. SRAM接口模块的设计方法

3.1 SRAM接口模块的结构设计

3.1.1 SRAM接口模块的基本结构

SRAM接口模块是实现FPGA与SRAM之间有效通信的关键组件。该模块的基本结构通常包括数据总线、地址总线、控制信号总线和必要的逻辑电路。数据总线用于传输数据,地址总线用于选择SRAM内部存储位置,控制信号总线则负责协调数据的读写操作。

设计时,首先要确定SRAM接口模块的IO引脚分配,这关系到模块与外部的信号连接是否顺畅。紧接着是确定信号的极性与时序,保证数据和控制信号的正确时序关系,避免读写冲突。最后,设计者需要考虑信号的驱动能力,确保在不同负载下接口模块能可靠工作。

3.1.2 SRAM接口模块的关键信号设计

关键信号主要包括读写使能信号(如OE、WE)、地址信号(A[15:0])、数据信号(DQ[7:0])以及芯片选择信号(CS)。设计这些信号时,必须遵循SRAM的技术手册中给出的时序要求。

例如,读操作信号OE应在地址信号稳定后有效,并持续到数据稳定输出之后,以保证数据的正确读取。写操作信号WE和数据信号DQ则需满足SRAM的写周期要求,确保数据能够被正确写入SRAM存储单元。

3.2 SRAM接口模块的功能实现

3.2.1 SRAM接口模块的数据读取实现

在设计数据读取功能时,需要确保FPGA能够向SRAM发送正确的读取请求,并准确捕获返回的数据。通常,这一过程涉及以下步骤:

将目标地址放置于地址总线上。

激活芯片选择信号CS,确保SRAM处于选中状态。

激活读使能信号OE,开始数据读取过程。

通过数据总线从SRAM中读取数据。

在数据稳定后,关闭读使能信号OE。

代码示例:

modulesram_read(  inputwirecs,     // 芯片选择信号inputwireoe,     // 输出使能信号inputwire[15:0] addr, // 地址信号outputreg[7:0] data  // 数据信号);always@(addroroeorcs)beginif(!cs && oe)begin// 这里添加硬件描述逻辑,以实现在oe和cs信号激活时读取地址addr处的数据// 假设有一个外部模块负责实现与SRAM硬件交互    data = sram_interface.read(addr);  endelsebegin    data =8'bZ; // 设置高阻态,防止数据冲突endendendmodule

3.2.2 SRAM接口模块的数据写入实现

数据写入功能的实现则需要FPGA向SRAM发送有效的写请求,并将数据准确地写入到指定地址。实现这一过程的步骤包括:

将目标地址放置于地址总线上。

激活芯片选择信号CS和写使能信号WE。

将数据放置于数据总线上。

维持写使能信号WE激活状态直到数据写入完成。

代码示例:

modulesram_write(  inputwirecs,     // 芯片选择信号inputwirewe,     // 写使能信号inputwire[15:0] addr, // 地址信号inputwire[7:0] data  // 数据信号);always@(addrordataorweorcs)beginif(!cs && we)begin// 这里添加硬件描述逻辑,以实现在we和cs信号激活时将数据写入地址addr处    sram_interface.write(addr, data);  endendendmodule

3.2.3 SRAM接口模块的读写冲突处理

在设计SRAM接口模块时,需要特别注意读写操作之间的冲突。为了避免冲突,设计者可以设置优先级,例如先处理读请求再处理写请求,或者在读操作期间禁止写操作请求。

此外,可以引入一个状态机来管理读写状态。当读写操作同时发生时,状态机根据预设规则选择执行哪个操作。比如,在FIFO操作中,当读指针和写指针相同时,将不允许写操作,从而避免数据丢失。

状态机示例代码:

modulesram_state_machine(  inputwireclk,  inputwirereset,  inputwireread_request,  inputwirewrite_request,  outputregread_enable,  outputregwrite_enable,  outputregconflict_resolution );localparamIDLE =0,      READ =1,      WRITE =2;reg[1:0] current_state, next_state;always@(posedgeclk)beginif(reset)begin    current_state <= IDLE;    endelsebegin         current_state <= next_state;    endendalways @(*) begincase (current_state)         IDLE: beginif (read_request) begin                 next_state = READ;            endelseif (write_request) begin                 next_state = WRITE;            endelsebegin                 next_state = IDLE;            endend         READ: begin// ...读状态逻辑end         WRITE: begin// ...写状态逻辑enddefault: begin             next_state = IDLE;        endendcaseend// 根据状态机的状态输出信号always @(current_state) begincase (current_state)         READ: begin             read_enable = 1'b1;             write_enable = 1'b0;             conflict_resolution = 1'b0;        end         WRITE: begin             read_enable = 1'b0;             write_enable = 1'b1;             conflict_resolution = 1'b0;        enddefault: begin             read_enable = 1'b0;             write_enable = 1'b0;             conflict_resolution = 1'b0;        endendcaseendendmodule

状态机的设计与实现对于SRAM接口模块的性能和稳定性至关重要。一个良好的状态管理机制,不仅可以提升接口模块的工作效率,还能有效防止数据的损坏和丢失。

4. SRAM的读写操作实施

4.1 SRAM读写操作的理论基础

4.1.1 SRAM读写操作的基本原理

SRAM(Static Random Access Memory)是一种随机存取存储器,它通过静态锁存器来存储数据,与动态RAM(DRAM)相比,SRAM不需要周期性刷新,因而可以更快地进行读写操作。在FPGA中,SRAM的读写操作主要通过控制SRAM接口模块的相关信号来完成,这些信号包括数据线(DQ)、地址线(Address)、片选信号(CS)、写使能信号(WE)、输出使能信号(OE)等。

读操作时,首先片选信号(CS)和输出使能信号(OE)同时被激活,然后通过地址线指定数据存储的位置,数据随即从数据线读出。写操作则需要先激活片选信号(CS)和写使能信号(WE),然后将数据放到数据线上,并通过地址线指定写入的数据位置。

4.1.2 SRAM读写操作的时序分析

SRAM的读写操作需要精确的时序控制以确保数据的正确读写。对于读操作,数据从输出使能信号(OE)激活到数据稳定出现在数据线上存在一定的延迟,称为输出延迟(tOE)。对于写操作,数据必须在写使能信号(WE)激活之前稳定在数据线上,这个时间段称为建立时间(tSU),而数据必须在写使能信号(WE)失效之后保持在数据线上一段时间,称为保持时间(tH)。通过合理配置这些时序参数,可以保证SRAM模块在不同频率下稳定运行。

4.2 SRAM读写操作的实践应用

4.2.1 SRAM读写操作的Verilog实现

为了实现SRAM的读写操作,可以使用Verilog HDL进行硬件描述。以下是一个简单的Verilog代码示例,展示了如何对SRAM进行基本的读写操作:

modulesramReadWrite(  inputwireclk,// 时钟信号inputwirerst,// 复位信号inputwirecs, // 片选信号inputwirewe, // 写使能信号inputwireoe, // 输出使能信号inputwire[15:0] addr,// 地址线inoutwire[7:0] data, // 数据线outputreg[7:0] rdata,// 读出的数据inputwire[7:0] wdata // 写入的数据);// SRAM的读写逻辑实现reg[7:0] memory_array[255:0];// 假设SRAM为256x8位大小always@(posedgeclkorposedgerst)beginif(rst)begin// 复位操作,清空存储器内容for(integeri =0; i < 256; i = i + 1) begin             memory_array[i] <= 8'b0;        endendelseif (cs) beginif (we) begin// 写操作             memory_array[addr] <= wdata;        endelseif (oe) begin// 读操作             rdata <= memory_array[addr];        endendend// bidirectional数据线处理assign data = (cs && !we) ? rdata : 8'bz;endmodule

4.2.2 SRAM读写操作的仿真验证

在进行SRAM的读写操作仿真验证时,需要搭建一个测试平台来模拟外部信号,并检查SRAM读写逻辑是否正确执行。可以使用诸如ModelSim、Vivado等仿真工具来实现。以下是一个简单的测试平台代码,用于验证上述Verilog实现的SRAM读写操作:

moduletb_sramReadWrite;regclk;regrst;regcs;regwe;regoe;reg[15:0] addr;inout[7:0] data;wire[7:0] rdata;reg[7:0] wdata; sramReadWrite uut (  .clk(clk),  .rst(rst),  .cs(cs),  .we(we),  .oe(oe),  .addr(addr),  .data(data),  .rdata(rdata),  .wdata(wdata) );// Clock Generationinitialbegin  clk =0;  forever#5clk = ~clk;// Generate a clock with period 10 unitsend// Test stimulusinitialbegin// Initialize inputs  rst =1; cs =0; we =0; oe =0; addr =0; wdata =0;   #10;  // Deassert reset  rst =0;   #10;  // Perform Write Operation  cs =1; we =1; oe =0; addr =16'h0001; wdata =8'hAA;   #10;   cs =0;   #10;  // Perform Read Operation  cs =1; we =0; oe =1; addr =16'h0001;   #10;  if(rdata !==8'hAA)begin$display("Read failed! Expected %h, but got %h",8'hAA, rdata);  endelsebegin$display("Read operation successful.");  end  #10;   cs =0;  // Finish simulation$finish;endendmodule

在仿真环境中运行上述测试平台,应观察到写入操作后,读操作能正确地从SRAM存储器读取预期的数据。这样的仿真测试对于验证SRAM读写逻辑的有效性至关重要,它保证了在硬件实施前,设计的逻辑可以按预期工作。

5. 地址计数器的配置与使用

地址计数器是FPGA设计中至关重要的组件之一,特别是在SRAM接口模块设计中,它负责生成正确的地址以进行数据的读写操作。本章节将深入探讨地址计数器的基本原理、配置方法,并且介绍在SRAM读写操作中的应用,以及在仿真与调试中如何使用地址计数器。

5.1 地址计数器的基本原理

5.1.1 地址计数器的工作原理

地址计数器的工作原理是产生一系列连续的地址,这些地址用于指向SRAM存储器中的特定位置。在读写操作过程中,计数器按照一定的时序逻辑递增或递减,以定位到下一个或前一个数据存储位置。

地址计数器通常由寄存器、加法器和控制逻辑电路组成。寄存器用于存储当前地址值,加法器根据控制信号来决定地址值的增加或减少,控制逻辑则根据FPGA的时序要求来管理计数器的行为。

5.1.2 地址计数器的配置方法

在FPGA设计中,地址计数器的配置方法主要是通过编写Verilog代码来实现。设计者需要定义计数器的参数,如计数范围、步进值和初始值等。以下是一个简单的地址计数器配置方法示例:

moduleaddress_counter(  inputclk,     // 时钟信号inputreset,    // 复位信号inputenable,   // 使能信号inputdirection,  // 计数方向信号,0为递增,1为递减outputreg[N-1:0] addr// 地址输出,N为地址位宽);parameterN =8;// 地址位宽参数parameterMAX_ADDR = (1<< N) - 1; // 最大地址值always @(posedge clk orposedge reset) beginif (reset) begin// 异步复位地址计数器         addr <= 0;    endelseif (enable) begin// 根据方向信号更新地址if (direction == 0) begin// 递增if (addr == MAX_ADDR) begin                 addr <= 0; // 回到地址开始endelsebegin                 addr <= addr + 1;            endendelsebegin// 递减if (addr == 0) begin                 addr <= MAX_ADDR; // 回到最大地址endelsebegin                 addr <= addr - 1;            endendendendendmodule

在此代码中,地址计数器通过clk信号来同步更新地址,reset信号用于异步复位计数器,enable信号用于启用或禁用计数器的计数行为,direction信号用于决定计数的方向。addr是输出的地址值,N是地址计数器的位宽参数。

5.2 地址计数器的实践应用

5.2.1 地址计数器在SRAM读写中的应用

在SRAM读写操作中,地址计数器提供必要的地址序列来访问数据。通过控制enable和direction信号,可以实现对数据流的连续读取或写入。以下是如何在SRAM读写操作中使用地址计数器的逻辑概述:

初始化地址计数器:在开始读写操作前,确保地址计数器被正确初始化。这通常涉及将地址计数器设置到起始位置,并确保其能够响应时钟信号。

配置读写控制逻辑:根据读写操作的需求配置计数器。例如,如果要顺序读取一系列数据,地址计数器应设置为递增模式。如果要执行快速的双向读写操作,可能需要切换计数方向。

使能计数器:在数据读写周期,通过控制enable信号来允许地址计数器更新其值。

观察和响应输出地址:地址计数器输出的地址将用于SRAM的读写操作。设计者需要确保这些地址正确映射到SRAM的存储位置。

5.2.2 地址计数器的仿真与调试

仿真和调试是确保地址计数器正确工作的关键步骤。通过仿真,可以在没有物理硬件的情况下验证地址计数器的行为。

仿真过程:

测试环境搭建:使用Verilog仿真工具(如ModelSim)搭建测试环境。

编写测试平台:编写一个测试平台(testbench)以生成必要的时钟、复位和控制信号,并监视地址计数器的输出。

执行仿真:运行仿真并观察地址计数器的行为。检查输出地址是否按照预期递增或递减。

结果分析:分析仿真结果,确认地址计数器的输出地址是否与预期一致。

调试过程:

检查代码逻辑:确保always块内的逻辑正确处理了reset、enable和direction信号。

边界条件测试:验证地址计数器在达到最小和最大值时的行为是否符合预期。

时序分析:通过波形图分析信号之间的时间关系是否符合设计要求。

通过这些仿真与调试步骤,可以保证地址计数器在实际硬件中能够正确地进行地址生成,从而支持SRAM的有效读写操作。

6. 数据流的模拟与读写一致性检验

6.1 数据流的模拟方法

6.1.1 数据流的模拟原理

在FPGA开发过程中,模拟数据流是验证SRAM接口模块功能正确性的关键步骤。模拟数据流的目的是在没有实际硬件的情况下,对设计的SRAM接口进行操作,以检查数据是否能够正确地写入和读出。这一过程涉及生成模拟的时钟信号、地址信号和数据信号,然后将它们传递给SRAM接口模块。通过观察输出数据与输入数据是否一致,可以验证SRAM接口模块在逻辑上是否实现了正确的读写功能。

6.1.2 数据流模拟的Verilog实现

在Verilog中,可以使用initial块和always块来生成和管理数据流模拟过程。以下是一个简单的例子,演示了如何使用Verilog代码模拟数据写入和读取过程:

modulesram_simulation;  // SRAM 接口参数定义parameterDATA_WIDTH =8;  parameterADDR_WIDTH =8;  // SRAM 接口信号定义regclk;  reg[DATA_WIDTH-1:0] data_in;  reg[ADDR_WIDTH-1:0] addr;  regwe;  wire[DATA_WIDTH-1:0] data_out;  // 实例化 SRAM 接口模块  sram_interface uut (    .clk(clk),    .data_in(data_in),    .addr(addr),    .we(we),    .data_out(data_out)   );  // 时钟信号生成initialbegin    clk =0;    forever#10clk = ~clk;// 产生周期为20个时间单位的时钟信号end// 模拟写入和读取过程initialbegin// 初始化输入数据和地址    data_in =0;     addr =0;     we =0;    // 写入数据    #20we =1;// 激活写使能    data_in =8'b00001111;     addr =8'b00000000;     #20;// 等待一个时钟周期    data_in =8'b11110000;     addr =8'b00000001;     #20;    // 关闭写使能,进行读取操作    we =0;     #20;// 等待一个时钟周期// 读取并验证数据if(data_out !==8'b00001111)begin$display("Data read mismatch at address 0");    endif(data_out !==8'b11110000)begin$display("Data read mismatch at address 1");    end// 模拟完成$finish;  endendmodule

6.2 读写一致性检验的策略和方法

6.2.1 读写一致性检验的重要性

为了确保SRAM接口模块在FPGA上运行时的稳定性和可靠性,进行读写一致性检验是必不可少的。通过一致性检验,可以确保在写入数据之后再读取时,数据能够被正确地恢复,没有发生任何形式的损坏或数据冲突。特别是在设计中引入新的优化措施或者硬件升级后,这种检验能够帮助开发者及时发现潜在问题。

6.2.2 读写一致性检验的实践操作

在实际操作中,读写一致性检验通常会涉及以下步骤:

初始化SRAM接口模块和相关信号。

执行一系列的写入操作,将不同的数据模式写入到不同的地址中。

完成写入操作后,逐个地址读取数据,并与原始写入的数据进行比较。

检查输出数据是否与预期数据一致,记录所有不一致的情况。

在Verilog代码中,一致性检验可以通过仿真测试来实现,下面是一个简单的代码示例:

// ...(之前的SRAM接口模块和时钟信号生成代码保持不变)initialbegin// 初始化输入数据和地址// ...(初始化代码保持不变)// 执行一致性检验for(inti =0; i < (1<

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1656

    文章

    22288

    浏览量

    630376
  • 存储器
    +关注

    关注

    39

    文章

    7715

    浏览量

    170868
  • sram
    +关注

    关注

    6

    文章

    809

    浏览量

    117226
  • Verilog
    +关注

    关注

    30

    文章

    1370

    浏览量

    114146
  • 晶体管
    +关注

    关注

    78

    文章

    10264

    浏览量

    146326

原文标题:FPGA上SRAM读写测试的Verilog实现与流程

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    FPGA双沿发送之Verilog HDL实现 精选资料推荐

    1.1 FPGA双沿发送之Verilog HDL实现1.1.1 本节目录1)本节目录;2)本节引言;3)FPGA简介;4)
    发表于 07-26 06:20

    FPGA双沿采样之Verilog HDL实现 精选资料分享

    1.1 FPGA双沿采样之Verilog HDL实现1.1.1 本节目录1)本节目录;2)本节引言;3)FPGA简介;4)
    发表于 07-26 07:44

    如何对Verilog HDL的复位激励进行测试

    (70)Verilog HDL测试激励:复位激励21.1 目录1)目录2)FPGA简介3)Verilog
    发表于 02-23 06:29

    Verilog HDL测试激励之时钟激励

    (59)Verilog HDL测试激励:时钟激励11.1 目录1)目录2)FPGA简介3)Verilog
    发表于 02-23 06:57

    基于Verilog HDL语言的FPGA设计

    采用 Verilog HDL 语言Altera 公司的FPGA 芯片实现了RISC_CPU
    发表于 08-21 10:50 69次下载

    Verilog HDL语言FPGA/CPLD开发中的应用

    摘 要:通过设计实例详细介绍了用Verilog HDL语言开发FPGA/CPLD的方法,并通过与其他各种输入方式的比较,显示出使用Verilog H
    发表于 06-20 11:51 2309次阅读
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>语言<b class='flag-5'>在</b><b class='flag-5'>FPGA</b>/CPLD开发中的应用

    Verilog HDL与VHDL及FPGA的比较分析

    Verilog HDL与VHDL及FPGA的比较分析. Verilog HDL优点:类似C语言,上手容易,灵活。大小写敏感。
    发表于 01-11 10:45 1567次阅读

    基于FPGA Verilog-HDL语言的串口设计

    基于FPGA Verilog-HDL语言的串口设计
    发表于 02-16 00:08 35次下载

    通过VerilogSRAM读写程序源代码

    通过VerilogSRAM读写程序源代码
    发表于 06-29 09:26 9次下载

    (70)Verilog HDL测试激励:复位激励2

    (70)Verilog HDL测试激励:复位激励21.1 目录1)目录2)FPGA简介3)Verilog
    发表于 12-29 19:42 2次下载
    (70)<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b><b class='flag-5'>测试</b>激励:复位激励2

    (69)Verilog HDL测试激励:时钟激励2

    (69)Verilog HDL测试激励:时钟激励21.1 目录1)目录2)FPGA简介3)Verilog
    发表于 12-29 19:42 0次下载
    (69)<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b><b class='flag-5'>测试</b>激励:时钟激励2

    (59)Verilog HDL测试激励:时钟激励1

    (59)Verilog HDL测试激励:时钟激励11.1 目录1)目录2)FPGA简介3)Verilog
    发表于 12-29 19:42 1次下载
    (59)<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b><b class='flag-5'>测试</b>激励:时钟激励1

    (77)Verilog HDL测试激励:复位激励3

    (77)Verilog HDL测试激励:复位激励31.1 目录1)目录2)FPGA简介3)Verilog
    发表于 12-29 19:42 1次下载
    (77)<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b><b class='flag-5'>测试</b>激励:复位激励3

    (60)Verilog HDL测试激励:复位激励1

    (60)Verilog HDL测试激励:复位激励11.1 目录1)目录2)FPGA简介3)Verilog
    发表于 12-29 19:42 3次下载
    (60)<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b><b class='flag-5'>测试</b>激励:复位激励1

    (76)Verilog HDL测试激励:时钟激励3

    (76)Verilog HDL测试激励:时钟激励31.1 目录1)目录2)FPGA简介3)Verilog
    发表于 12-29 19:43 2次下载
    (76)<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b><b class='flag-5'>测试</b>激励:时钟激励3