⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 select.py

📁 turbo码的verilog程序
💻 PY
字号:
##########################################################################                                                              ########  select.py                                                   ########                                                              ########  This file is part of the turbo decoder IP core project      ########  http://www.opencores.org/projects/turbocodes/               ########                                                              ########  Author(s):                                                  ########      - David Brochart(dbrochart@opencores.org)               ########                                                              ########  All additional information is available in the README.txt   ########  file.                                                       ########                                                              ##############################################################################                                                              ######## Copyright (C) 2005 Authors                                   ########                                                              ######## This source file may be used and distributed without         ######## restriction provided that this copyright statement is not    ######## removed from the file and that any derivative work contains  ######## the original copyright notice and the associated disclaimer. ########                                                              ######## This source file is free software; you can redistribute it   ######## and/or modify it under the terms of the GNU Lesser General   ######## Public License as published by the Free Software Foundation; ######## either version 2.1 of the License, or (at your option) any   ######## later version.                                               ########                                                              ######## This source is distributed in the hope that it will be       ######## useful, but WITHOUT ANY WARRANTY; without even the implied   ######## warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ######## PURPOSE. See the GNU Lesser General Public License for more  ######## details.                                                     ########                                                              ######## You should have received a copy of the GNU Lesser General    ######## Public License along with this source; if not, download it   ######## from http://www.opencores.org/lgpl.shtml                     ########                                                              ##########################################################################from misc import min4, cod2, mux4, min8, cod3from myhdl import Signal, instancesdef accDistSel(accDist, accDistCod, accDistOut, q = 8):    """ Accumulated distance selection (one out of four, per state)    accDist     -- in  : array of 32 (q+1)-bit accumulated distances    accDistCod  -- out : array of 8 2-bit selection signals    accDistOut  -- out : array of 8 (q+1)-bit selected accumulated distances    """    min4_i = [None for i in range(8)]    cod2_i = [None for i in range(8)]    mux4_i = [None for i in range(8)]    comp = [Signal(bool(0)) for i in range(24)]    from2to = [0, 25, 6, 31,   8, 17, 14, 23,   20, 13, 18, 11,   28, 5, 26, 3,   4, 29, 2, 27,   12, 21, 10, 19,   16, 9, 22, 15,   24, 1, 30, 7]    for i in range(8):        min4_i[i] = min4(accDist[from2to[4*i]], accDist[from2to[4*i+1]], accDist[from2to[4*i+2]], accDist[from2to[4*i+3]], comp[3*i], comp[3*i+1], comp[3*i+2], q)    for i in range(8):        cod2_i[i] = cod2(comp[3*i], comp[3*i+1], comp[3*i+2], accDistCod[i])    for i in range(8):        mux4_i[i] = mux4(accDist[from2to[4*i]], accDist[from2to[4*i+1]], accDist[from2to[4*i+2]], accDist[from2to[4*i+3]], accDistCod[i], accDistOut[i])    return instances()def stateSel(stateDist, selState, q = 8):    """ State selection (one out of eight).    q           -- accumulated distance width    stateDist   -- in  : state accumulated distance    selState    -- out : selected state code    """    tmp = [Signal(bool(0)) for i in range(7)]    min8_i0 = min8(stateDist, tmp, q)    cod3_i0 = cod3(tmp, selState)    return instances()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -