循環移位網絡設計

  1. 總體架構
    1. 模塊描述

循環移位網絡模塊(模塊名:VAL_CS_PROC),對輸入數據(in_data)做循環移位處理,兩個cycle即可輸出數據。

Fig 1 循環移位模塊頂層

      1. 設計要求
  1. 00】 支持對data_num個有效數據做循環移位處理,每個數據位寬為10bit1<=data_num<=384);移位值shift_val滿足0<=shift_val<=data_numshift_val表示循環移位的數據個數(每個數據10bit)。
  2. 01】 輸入和輸出數據位寬為384*10bit,當有效數據個數data_num小于等于192時,輸入數據中包含2data_num個數據,支持同時對2data_num個數據做循環移位處理,且兩組處理相互獨立,可以不同步。
  3. 02】 有效數據個數data_num大于192時,data_num個有效數據放在輸入輸出數據的低位([data_num*10-1 : 0]);有效數據個數data_num小于等于192時,有效數據分別在2組數據的低位([data_num*10-1 : 0][data_num *10+1920-1 : 1920])。
  4. 03】 支持根據輸入指示信號判斷數據左移或是右移。
  5. 04】 移位值、有效數據個數、移位方向以in_vld為隨路有效信號,in_vld1表示參數有效,輸入數據固定在參數下一拍到來。
  6. 05】 支持輸出循環移位后數據以out_vld作為隨路有效信號,out_vld1表示數據有效,data_num大于192時,兩組out_vld同時拉高表示數據有效。
  7. 06】 輸出時,無效位需要全部為零。
      1. 整體架構

Fig 2 循環移位網絡模塊架構框圖

      1. 端口信號

Table 1 端口信號表

端口

方向

位寬/bit

說明

rst_n

輸入

1

復位信號,低有效

clk

輸入

1

輸入時鐘

in_vld_0

輸入

1

第一組輸入參數隨路有效指示

in_vld_1

輸入

1

第二組輸入參數隨路有效指示

data_num_0[8:0]

輸入

9

第一組有效數據個數,in_vld_0=1時有效

data_num_1[8:0]

輸入

9

第二組有效數據個數,in_vld_1=1時有效

val_r_l_ind_0

輸入

1

第一組左移右移指示,為1時表示左移(即向高位移位),為0時表示右移(即向低位移位),in_vld_0=1時有效

val_r_l_ind_1

輸入

1

第二組左移右移指示,為1時表示左移(即向高位移位),為0時表示右移(即向低位移位),in_vld_1=1時有效

shift_value_0[8:0]

輸入

9

第一組循環移位數據個數

shift_value_1 [8:0]

輸入

9

第二組循環移位數據個數

in_data[384*10-1:0]

輸入

3840

輸入數據,in_vld下一拍有效

out_vld_0

輸出

1

第一組輸出數據隨路有效指示,

out_vld_1

輸出

1

第二組輸出數據隨路有效指示

out_data[384*10-1:0]

輸出

3840

輸出數據,out_vld當拍有效

    1. 接口時序
      1. 寄存時序圖

由Fig3可見,框圖中參與移位的輸入信號都是寄存后使用。

Fig 3 寄存時序圖

      1. 輸出時序圖

Fig 4可以得到(in_vld 到 out_vld,含regin/regout)性能為2 cycle。

Fig 4 輸出時序圖

  1. barrel_shifter子模塊詳細設計
    1. barrel_shifter子模塊描述

這個架構實現了高效的對數移位結構,通過多級移位器實現任意位移量,同時保持O(log n)的時間復雜度。參數化設計使其能適應不同數據規模和位寬需求。

  1. 對數移位架構:
  1. 將大位移分解為$clog2(MAX_NUM)級(log?384 ≈ 8.6 → 9級);
  2. 每級處理2的冪次方位移(1, 2, 4...256個數據項);
  3. 每級僅需1MUX選擇器,大幅降低邏輯深度;
  1. 并行處理:
  1. 左移和右移操作獨立并行處理;
  2. 每級內所有數據通道并行計算;
  3. 關鍵路徑:$clog2(MAX_NUM)MUX + 1OR + 1AND(遠遠小于30級邏輯);

Fig 5 barrel_shifter架構圖

  1. 功能仿真

Table 2 功能仿真測試表

測試案例

方案描述

是否通過

TEST1

data_num = 8,數據通道0,左移2

通過

TEST2

data_num = 8,數據通道0,右移2

通過

TEST3

data_num = 8,數據通道1,左移2

通過

TEST4

data_num = 8,數據通道1,右移2

通過

TEST5

data_num = 8,數據通道01同時獨立輸入,通道0:右移3位,通道1:左移2

通過

TEST6

data_num = 200,數據通道1,2約束一致,左移50

通過

TEST7

邊界測試:data_num = 1,數據通道1,左移2

通過

  1. PPA優化

Table 3 180nm工藝庫PPA測試表

類別

Ax(um^2)

數據延遲

最小面積

6083924.000000

2 cycle

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/web/87886.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/87886.shtml
英文地址,請注明出處:http://en.pswp.cn/web/87886.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

IO進程線程(IPC通訊)

目錄 一、IPC通訊機制 1&#xff09;傳統的通訊機制&#xff1a; 2&#xff09;systemV 的通訊機制&#xff1a; 3&#xff09;跨主機的通訊機制&#xff1a; 1、無名管道 1&#xff09;無名管道的概念 2&#xff09;無名管道的函數 3&#xff09;無名管道通訊&#xf…

Webpack 5 核心機制詳解與打包性能優化實踐

&#x1f916; 作者簡介&#xff1a;水煮白菜王&#xff0c;一個web開發工程師 &#x1f47b; &#x1f440; 文章專欄&#xff1a; 前端專欄 &#xff0c;記錄一下平時在博客寫作中&#xff0c;總結出的一些開發技巧和知識歸納總結?。 感謝支持&#x1f495;&#x1f495;&am…

Manus AI與多語言手寫識別

技術文章大綱&#xff1a;Manus AI與多語言手寫識別 引言 手寫識別技術的發展背景與市場需求Manus AI的定位與核心技術優勢多語言場景下的挑戰與機遇 Manus AI的核心技術架構 基于深度學習的端到端手寫識別模型多模態數據融合&#xff08;筆跡壓力、書寫軌跡等&#xff09;…

Go與Python爬蟲對比及模板實現

go語言和Python語言都可選作用來爬蟲項目&#xff0c;因為python經過十幾年的累積&#xff0c;各種庫是應有盡有&#xff0c;學習也相對比較簡單&#xff0c;相比GO起步較晚還是有很大優勢的&#xff0c;么有對比就沒有傷害&#xff0c;所以我利用一個下午&#xff0c;寫個Go爬…

Vidwall: 支持將 4K 視頻設置為動態桌面壁紙,兼容 MP4 和 MOV 格式

支持將 4K 視頻設置為動態桌面壁紙&#xff0c;兼容 MP4 和 MOV 格式。只需將視頻拖入應用界面&#xff0c;點擊即可立即應用為桌面背景。 為桌面增添生動趣味的動態壁紙效果&#xff01;錄制視頻時設置動態背景&#xff0c;也能讓畫面更吸引人。 &#x1f4e5; https://apps.…

【LeetCode 熱題 100】234. 回文鏈表——快慢指針+反轉鏈表

Problem: 234. 回文鏈表 題目&#xff1a;給你一個單鏈表的頭節點 head &#xff0c;請你判斷該鏈表是否為回文鏈表。如果是&#xff0c;返回 true &#xff1b;否則&#xff0c;返回 false 。 文章目錄 整體思路完整代碼時空復雜度時間復雜度&#xff1a;O(N)空間復雜度&#…

【源力覺醒 創作者計劃】開源、易用、強中文:文心一言4.5或是 普通人/非AI程序員 的第一款中文AI?

前言 你有沒有發現&#xff0c;AI 正在悄悄滲透進我們的生活&#xff1a;寫文案、畫插圖、做PPT、答作業&#xff0c;它幾乎無所不能&#x1f60d; &#xff01;但很多人可能會問&#xff1a; AI&#xff0c;我能用嗎&#xff1f;用得起嗎&#xff1f;適合我嗎&#xff1f;特別…

【保姆級喂飯教程】Git圖形化客戶端Sourcetree安裝及使用教程

目錄 前言一、SourceTree簡介二、安裝教程三、使用教程1. 添加倉庫 四、評價總結后記參考文獻 前言 在查找Git Flow實現工具的時候&#xff0c;看到了SourceTree&#xff0c;支持Git Flow、GitHub Flow等多種Git工作流&#xff0c;安裝簡單學習一下。 一、SourceTree簡介 Git的…

【kafka】kafka3.3.2常用命令

查看kafka服務版本 [rootlocalhost eicar]# kafka-server-start.sh --version [2025-06-23 11:10:54,106] INFO Registered kafka:typekafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$) 3.3.2 (Commit:b66af662e61082cb) [rootlocalhost eicar]#查看消…

LastActivityView -查看電腦上的所有操作記錄

LastActivityView 是一款由 NirSoft 開發的免費工具&#xff0c;適用于 Windows 操作系統。它能夠通過分析系統日志、Prefetch 文件、圖標緩存數據庫、注冊表以及藍屏 Dump 文件等多種來源&#xff0c;綜合展示電腦從安裝系統至今的所有操作記錄。 LastActivityView 的功能 L…

English Practice - Day 3

Hi ChatGPT, I am back. can we start today’s english practice? Welcome back, Kelly! &#x1f60a; Yes — let’s begin today’s English practice! You’re doing great by showing up consistently. &#x1f4aa; Q&#xff1a; What’s the weather like today w…

quickbi看板內嵌入powerbi頁面(含單點登錄解決方法)

quickbi看板內嵌入powerbi頁面&#xff08;含單點登錄解決方法&#xff09; 實現步驟 要實現在quickbi看板中嵌入powerbi頁面&#xff0c;分4步來實現。 1. 新建quickbi看板&#xff0c; 2. 添加內嵌頁面 3. 獲取Powerbi鏈接 4. 將powerbi鏈接粘貼到內嵌頁面中 第一步&am…

CentOS-6如何配置網絡設置IP? 筆記250706

CentOS-6如何配置網絡設置IP? 筆記250706 1?? 參考 1 CentOS 6 網絡配置完全指南 在 CentOS 6 中配置網絡設置主要涉及修改 /etc/sysconfig/network-scripts/ 目錄下的配置文件。以下是詳細配置步驟&#xff1a; 一、配置靜態 IP 地址 1. 編輯網卡配置文件 vi /etc/sys…

WPF學習筆記(24)命令與ICommand接口

命令與ICommand接口一、命令1. ICommandSource2. 示例3. CommandBinding二、ICommand1.ICommand接口2. ICommand用法3. CanExecute總結一、命令 官方文檔&#xff1a;https://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/advanced/commanding-overview 1. ICommandSource 官…

TCP長連接保持在線狀態

TCP長連接是指在一次TCP連接建立后&#xff0c;保持連接狀態較長時間&#xff0c;用于多次數據傳輸&#xff0c;而不是每次通信后立即斷開。這種機制對于需要頻繁通信的應用非常重要。 保持TCP長連接在線的方法 1. 心跳機制(Heartbeat) 實現原理&#xff1a;定期發送小數據包…

華為OD機試 2025B卷 - 報文響應時間 (C++ Python JAVA JS C語言)

2025B卷目錄點擊查看: 華為OD機試2025B卷真題題庫目錄|機考題庫 + 算法考點詳解 2025B卷 100分題型 題目描述 IGMP 協議中,有一個字段稱作最大響應時間 (Max Response Time) ,HOST收到查詢報文,解折出 MaxResponsetime 字段后,需要在 (0,MaxResponseTime] 時間 (s) 內選…

深入理解微服務中的服務注冊與發現(Consul)

在當今數字化浪潮下&#xff0c;微服務架構憑借其高內聚、低耦合的特性&#xff0c;成為眾多企業構建復雜應用系統的首選方案。然而&#xff0c;隨著服務數量的不斷增加&#xff0c;服務之間的調用與管理變得愈發復雜。這時&#xff0c;服務注冊與發現就如同微服務架構中的 “導…

Zephyr【2】-----內核調度[1]

內核調度 Zephyr 內核的調度器是基于什么原則選擇當前執行線程的&#xff1f; 總是選擇優先級最高的就緒線程作為當前線程。 當多個線程優先級相同時&#xff0c;調度器會如何選擇&#xff1f; 線程的 “就緒狀態” 和 “非就緒狀態” 分別指什么&#xff1f;哪些情況會導致…

LangChain內置工具包和聯網搜索

目錄 一、什么是智能體?工具包又是什么&#xff1f; 二、智能體(Agent)的出現是為了解決哪些問題&#xff1f; 三、LangChain里面創建工具方式 3.1 tool 裝飾器&#xff1a;用來定義一個簡單的工具函數,, 可以直接給函數加上這個裝飾器&#xff0c;讓函數成為可調用的工具…

用c++做游戲開發至少要掌握哪些知識?

成長路上不孤單&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///C愛好者&#x1f60a;///持續分享所學&#x1f60a;///如有需要歡迎收藏轉發///&#x1f60a;】 今日分享關于用C做游戲開發的相關內容&#xff01; 關…