Skip to content

Commit e82fe90

Browse files
committed
branch and files updated
1 parent 8baf1fc commit e82fe90

13 files changed

+2266
-4248
lines changed

Course_Project_report_B6.pdf

619 KB
Binary file not shown.

Inputs/sample_input1.v

+1,036-91
Large diffs are not rendered by default.

Inputs/sample_input7.v

-1,036
This file was deleted.

Outputs/abstracted_model1.v

+1,036-91
Large diffs are not rendered by default.

Outputs/abstracted_model2.v

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11

22
module liftcontroller(start,clk,reset_inside_button,reset_up,reset_down,up_button,down_button,inside_button,present_floor);
33
input start,clk;
4-
input [6:0] up_button,down_button,inside_button;
5-
output [6:0] reset_inside_button,reset_up,reset_down,present_floor;
6-
reg [6:0] reset_inside_button,reset_up,reset_down,present_floor;
4+
input [4:0] up_button,down_button,inside_button;
5+
output [4:0] reset_inside_button,reset_up,reset_down,present_floor;
6+
reg [4:0] reset_inside_button,reset_up,reset_down,present_floor;
77
reg dir_up;
88
reg [4:0] nstate;
99
parameter s0_idle=0,s0_up=1,door_0=2,s1_idle=3,s1_up=4,s1_down=5,

Outputs/abstracted_model3.v

+11-11
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,25 @@
33

44
module rlencoding(data_in,data_in_valid,fast_clk,data_clk,reset,data_out,data_out_valid,read_signal,write_signal,readptr,writeptr,output1,data_clk1);
55

6-
input [7:0] data_in;
6+
input [4:0] data_in;
77
input read_signal,write_signal,fast_clk,data_clk,data_in_valid,reset,data_clk1;
8-
output reg [7:0] data_out;
8+
output reg [4:0] data_out;
99
output data_out_valid;
10-
output [7:0] readptr,writeptr;
10+
output [4:0] readptr,writeptr;
1111
output [2:0] output1;
1212

1313
reg [7:0] buffer [0:255];
14-
reg [7:0] count;
15-
reg [7:0] bufferoutput;
16-
reg [7:0] readptr;
17-
reg [7:0] writeptr;
14+
reg [4:0] count;
15+
reg [4:0] bufferoutput;
16+
reg [4:0] readptr;
17+
reg [4:0] writeptr;
1818
reg [1:0] nstate;
19-
reg [7:0] datacount;
19+
reg [4:0] datacount;
2020
reg [2:0] output1;
2121
reg equal_or_not;
22-
reg [7:0] buffer1;
23-
reg [7:0] buffer2;
24-
reg [7:0] buffer3;
22+
reg [4:0] buffer1;
23+
reg [4:0] buffer2;
24+
reg [4:0] buffer3;
2525
reg flag1;
2626
reg flag2;
2727
reg flag3;

Outputs/abstracted_model4.v

+11-11
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ module usbf_pa( clk, rst,
1919
input clk, rst;
2020

2121
// UTMI TX Interface
22-
output [7:0] tx_data;
22+
output [4:0] tx_data;
2323
output tx_valid;
2424
output tx_valid_last;
2525
input tx_ready;
@@ -33,7 +33,7 @@ input [1:0] data_pid_sel;
3333
input send_zero_length;
3434

3535
// IDMA Interface
36-
input [7:0] tx_data_st;
36+
input [4:0] tx_data_st;
3737
output rd_next;
3838

3939
///////////////////////////////////////////////////////////////////
@@ -54,20 +54,20 @@ reg [4:0] /* synopsys enum state */ state, next_state;
5454
reg last;
5555
reg rd_next;
5656

57-
reg [7:0] token_pid, data_pid; // PIDs from selectors
58-
reg [7:0] tx_data_d;
59-
reg [7:0] tx_data_data;
57+
reg [4:0] token_pid, data_pid; // PIDs from selectors
58+
reg [4:0] tx_data_d;
59+
reg [4:0] tx_data_data;
6060
reg dsel;
6161
reg tx_valid_d;
6262
reg send_token_r;
63-
reg [7:0] tx_spec_data;
63+
reg [4:0] tx_spec_data;
6464
reg crc_sel1, crc_sel2;
6565
reg tx_first_r;
6666
reg send_data_r;
6767
wire crc16_clr;
68-
reg [15:0] crc16;
69-
wire [15:0] crc16_next;
70-
wire [15:0] crc16_rev;
68+
reg [4:0] crc16;
69+
wire [4:0] crc16_next;
70+
wire [4:0] crc16_rev;
7171
wire crc16_add;
7272
reg send_data_r2;
7373
reg tx_valid_r;
@@ -141,8 +141,8 @@ always @(dsel or tx_data_st or tx_spec_data)
141141
always @(crc_sel1 or crc_sel2 or data_pid or crc16_rev)
142142
if(!crc_sel1 && !crc_sel2) tx_spec_data = data_pid;
143143
else
144-
if(crc_sel1) tx_spec_data = crc16_rev[15:8]; // CRC 1
145-
else tx_spec_data = crc16_rev[7:0]; // CRC 2
144+
if(crc_sel1) tx_spec_data = crc16_rev[4:4]; // CRC 1
145+
else tx_spec_data = crc16_rev[4:0]; // CRC 2
146146

147147
assign tx_data = tx_data_d;
148148

Outputs/abstracted_model5.v

+29-29
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ module usbf_pd( clk, rst,
2727
input clk, rst;
2828

2929
//UTMI RX Interface
30-
input [7:0] rx_data;
30+
input [4:0] rx_data;
3131
input rx_valid, rx_active, rx_err;
3232

3333
// Decoded PIDs (used when token_valid is asserted)
@@ -38,13 +38,13 @@ output pid_PRE, pid_ERR, pid_SPLIT, pid_PING;
3838
output pid_cks_err; // Indicates a PID checksum error
3939

4040

41-
output [6:0] token_fadr; // Function address from token
42-
output [3:0] token_endp; // Endpoint number from token
41+
output [4:0] token_fadr; // Function address from token
42+
output [2:0] token_endp; // Endpoint number from token
4343
output token_valid; // Token is valid
4444
output crc5_err; // Token crc5 error
45-
output [10:0] frame_no; // Frame number for SOF tokens
45+
output [4:0] frame_no; // Frame number for SOF tokens
4646

47-
output [7:0] rx_data_st; // Data to memory store unit
47+
output [4:0] rx_data_st; // Data to memory store unit
4848
output rx_data_valid; // Data on rx_data_st is valid
4949
output rx_data_done; // Indicates end of a transfer
5050
output crc16_err; // Data packet CRC 16 error
@@ -56,16 +56,16 @@ output seq_err; // State Machine Sequence Error
5656
// Local Wires and Registers
5757
//
5858

59-
parameter [3:0] // synopsys enum state
59+
parameter [2:0] // synopsys enum state
6060
IDLE = 4'b0001,
6161
ACTIVE = 4'b0010,
6262
TOKEN = 4'b0100,
6363
DATA = 4'b1000;
6464

65-
reg [3:0] /* synopsys enum state */ state, next_state;
65+
reg [2:0] /* synopsys enum state */ state, next_state;
6666
// synopsys state_vector state
6767

68-
reg [7:0] pid; // Packet PDI
68+
reg [4:0] pid; // Packet PDI
6969
reg pid_le_sm; // PID Load enable from State Machine
7070
wire pid_ld_en; // Enable loading of PID (all conditions)
7171
wire pid_cks_err; // Indicates a pid checksum err
@@ -78,11 +78,11 @@ wire pid_PRE, pid_ERR, pid_SPLIT, pid_PING, pid_RES;
7878
wire pid_TOKEN; // All TOKEN packet that we recognize
7979
wire pid_DATA; // All DATA packets that we recognize
8080

81-
reg [7:0] token0, token1; // Token Registers
81+
reg [4:0] token0, token1; // Token Registers
8282
reg token_le_1, token_le_2; // Latch enables for token storage registers
8383
wire [4:0] token_crc5;
8484

85-
reg [7:0] d0, d1, d2; // Data path delay line (used to filter out crcs)
85+
reg [4:0] d0, d1, d2; // Data path delay line (used to filter out crcs)
8686
reg data_valid_d; // Data Valid output from State Machine
8787
reg data_done; // Data cycle complete output from State Machine
8888
reg data_valid0; // Data valid delay line
@@ -101,8 +101,8 @@ reg rx_active_r;
101101
wire [4:0] crc5_out;
102102
wire [4:0] crc5_out2;
103103
wire crc16_clr;
104-
reg [15:0] crc16_sum;
105-
wire [15:0] crc16_out;
104+
reg [4:0] crc16_sum;
105+
wire [4:0] crc16_out;
106106

107107
///////////////////////////////////////////////////////////////////
108108
//
@@ -123,23 +123,23 @@ always @(posedge clk)
123123

124124
assign pid_cks_err = (pid[3:0] != ~pid[7:4]);
125125

126-
assign pid_OUT = pid[3:0] == `USBF_T_PID_OUT;
127-
assign pid_IN = pid[3:0] == `USBF_T_PID_IN;
128-
assign pid_SOF = pid[3:0] == `USBF_T_PID_SOF;
129-
assign pid_SETUP = pid[3:0] == `USBF_T_PID_SETUP;
130-
assign pid_DATA0 = pid[3:0] == `USBF_T_PID_DATA0;
131-
assign pid_DATA1 = pid[3:0] == `USBF_T_PID_DATA1;
132-
assign pid_DATA2 = pid[3:0] == `USBF_T_PID_DATA2;
133-
assign pid_MDATA = pid[3:0] == `USBF_T_PID_MDATA;
134-
assign pid_ACK = pid[3:0] == `USBF_T_PID_ACK;
135-
assign pid_NACK = pid[3:0] == `USBF_T_PID_NACK;
136-
assign pid_STALL = pid[3:0] == `USBF_T_PID_STALL;
137-
assign pid_NYET = pid[3:0] == `USBF_T_PID_NYET;
138-
assign pid_PRE = pid[3:0] == `USBF_T_PID_PRE;
139-
assign pid_ERR = pid[3:0] == `USBF_T_PID_ERR;
140-
assign pid_SPLIT = pid[3:0] == `USBF_T_PID_SPLIT;
141-
assign pid_PING = pid[3:0] == `USBF_T_PID_PING;
142-
assign pid_RES = pid[3:0] == `USBF_T_PID_RES;
126+
assign pid_OUT = pid[2:0] == `USBF_T_PID_OUT;
127+
assign pid_IN = pid[2:0] == `USBF_T_PID_IN;
128+
assign pid_SOF = pid[2:0] == `USBF_T_PID_SOF;
129+
assign pid_SETUP = pid[2:0] == `USBF_T_PID_SETUP;
130+
assign pid_DATA0 = pid[2:0] == `USBF_T_PID_DATA0;
131+
assign pid_DATA1 = pid[2:0] == `USBF_T_PID_DATA1;
132+
assign pid_DATA2 = pid[2:0] == `USBF_T_PID_DATA2;
133+
assign pid_MDATA = pid[2:0] == `USBF_T_PID_MDATA;
134+
assign pid_ACK = pid[2:0] == `USBF_T_PID_ACK;
135+
assign pid_NACK = pid[2:0] == `USBF_T_PID_NACK;
136+
assign pid_STALL = pid[2:0] == `USBF_T_PID_STALL;
137+
assign pid_NYET = pid[2:0] == `USBF_T_PID_NYET;
138+
assign pid_PRE = pid[2:0] == `USBF_T_PID_PRE;
139+
assign pid_ERR = pid[2:0] == `USBF_T_PID_ERR;
140+
assign pid_SPLIT = pid[2:0] == `USBF_T_PID_SPLIT;
141+
assign pid_PING = pid[2:0] == `USBF_T_PID_PING;
142+
assign pid_RES = pid[2:0] == `USBF_T_PID_RES;
143143

144144
assign pid_TOKEN = pid_OUT | pid_IN | pid_SOF | pid_SETUP | pid_PING;
145145
assign pid_DATA = pid_DATA0 | pid_DATA1 | pid_DATA2 | pid_MDATA;

0 commit comments

Comments
 (0)