OpenCores
URL https://opencores.org/ocsvn/can/can/trunk

Subversion Repositories can

[/] [can/] [tags/] [rel_10/] [rtl/] [verilog/] [can_btl.v] - Diff between revs 35 and 75

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 35 Rev 75
Line 48... Line 48...
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
//
//
// CVS Revision History
// CVS Revision History
//
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
 
// Revision 1.12  2003/02/14 20:17:01  mohor
 
// Several registers added. Not finished, yet.
 
//
// Revision 1.11  2003/02/09 18:40:29  mohor
// Revision 1.11  2003/02/09 18:40:29  mohor
// Overload fixed. Hard synchronization also enabled at the last bit of
// Overload fixed. Hard synchronization also enabled at the last bit of
// interframe.
// interframe.
//
//
// Revision 1.10  2003/02/09 02:24:33  mohor
// Revision 1.10  2003/02/09 02:24:33  mohor
Line 116... Line 119...
  sample_point,
  sample_point,
  sampled_bit,
  sampled_bit,
  sampled_bit_q,
  sampled_bit_q,
  tx_point,
  tx_point,
  hard_sync,
  hard_sync,
  resync,
  go_seg1,
 
 
  /* Output from can_bsp module */
  /* Output from can_bsp module */
  rx_idle,
  rx_idle,
  transmitting,
  transmitting,
 
  overjump_sync_seg,
  last_bit_of_inter
  last_bit_of_inter
 
 
 
 
 
 
 
 
Line 150... Line 154...
input         triple_sampling;
input         triple_sampling;
 
 
/* Output from can_bsp module */
/* Output from can_bsp module */
input         rx_idle;
input         rx_idle;
input         transmitting;
input         transmitting;
 
input         overjump_sync_seg;
input         last_bit_of_inter;
input         last_bit_of_inter;
 
 
/* Output signals from this module */
/* Output signals from this module */
output        clk_en;
output        clk_en;
output        sample_point;
output        sample_point;
output        sampled_bit;
output        sampled_bit;
output        sampled_bit_q;
output        sampled_bit_q;
output        tx_point;
output        tx_point;
output        hard_sync;
output        hard_sync;
output        resync;
output        go_seg1;
 
 
 
 
 
 
reg     [8:0] clk_cnt;
reg     [8:0] clk_cnt;
reg           clk_en;
reg           clk_en;
Line 183... Line 188...
wire          go_sync;
wire          go_sync;
wire          go_seg1;
wire          go_seg1;
wire          go_seg2;
wire          go_seg2;
wire [8:0]    preset_cnt;
wire [8:0]    preset_cnt;
wire          sync_window;
wire          sync_window;
 
wire          resync;
 
 
 
 
assign preset_cnt = (baud_r_presc + 1'b1)<<1;        // (BRP+1)*2
assign preset_cnt = (baud_r_presc + 1'b1)<<1;        // (BRP+1)*2
assign hard_sync  =   (rx_idle | last_bit_of_inter)  & (~rx) & sampled_bit & (~sync_blocked) & (~transmitting);  // Hard synchronization
assign hard_sync  =   (rx_idle | last_bit_of_inter)  & (~rx) & sampled_bit & (~sync_blocked) & (~transmitting);  // Hard synchronization
assign resync     =  (~rx_idle)                      & (~rx) & sampled_bit & (~sync_blocked) & (~resync_blocked) & (~transmitting);  // Re-synchronization
assign resync     =  (~rx_idle)                      & (~rx) & sampled_bit & (~sync_blocked) & (~resync_blocked) & (~transmitting);  // Re-synchronization
Line 279... Line 284...
/* Quant counter */
/* Quant counter */
always @ (posedge clk or posedge rst)
always @ (posedge clk or posedge rst)
begin
begin
  if (rst)
  if (rst)
    quant_cnt <= 0;
    quant_cnt <= 0;
  else if (go_sync | go_seg1 | go_seg2)
  else if (go_sync | go_seg1 & (~overjump_sync_seg) | go_seg2)
    quant_cnt <=#Tp 0;
    quant_cnt <=#Tp 0;
 
  else if (go_seg1 & overjump_sync_seg)
 
    quant_cnt <=#Tp 1;
  else if (clk_en)
  else if (clk_en)
    quant_cnt <=#Tp quant_cnt + 1'b1;
    quant_cnt <=#Tp quant_cnt + 1'b1;
end
end
 
 
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.