Delete GCD.scala

This commit is contained in:
Junaid Ahmed 2020-09-07 12:18:11 +05:00 committed by GitHub
parent 5e73c9b102
commit a39dfaabdf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 0 additions and 123 deletions

View File

@ -1,123 +0,0 @@
package lib
import chisel3._
import chisel3.util._
///////////////////////////////////////////////////////////////
class rvdff(val Width:Int = 1, val short:Int = 0) extends Module with RequireAsyncReset {
val io = IO(new Bundle {
val in = Input(UInt(Width.W))
val out = Output(UInt())
})
val inter = if(short==0) RegNext(io.in, init =0.U) else io.in
io.out := inter
}
/////////////////////////////////////////////////////////////
class caller extends Module {
val io = IO(new Bundle {
val in = Input(UInt(32.W))
val out = Output(UInt())
})
val u0 = Module(new rvdff(32))
io <> u0.io
}
///////////////////////////////////////////////////////////////
class reg1 extends Module with RequireAsyncReset{
val io = IO(new Bundle{
val in = Input(Bool())
val out = Output(Bool())
})
io.out := RegNext(io.in, init = 0.U)
}
class top extends Module with RequireAsyncReset{
val io = IO(new Bundle{
val in = Input(Bool())
val out = Output(Bool())
})
val negReset = (~reset.asBool).asAsyncReset
val r0 = Module(new reg1)
r0.io<>io
r0.reset := negReset
}
///////////////////////////////////////////////////////////////
class rvbradder() extends Module {
val io = IO(new Bundle {
val pc = Input(UInt(31.W))
val offset = Input(UInt(12.W))
val dout = Output(UInt())
})
val inter = io.pc(11,0) +& io.offset
val cout = inter(inter.getWidth-1)
val pc_inc = io.pc(io.pc.getWidth-1, 12) + 1.U
val pc_dec = io.pc(io.pc.getWidth-1, 12) - 1.U
val sign = io.offset(io.offset.getWidth -1)
io.dout:= Cat(Fill(19,(sign ^(~cout))) & io.pc(io.pc.getWidth-1,12) |
(Fill(19,(~sign & cout)) & pc_inc) |
(Fill(19,(sign & ~cout)) & pc_dec) , inter(inter.getWidth-2,0))
}
///////////////////////////////////////////////////////////////
class encoder_generator(val width:Int=4) extends Module {
val io = IO (new Bundle {
val in = Input (UInt(width.W))
val out = Output (UInt(log2Ceil(width).W))
})
var z:Array[UInt] = new Array[UInt](width)
for(i<- 0 until width){
z(i) = i.U
}
io.out := Mux1H(io.in , z)
}
///////////////////////////////////////////////////////////////
class rvrangecheck(val CCM_SADR:Int = 0, val CCM_SIZE:Int = 128) extends Module {
val io = IO(new Bundle {
val addr = Input(UInt(32.W))
val in_range = Output(Bool())
val in_region = Output(Bool())
//val test = Output(UInt())
})
val start_addr = (CCM_SADR.U)(32.W)
val region = start_addr(31,28)
val MASK_BITS = 10+log2Ceil(CCM_SIZE)
io.in_region := io.addr(31,28) === region
val inter = if(CCM_SIZE == 48) io.addr(31, MASK_BITS) === start_addr(31, MASK_BITS) & ~(io.addr(MASK_BITS-1,MASK_BITS-2).andR)
else (io.addr(31,MASK_BITS)===start_addr(31,MASK_BITS))
io.in_range := inter
}
////////////////////////////////////////////////////////////////
class tocopy extends Module{
val io = IO(new Bundle {
val in1 = Input(UInt(1.W))
val in2 = Input(UInt(1.W))
val out = Output(UInt())
})
io.out := io.in1 +& io.in2
}
class exp extends Module{
val io = IO(new Bundle{
val in1 = Input(UInt(1.W))
val in2 = Input(UInt(1.W))
val out = Output(UInt())
})
val mod_array= new Array[tocopy](2)
mod_array(0) = Module(new tocopy)
mod_array(0).io.in1:=io.in1
mod_array(0).io.in2:=io.in2
mod_array(1) = Module(new tocopy)
mod_array(1).io.in1:=io.in1
mod_array(1).io.in2:=io.in2
io.out:= mod_array(0).io.out +& mod_array(1).io.out
}
////////////////////////////////////////////////////////////////
//println((new chisel3.stage.ChiselStage).emitVerilog(new exp))