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

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

3天内不再提示

剖析流水线技术原理和Verilog HDL实现

电子工程师 来源:博客园 作者:我心狂野 2021-05-27 16:57 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

所谓流水线处理,如同生产装配线一样,将操作执行工作量分成若干个时间上均衡的操作段,从流水线的起点连续地输入,流水线的各操作段以重叠方式执行。这使得操作执行速度只与流水线输入的速度有关,而与处理所需的时间无关。这样,在理想的流水操作状态下,其运行效率很高。

如果某个设计的处理流程分为若干步骤,而且整个数据处理是单流向的,即没有反馈或者迭代运算,前一个步骤的输出是下一个步骤的输入,则可以采用流水线设计方法来提高系统的工作频率。

下面用8位全加器作为实例,分别列举了非流水线方法、2级流水线方法和4级流水线方法。

(1)非流水线实现方式

module adder_8bits(din_1, clk, cin, dout, din_2, cout);

input [7:0] din_1;

input clk;

input cin;

output [7:0] dout;

input [7:0] din_2;

output cout;

reg [7:0] dout;

reg cout;

always @(posedge clk) begin

{cout,dout} 《= din_1 + din_2 + cin;

end

endmodule

(2)2级流水线实现方式:

module adder_4bits_2steps(cin_a, cin_b, cin, clk, cout, sum);

input [7:0] cin_a;

input [7:0] cin_b;

input cin;

input clk;

output cout;

output [7:0] sum;

reg cout;

reg cout_temp;

reg [7:0] sum;

reg [3:0] sum_temp;

always @(posedge clk) begin

{cout_temp,sum_temp} = cin_a[3:0] + cin_b[3:0] + cin;

end

always @(posedge clk) begin

{cout,sum} = {{1‘b0,cin_a[7:4]} + {1’b0,cin_b[7:4]} + cout_temp, sum_temp};

end

endmodule

注意:这里在always块内只能用阻塞赋值方式,否则会出现逻辑上的错误!

(3)4级流水线实现方式:

module adder_8bits_4steps(cin_a, cin_b, c_in, clk, c_out, sum_out);

input [7:0] cin_a;

input [7:0] cin_b;

input c_in;

input clk;

output c_out;

output [7:0] sum_out;

reg c_out;

reg c_out_t1, c_out_t2, c_out_t3;

reg [7:0] sum_out;

reg [1:0] sum_out_t1;

reg [3:0] sum_out_t2;

reg [5:0] sum_out_t3;

always @(posedge clk) begin

{c_out_t1, sum_out_t1} = {1‘b0, cin_a[1:0]} + {1’b0, cin_b[1:0]} + c_in;

end

always @(posedge clk) begin

{c_out_t2, sum_out_t2} = {{1‘b0, cin_a[3:2]} + {1’b0, cin_b[3:2]} + c_out_t1, sum_out_t1};

end

always @(posedge clk) begin

{c_out_t3, sum_out_t3} = {{1‘b0, cin_a[5:4]} + {1’b0, cin_b[5:4]} + c_out_t2, sum_out_t2};

end

always @(posedge clk) begin

{c_out, sum_out} = {{1‘b0, cin_a[7:6]} + {1’b0, cin_b[7:6]} + c_out_t3, sum_out_t3};

end

endmodule

总结:

利用流水线的设计方法,可大大提高系统的工作速度。这种方法可广泛运用于各种设计,特别是大型的、对速度要求较高的系统设计。虽然采用流水线会增大资源的使用,但是它可降低寄存器间的传播延时,保证系统维持高的系统时钟速度。在实际应用中,考虑到资源的使用和速度的要求,可以根据实际情况来选择流水线的级数以满足设计需要。

这是一种典型的以面积换速度的设计方法。这里的“面积”主要是指设计所占用的FPGA逻辑资源数目,即利用所消耗的触发器(FF)和查找表(LUT)来衡量。“速度”是指在芯片上稳定运行时所能达到的最高频率。面积和速度这两个指标始终贯穿着FPGA的设计,是设计质量评价的最终标准。

编辑:jq

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

    关注

    1664

    文章

    22508

    浏览量

    639450
  • 数据
    +关注

    关注

    8

    文章

    7349

    浏览量

    95046
  • 触发器
    +关注

    关注

    14

    文章

    2065

    浏览量

    63569
  • LUT
    LUT
    +关注

    关注

    0

    文章

    52

    浏览量

    13205

原文标题:FPGA流水线设计

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    软通动力ASDM AI优先软件研发流水线助力软件工程发展

    在 AI 深度融入软件工程的当下,软通动力 ASDM(AI 优先的系统化研发方法和平台)打造的AI 优先的软件研发流水线,成为企业研发效能跃升的核心落地载体,彻底打破传统 “人主导、AI 辅助
    的头像 发表于 02-27 11:21 667次阅读
    软通动力ASDM AI优先软件研发<b class='flag-5'>流水线</b>助力软件工程发展

    智造中枢:疆鸿智能DEVICENET转MODBUS RTU网关在食品包装流水线的融合之舞

     智造中枢:疆鸿智能DEVICENET转MODBUS RTU网关在食品包装流水线的融合之舞 在现代化食品加工包装流水线中,自动化系统的神经脉络需要畅通无阻地连接每一个环节。欧姆龙PLC作为核心控制器
    的头像 发表于 01-29 14:16 220次阅读
    智造中枢:疆鸿智能DEVICENET转MODBUS RTU网关在食品包装<b class='flag-5'>流水线</b>的融合之舞

    流水线基本结构

    3级流水线(Cortex-M0) 分为以下三个阶段: 取指(Fetch):从存储器中读取指令。 解码(Decode):解析指令的操作类型和操作数。 执行(Execute):执行指令(如算术运算、内存
    发表于 11-21 07:35

    如何更好地选择工业流水线上用的条码扫码器?

    在工业生产与物流分拣的自动化浪潮中,条码扫码器已成为流水线高效运转的“眼睛”。无论是精密零部件的追溯管理,还是仓储货物的快速核验,一款适配的工业扫码器都能显著降低人工误差、提升生产效率。但面对市场上
    的头像 发表于 11-05 15:49 514次阅读
    如何更好地选择工业<b class='flag-5'>流水线</b>上用的条码扫码器?

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

    本篇将详细介绍如何利用Verilog HDL在FPGA上实现SRAM的读写测试。SRAM是一种非易失性存储器,具有高速读取和写入的特点。在FPGA中实现SRAM读写测试,包括设计SRA
    的头像 发表于 10-22 17:21 4588次阅读
    如何利用<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>在FPGA上<b class='flag-5'>实现</b>SRAM的读写测试

    创想智控焊缝跟踪传感器适配专机 实现煤气罐焊接流水线智能升级

    随着制造企业对自动化、智能化要求不断提升,压力容器行业也面临智能化方向的转型。针对煤气罐焊接中存在的焊缝定位难、人工操作不稳定等问题,创想智控推出自主研发的激光焊缝跟踪传感器,实现煤气罐焊接流水线
    的头像 发表于 08-08 17:54 898次阅读

    流水线输送带数据采集物联网解决方案

    在自动化流水线的输送带中,速度是一个十分重要的变量。速度闭环控制系统是由速度传感器、控制器、驱动器和电机组成。速度传感器检测电机轴实际速度,并转换为电信号传至控制器PLC;随后PLC通常也采用PID
    的头像 发表于 08-07 13:31 626次阅读
    <b class='flag-5'>流水线</b>输送带数据采集物联网解决方案

    激光振镜运动控制器在流水线激光打标上的应用

    正运动流水线激光打标解决方案
    的头像 发表于 08-05 11:26 1152次阅读
    激光振镜运动控制器在<b class='flag-5'>流水线</b>激光打标上的应用

    【「DeepSeek 核心技术揭秘」阅读体验】第三章:探索 DeepSeek - V3 技术架构的奥秘

    存在资源利用率不高的问题,但它是基础探索,让 我看到将模型分段处理以实现流水线作业的初步尝试。 而 GPipe 方法的改进,通过微批次处理减少并行气泡,如同给流水线 “疏通血管”,让计算设备的闲置
    发表于 07-20 15:07

    流水线扫码升级选NVF230!工业二维码读码器方案实测

    在现代流水线生产中,给每件产品贴上独特的“电子身份证”——DPM条码,再用工业二维码读码器实时追踪定位,早已是保障高效运转的关键操作。但轮到饮料行业,给瓶身或瓶盖上的DPM条码“打卡”,却成了让不少
    的头像 发表于 07-17 15:09 688次阅读
    <b class='flag-5'>流水线</b>扫码升级选NVF230!工业二维码读码器方案实测

    自动化开装封码流水线数据采集解决方案

    运行数据的实时采集与深度分析成为企业优化生产、降本增效的关键。 现场流水线上包括开箱机、装箱机、封箱机、贴标机、码垛机等设备,已接入PLC实现自动化控制,产品从开箱、装填、封箱再到贴标、码垛,生产效率得到大
    的头像 发表于 06-27 15:56 954次阅读
    自动化开装封码<b class='flag-5'>流水线</b>数据采集解决方案

    面包成型流水线数据采集远程监控系统

    该食品加工企业主要从事多种口味的面包生产及销售,拥有一整条完整的面包成型流水线,能够自动进行面块切割、整平折叠、多次擀薄、冷库发酵、包油加馅、排盘等工序,各个变频器和伺服通过PLC进行集中控制,要求实现
    的头像 发表于 06-16 17:11 906次阅读
    面包成型<b class='flag-5'>流水线</b>数据采集远程监控系统

    远程io模块在汽车流水线的应用

    在汽车制造领域,生产流水线的高效、稳定运行是保障产品质量与生产效率的关键。随着工业 4.0 和智能制造理念的深入,汽车生产企业对流水线自动化控制提出了更高要求,不仅要实现设备间的精准协同作业,还需
    的头像 发表于 06-11 15:26 806次阅读

    工业4.0时代,为什么你的流水线必须配备固定式扫码器?

    在工业4.0时代,制造业正朝着智能化、自动化的方向飞速发展。在这一进程中,流水线作为生产的关键环节,配备固定式扫码器已成为提升生产效率、保证产品质量和实现智能化管理的必然选择。固定式扫码器能极大
    的头像 发表于 06-09 16:12 708次阅读
    工业4.0时代,为什么你的<b class='flag-5'>流水线</b>必须配备固定式扫码器?

    工业流水线上用的条码扫码器,如何选择与使用?

    在现代工业自动化生产中,条码扫码器(又称工业读码器)作为数据采集的关键设备,广泛应用于流水线上,有效提升了生产效率并减少了人为错误。然而,面对市场上种类繁多、功能各异的条码扫码器,如何正确选择并
    的头像 发表于 05-14 15:18 1046次阅读
    工业<b class='flag-5'>流水线</b>上用的条码扫码器,如何选择与使用?