got rid of some underscores in filenames, modules

This commit is contained in:
Kip Macsai-Goren 2021-06-07 18:54:05 -04:00
parent c96695b1b6
commit 1e174a8244
7 changed files with 26 additions and 26 deletions

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////// ///////////////////////////////////////////
// cam_line.sv // camline.sv
// //
// Written: tfleming@hmc.edu & jtorrey@hmc.edu 6 April 2021 // Written: tfleming@hmc.edu & jtorrey@hmc.edu 6 April 2021
// Modified: kmacsaigoren@hmc.edu 1 June 2021 // Modified: kmacsaigoren@hmc.edu 1 June 2021
@ -28,7 +28,7 @@
`include "wally-config.vh" `include "wally-config.vh"
module cam_line #(parameter KEY_BITS = 20, module camline #(parameter KEY_BITS = 20,
parameter SEGMENT_BITS = 10) ( parameter SEGMENT_BITS = 10) (
input clk, reset, input clk, reset,

View File

@ -27,11 +27,11 @@
module decoder #(parameter BINARY_BITS = 3) ( module decoder #(parameter BINARY_BITS = 3) (
input [BINARY_BITS-1:0] binary, input [BINARY_BITS-1:0] binary,
output [(2**BINARY_BITS)-1:0] one_hot output [(2**BINARY_BITS)-1:0] onehot
); );
// *** Double check whether this synthesizes as expected // *** Double check whether this synthesizes as expected
// -- Ben @ May 4: only warning is that "signed to unsigned assignment occurs"; that said, I haven't checked the netlists // -- Ben @ May 4: only warning is that "signed to unsigned assignment occurs"; that said, I haven't checked the netlists
assign one_hot = 1 << binary; assign onehot = 1 << binary;
endmodule endmodule

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////// ///////////////////////////////////////////
// priority_encoder.sv // priorityencoder.sv
// //
// Written: tfleming@hmc.edu & jtorrey@hmc.edu 7 April 2021 // Written: tfleming@hmc.edu & jtorrey@hmc.edu 7 April 2021
// Based on implementation from https://www.allaboutcircuits.com/ip-cores/communication-controller/priority-encoder/ // Based on implementation from https://www.allaboutcircuits.com/ip-cores/communication-controller/priority-encoder/
@ -31,8 +31,8 @@
`include "wally-config.vh" `include "wally-config.vh"
module priority_encoder #(parameter BINARY_BITS = 3) ( module priorityencoder #(parameter BINARY_BITS = 3) (
input logic [2**BINARY_BITS - 1:0] one_hot, input logic [2**BINARY_BITS - 1:0] onehot,
output logic [BINARY_BITS - 1:0] binary output logic [BINARY_BITS - 1:0] binary
); );
@ -40,7 +40,7 @@ module priority_encoder #(parameter BINARY_BITS = 3) (
always_comb begin always_comb begin
binary = 0; binary = 0;
for (i = 0; i < 2**BINARY_BITS; i++) begin for (i = 0; i < 2**BINARY_BITS; i++) begin
if (one_hot[i]) binary = i; // prioritizes the most significant bit if (onehot[i]) binary = i; // prioritizes the most significant bit
end end
end end
// *** triple check synthesizability here // *** triple check synthesizability here

View File

@ -143,10 +143,10 @@ module tlb #(parameter ENTRY_BITS = 3,
assign PageOffset = VirtualAddress[11:0]; assign PageOffset = VirtualAddress[11:0];
// TLB entries are evicted according to the LRU algorithm // TLB entries are evicted according to the LRU algorithm
tlb_lru #(ENTRY_BITS) lru(.*); tlblru #(ENTRY_BITS) lru(.*);
tlb_ram #(ENTRY_BITS) tlb_ram(.*); tlbram #(ENTRY_BITS) tlbram(.*);
tlb_cam #(ENTRY_BITS, `VPN_BITS, `VPN_SEGMENT_BITS) tlb_cam(.*); tlbcam #(ENTRY_BITS, `VPN_BITS, `VPN_SEGMENT_BITS) tlbcam(.*);
// unswizzle useful PTE bits // unswizzle useful PTE bits
assign PTE_U = PTEAccessBits[4]; assign PTE_U = PTEAccessBits[4];

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////// ///////////////////////////////////////////
// tlb_cam.sv // tlbcam.sv
// //
// Written: jtorrey@hmc.edu 16 February 2021 // Written: jtorrey@hmc.edu 16 February 2021
// Modified: kmacsaigoren@hmc.edu 1 June 2021 // Modified: kmacsaigoren@hmc.edu 1 June 2021
@ -28,7 +28,7 @@
`include "wally-config.vh" `include "wally-config.vh"
module tlb_cam #(parameter ENTRY_BITS = 3, module tlbcam #(parameter ENTRY_BITS = 3,
parameter KEY_BITS = 20, parameter KEY_BITS = 20,
parameter SEGMENT_BITS = 10) ( parameter SEGMENT_BITS = 10) (
input clk, reset, input clk, reset,
@ -60,7 +60,7 @@ module tlb_cam #(parameter ENTRY_BITS = 3,
generate generate
genvar i; genvar i;
for (i = 0; i < NENTRIES; i++) begin for (i = 0; i < NENTRIES; i++) begin
cam_line #(KEY_BITS, SEGMENT_BITS) cam_line( camline #(KEY_BITS, SEGMENT_BITS) camline(
.CAMLineWrite(CAMLineWrite[i] && TLBWrite), .CAMLineWrite(CAMLineWrite[i] && TLBWrite),
.PageType(PageTypeList[i]), .PageType(PageTypeList[i]),
.Match(Matches[i]), .Match(Matches[i]),
@ -71,7 +71,7 @@ module tlb_cam #(parameter ENTRY_BITS = 3,
// In case there are multiple matches in the CAM, select only one // In case there are multiple matches in the CAM, select only one
// *** it might be guaranteed that the CAM will never have multiple matches. // *** it might be guaranteed that the CAM will never have multiple matches.
// If so, this is just an encoder // If so, this is just an encoder
priority_encoder #(ENTRY_BITS) match_priority(Matches, VPNIndex); priorityencoder #(ENTRY_BITS) matchpriority(Matches, VPNIndex);
assign CAMHit = |Matches & ~TLBFlush; assign CAMHit = |Matches & ~TLBFlush;
assign HitPageType = PageTypeList[VPNIndex]; assign HitPageType = PageTypeList[VPNIndex];

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////// ///////////////////////////////////////////
// tlb_lru.sv // tlblru.sv
// //
// Written: tfleming@hmc.edu & jtorrey@hmc.edu 16 February 2021 // Written: tfleming@hmc.edu & jtorrey@hmc.edu 16 February 2021
// Modified: // Modified:
@ -24,7 +24,7 @@
// OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/////////////////////////////////////////// ///////////////////////////////////////////
module tlb_lru #(parameter ENTRY_BITS = 3) ( module tlblru #(parameter ENTRY_BITS = 3) (
input clk, reset, input clk, reset,
input TLBWrite, input TLBWrite,
input TLBFlush, input TLBFlush,
@ -45,12 +45,12 @@ module tlb_lru #(parameter ENTRY_BITS = 3) (
logic AllUsed; logic AllUsed;
// Convert indices to one-hot encodings // Convert indices to one-hot encodings
decoder #(ENTRY_BITS) read_decoder(VPNIndex, ReadLineOneHot); decoder #(ENTRY_BITS) readdecoder(VPNIndex, ReadLineOneHot);
// *** should output writelineonehot so we don't have to decode WriteIndex outside // *** should output writelineonehot so we don't have to decode WriteIndex outside
decoder #(ENTRY_BITS) write_decoder(WriteIndex, WriteLineOneHot); decoder #(ENTRY_BITS) writedecoder(WriteIndex, WriteLineOneHot);
// Find the first line not recently used // Find the first line not recently used
priority_encoder #(ENTRY_BITS) first_nru(~RUBits, WriteIndex); priorityencoder #(ENTRY_BITS) firstnru(~RUBits, WriteIndex);
// Access either the hit line or written line // Access either the hit line or written line
assign AccessLineOneHot = (TLBWrite) ? WriteLineOneHot : ReadLineOneHot; assign AccessLineOneHot = (TLBWrite) ? WriteLineOneHot : ReadLineOneHot;
@ -63,7 +63,7 @@ module tlb_lru #(parameter ENTRY_BITS = 3) (
assign RUBitsNext = (AllUsed) ? AccessLineOneHot : RUBitsAccessed; assign RUBitsNext = (AllUsed) ? AccessLineOneHot : RUBitsAccessed;
// Update LRU state on any TLB hit or write // Update LRU state on any TLB hit or write
flopenrc #(NENTRIES) lru_state(clk, reset, TLBFlush, (CAMHit || TLBWrite), flopenrc #(NENTRIES) lrustate(clk, reset, TLBFlush, (CAMHit || TLBWrite),
RUBitsNext, RUBits); RUBitsNext, RUBits);
endmodule endmodule

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////// ///////////////////////////////////////////
// tlb_ram.sv // tlbram.sv
// //
// Written: jtorrey@hmc.edu & tfleming@hmc.edu 16 February 2021 // Written: jtorrey@hmc.edu & tfleming@hmc.edu 16 February 2021
// Modified: // Modified:
@ -27,7 +27,7 @@
`include "wally-config.vh" `include "wally-config.vh"
module tlb_ram #(parameter ENTRY_BITS = 3) ( module tlbram #(parameter ENTRY_BITS = 3) (
input clk, reset, input clk, reset,
input [ENTRY_BITS-1:0] VPNIndex, // Index to read from input [ENTRY_BITS-1:0] VPNIndex, // Index to read from
input [ENTRY_BITS-1:0] WriteIndex, input [ENTRY_BITS-1:0] WriteIndex,
@ -45,13 +45,13 @@ module tlb_ram #(parameter ENTRY_BITS = 3) (
logic [NENTRIES-1:0] RAMEntryWrite; logic [NENTRIES-1:0] RAMEntryWrite;
decoder #(ENTRY_BITS) tlb_ram_decoder(WriteIndex, RAMEntryWrite); decoder #(ENTRY_BITS) tlbramdecoder(WriteIndex, RAMEntryWrite);
// Generate a flop for every entry in the RAM // Generate a flop for every entry in the RAM
generate generate
genvar i; genvar i;
for (i = 0; i < NENTRIES; i++) begin: tlb_ram_flops for (i = 0; i < NENTRIES; i++) begin: tlb_ram_flops
flopenr #(`XLEN) pte_flop(clk, reset, RAMEntryWrite[i] & TLBWrite, flopenr #(`XLEN) pteflop(clk, reset, RAMEntryWrite[i] & TLBWrite,
PageTableEntryWrite, ram[i]); PageTableEntryWrite, ram[i]);
end end
endgenerate endgenerate