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

📄 test3232hv.v

📁 VHDL实例
💻 V
字号:
// File translated by VhdlToVerilog v0.1
// Vhdl to Verilog RTL transformer
// Release: Brier EDA Studio 
// *** All Rights Reserved By Brier Van ***
/*
LIBRARY IEEE;
*/
/*
USE IEEE.STD_LOGIC_1164.ALL;
*/
/*
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
*/
/*
use ieee.std_logic_arith.all;
*/
//与AVR通讯协议
//*************************************************************************
//------------------------------------------------
//|ON/OFF(1bit)|out channal(5bit)|in channal(5bit)|
//------------------------------------------------
//ON/OFF 1 -> OFF   0 -> ON
//in/out channal first bit is high bit
//数据上升沿有效,注意!数据进入FPGA前还经过7404,要反向!!!!!
//***************************************************************************

module testhv3232(
CLK,
SDATA,
LATCH,
tp,
data_in,
HV_IN,
HV_OUT
);

input CLK, SDATA, LATCH;
output tp;
// for test
output[10:0]data_in;
// for test
input[31:0]HV_IN;
output[31:0]HV_OUT;


wire   CLK;
wire   SDATA;
wire   LATCH;
wire   tp;
reg  [10:0]data_in;
wire  [31:0]HV_IN;
reg  [31:0]HV_OUT;


reg [0:31]status[0:31];
//state reg
reg [31:0]flag;
integer i;

  assign tp = hv_in[16];
  always @(posedge LATCH or negedge CLK)
  begin
    reg [10:0]DATA_TEMP;

    if(LATCH == 1'b 1)
    begin
      data_in <= data_temp;
      status[conv_integer[data_temp[9:5]]] <= conv_integer[data_temp[4:0]];
      flag[conv_integer[data_temp[9:5]]] <= data_temp[10];
    end
    else 
    begin
      DATA_TEMP[10:1] = DATA_TEMP[9:0];
      DATA_TEMP[0] =  ~SDATA;
    end
  end

  always @(status or flag or HV_IN)
  begin
    reg [0:31]index;

    for(i=0;i<=31;i=i+1)
    begin
      if(flag[i] == 1'b 0)
      begin
        index = status[i];
        HV_OUT[i] <=  ~HV_IN[index];
      end
      else
      begin
        HV_OUT[i] <= 1'b 0;
      end
    end
  end


endmodule

⌨️ 快捷键说明

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