URL
https://opencores.org/ocsvn/i2c/i2c/trunk
[/] [i2c/] [trunk/] [rtl/] [verilog/] [i2c_master_top.v] - Diff between revs 11 and 13
Go to most recent revision |
Show entire file |
Details |
Blame |
View Log
Rev 11 |
Rev 13 |
Line 61... |
Line 61... |
// done signal: command completed, clear command register
|
// done signal: command completed, clear command register
|
wire done;
|
wire done;
|
|
|
// core enable signal
|
// core enable signal
|
wire core_en;
|
wire core_en;
|
|
wire ien;
|
|
|
// status register signals
|
// status register signals
|
wire irxack;
|
wire irxack;
|
reg rxack; // received aknowledge from slave
|
reg rxack; // received aknowledge from slave
|
reg tip; // transfer in progress
|
reg tip; // transfer in progress
|
Line 144... |
Line 145... |
wire ack = cr[3];
|
wire ack = cr[3];
|
wire iack = cr[0];
|
wire iack = cr[0];
|
|
|
// decode control register
|
// decode control register
|
assign core_en = ctr[7];
|
assign core_en = ctr[7];
|
|
assign ien = ctr[6];
|
|
|
// hookup byte controller block
|
// hookup byte controller block
|
i2c_master_byte_ctrl byte_controller (
|
i2c_master_byte_ctrl byte_controller (
|
.clk(wb_clk_i),
|
.clk(wb_clk_i),
|
.rst(wb_rst_i),
|
.rst(wb_rst_i),
|
Line 199... |
Line 201... |
if (!rst_i)
|
if (!rst_i)
|
wb_inta_o <= #1 1'b0;
|
wb_inta_o <= #1 1'b0;
|
else if (wb_rst_i)
|
else if (wb_rst_i)
|
wb_inta_o <= #1 1'b0;
|
wb_inta_o <= #1 1'b0;
|
else
|
else
|
wb_inta_o <= #1 irq_flag && ctr[6]; // interrupt signal is only generated when IEN (interrupt enable bit is set)
|
wb_inta_o <= #1 irq_flag && ien; // interrupt signal is only generated when IEN (interrupt enable bit is set)
|
|
|
// assign status register bits
|
// assign status register bits
|
assign sr[7] = rxack;
|
assign sr[7] = rxack;
|
assign sr[6] = i2c_busy;
|
assign sr[6] = i2c_busy;
|
assign sr[5:2] = 4'h0; // reserved
|
assign sr[5:2] = 4'h0; // reserved
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.