Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module tx (
- output reg [8:0] data,
- input wire disp,
- input wire clk,
- input wire rst
- );
- reg [15:0] cnt;
- always @(posedge clk)
- begin
- if (rst) begin
- cnt <= 0;
- data <= 9'h000;
- end else begin
- /* Default is inc */
- cnt <= cnt + 1;
- if (cnt[11]) begin
- /* Packet */
- case (cnt[7:0])
- 8'h00: data <= 9'h1fb; /* K27.7 - S SOP */
- 8'h01: data <= 9'h055; /* Preamble */
- 8'h02: data <= 9'h055;
- 8'h03: data <= 9'h055;
- 8'h04: data <= 9'h055;
- 8'h05: data <= 9'h055;
- 8'h06: data <= 9'h055;
- 8'h07: data <= 9'h055;
- 8'h08: data <= 9'h0d5; /* SFD */
- 8'h09: data <= 9'h000; /* MAC Dest */
- 8'h0a: data <= 9'h001;
- 8'h0b: data <= 9'h002;
- 8'h0c: data <= 9'h003;
- 8'h0d: data <= 9'h004;
- 8'h0e: data <= 9'h005;
- 8'h0f: data <= 9'h000; /* MAC Source */
- 8'h10: data <= 9'h001;
- 8'h11: data <= 9'h002;
- 8'h12: data <= 9'h003;
- 8'h13: data <= 9'h004;
- 8'h14: data <= 9'h005;
- 8'h15: data <= 9'h008; /* IPv4 */
- 8'h16: data <= 9'h000;
- /* Payload */
- 8'h5a: data <= 9'h098; /* FCS */
- 8'h5b: data <= 9'h04b;
- 8'h5c: data <= 9'h06b;
- 8'h5d: data <= 9'h032;
- 8'h5e: data <= 9'h1fd; /* K29.7 - T EOP1 */
- 8'h5f: data <= 9'h1f7; /* K23.7 - R EOP2 */
- default: data <= 9'h0a5;
- endcase
- /* Wrap */
- if (cnt[7:0] == 8'h5f)
- cnt <= 0;
- end else begin
- /* Default */
- data <= (!cnt[0]) ?
- 9'h1bc /* K28.5 */ : (
- disp ?
- 9'h0c5 /* D5.6 */ :
- 9'h050 /* D16.2 */
- );
- end
- end
- end
- endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement