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

Subversion Repositories lwrisc

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /lwrisc/trunk/BENCH/test1
    from Rev 16 to Rev 19
    Reverse comparison

Rev 16 → Rev 19

/seg7_decode.c
0,0 → 1,21
unsigned char byte2seg7(unsigned char my_byte)
{unsigned char seg;
switch (my_byte){
case 0: return 0xc0;//~8'b00111111;//b11111100;
case 1: return 0xf6;//~8'b00000110;//01100000;
case 2: return 0xa4;//~8'b01011011;//11011010;
case 3: return 0xb0;//~8'b01001111;//11010010;
case 4: return 0x99;//~8'b01100110;//1100110;
case 5: return 0x92;//~8'b01101101;//10110110;
case 6: return 0x82;//~8'b01111101;//10111110;
case 7: return 0xf8;//~8'b00000111;//11100000;
case 8: return 0x8f;//~8'b01111111;//11111110;
case 9: return 0x90;//~8'b01101111;//11110110;
case 10: return 0x88;//~8'b01110111;//11101110;
case 11: return 0x83;//~8'b01111100;//00111110;
case 12: return 0xa7;//~8'b01011000;//00011010;
case 13: return 0xa1;//~8'b01011110;//01111010;
case 14: return 0x86;//~8'b01111001;//10011110;
case 15: return 0x8e;//~8'b01110001;//10001110;
default : return 0xff;}
}
/sw_led.c
0,0 → 1,52
#device PIC16F54
 
#define PORT_DATA *(unsigned char*)0
#define IN_PORT_ADDR *(unsigned char*)1
#define OUT_PORT_ADDR *(unsigned char*)2
#define STATUS *(unsigned char*)3
 
#define PORT_ADDR_SEG 0
#define PORT_ADDR_LED 8
#define PORT_ADDR_SW 9
#define PORT_ADDR_KEY 10
#define PORT_ADDR_BEEP 11
 
void outport(unsigned char addr,unsigned char data)
{
OUT_PORT_ADDR = addr;
PORT_DATA = data;
}
 
unsigned char inport(unsigned char addr)
{
IN_PORT_ADDR = addr;
return PORT_DATA;
}
 
#define GetKey() inport(PORT_ADDR_KEY)
#define GetSwich() inport(PORT_ADDR_SW)
#define BeepSet(data) outport(PORT_ADDR_BEEP,data)
#define BeepON() outport(PORT_ADDR_BEEP,1)
#define BeepOFF() outport(PORT_ADDR_BEEP,0)
#define SetLed(data) outport(PORT_ADDR_LED,data)
 
#define Seg7Led(addr,data) outport(addr,data)
#define Seg7Led0(data) outport(0,data)
#define Seg7Led1(data) outport(1,data)
#define Seg7Led2(data) outport(2,data)
#define Seg7Led3(data) outport(3,data)
#define Seg7Led4(data) outport(4,data)
#define Seg7Led5(data) outport(5,data)
#define Seg7Led6(data) outport(6,data)
#define Seg7Led7(data) outport(7,data)
 
void main()
{
unsigned char i;
while(1){
i=GetSwich();
SetLed(i);
}
 
}
/alt_mem_set.h
0,0 → 1,4
`define ALT_MEM_WIDTHAD 7
`define ALT_MEM_NUMWORDS 128
`define MIF_NAME init_file.mif
 
/test1.c
0,0 → 1,27
#include <16c57.h>//the is no 16f57.h file in the my version of ccs.so using it instered
 
#byte DISP = 100
 
disp_byte(char c){
switch (c){
case 0:DISP ='0';break;
case 1:DISP ='1';break;
case 2:DISP ='2';break;
case 3:DISP ='3';break;
case 4:DISP ='4';break;
case 5:DISP ='5';break;
case 6:DISP ='6';break;
case 7:DISP ='7';break;
case 8:DISP ='8';break;
case 9:DISP ='9';break;
}
}
 
main(){
char i=0,j=0;
while(1){
i=++i%10;
disp_byte(i);
}
}
 
/Dasm.txt
0,0 → 1,118
0000 : GOTO 101
0001 : GOTO 3
0002 : GOTO 26
0003 : MOVFW 0x0e
0004 : CLRF 0x09
0005 : SUBWFW 0x0d
0006 : BTFSC STATUS [0]
0007 : GOTO 11
0008 : MOVFW 0x0d
0009 : MOVWF 0x08
0010 : GOTO 23
0011 : CLRF 0x08
0012 : MOVLW 8
0013 : MOVWF 0x0f
0014 : RLFF 0x0d
0015 : RLFF 0x08
0016 : MOVFW 0x0e
0017 : SUBWFW 0x08
0018 : BTFSC STATUS [0]
0019 : MOVWF 0x08
0020 : RLFF 0x09
0021 : DECFSZF 0x0f [7]
0022 : GOTO 14
0023 : BCF STATUS [5]
0024 : BCF STATUS [6]
0025 : GOTO 110
0026 : MOVFW 0x0d
0027 : MOVWF 0x08
0028 : MOVFF 0x08
0029 : BTFSC STATUS [2]
0030 : GOTO 68
0031 : MOVLW 1
0032 : SUBWFW 0x08
0033 : BTFSC STATUS [2]
0034 : GOTO 71
0035 : MOVLW 2
0036 : SUBWFW 0x08
0037 : BTFSC STATUS [2]
0038 : GOTO 74
0039 : MOVLW 3
0040 : SUBWFW 0x08
0041 : BTFSC STATUS [2]
0042 : GOTO 77
0043 : MOVLW 4
0044 : SUBWFW 0x08
0045 : BTFSC STATUS [2]
0046 : GOTO 80
0047 : MOVLW 5
0048 : SUBWFW 0x08
0049 : BTFSC STATUS [2]
0050 : GOTO 83
0051 : MOVLW 6
0052 : SUBWFW 0x08
0053 : BTFSC STATUS [2]
0054 : GOTO 86
0055 : MOVLW 7
0056 : SUBWFW 0x08
0057 : BTFSC STATUS [2]
0058 : GOTO 89
0059 : MOVLW 8
0060 : SUBWFW 0x08
0061 : BTFSC STATUS [2]
0062 : GOTO 92
0063 : MOVLW 9
0064 : SUBWFW 0x08
0065 : BTFSC STATUS [2]
0066 : GOTO 95
0067 : GOTO 98
0068 : MOVLW 48
0069 : MOVWF 0x1f
0070 : GOTO 98
0071 : MOVLW 49
0072 : MOVWF 0x1f
0073 : GOTO 98
0074 : MOVLW 50
0075 : MOVWF 0x1f
0076 : GOTO 98
0077 : MOVLW 51
0078 : MOVWF 0x1f
0079 : GOTO 98
0080 : MOVLW 52
0081 : MOVWF 0x1f
0082 : GOTO 98
0083 : MOVLW 53
0084 : MOVWF 0x1f
0085 : GOTO 98
0086 : MOVLW 54
0087 : MOVWF 0x1f
0088 : GOTO 98
0089 : MOVLW 55
0090 : MOVWF 0x1f
0091 : GOTO 98
0092 : MOVLW 56
0093 : MOVWF 0x1f
0094 : GOTO 98
0095 : MOVLW 57
0096 : MOVWF 0x1f
0097 : GOTO 98
0098 : BCF STATUS [5]
0099 : BCF STATUS [6]
0100 : GOTO 115
0101 : CLRF FSR
0102 : CLRF 0x0b
0103 : CLRF 0x0c
0104 : INCFF 0x0b
0105 : MOVFW 0x0b
0106 : MOVWF 0x0d
0107 : MOVLW 10
0108 : MOVWF 0x0e
0109 : GOTO 1
0110 : MOVFW 0x08
0111 : MOVWF 0x0b
0112 : MOVFW 0x0b
0113 : MOVWF 0x0d
0114 : GOTO 2
0115 : GOTO 104
0116 : NOP
2047 : GOTO 0
/test1.HEX
0,0 → 1,18
:10000000650A030A1A0A0E0269008D0003060B0A2C
:100010000D022800170A6800080C2F006D03680302
:100020000E028800030628006903EF020E0AA304EB
:10003000C3046E0A0D02280028024306440A010C7C
:1000400088004306470A020C880043064A0A030C4C
:10005000880043064D0A040C88004306500A050C2C
:1000600088004306530A060C88004306560A070C0C
:1000700088004306590A080C880043065C0A090CEC
:10008000880043065F0A620A300C3F00620A310CA6
:100090003F00620A320C3F00620A330C3F00620AE2
:1000A000340C3F00620A350C3F00620A360C3F00F8
:1000B000620A370C3F00620A380C3F00620A390CB2
:1000C0003F00620AA304C304730A64006B006C005F
:1000D000AB020B022D000A0C2E00010A08022B00B5
:0A00E0000B022D00020A680A03005B
:020FFE00000AE7
:00000001FF
;PIC16C57
/sim_rom.v
0,0 → 1,278
//This file was created by a tool wrietten with C.
module sim_rom (
address,
clock,
q);
input [10:0] address;
input clock;
output [11:0] q;
reg [10:0] address_latched;
// Instantiate the memory array itself.
reg [11:0] mem[0:2048-1];
initial begin
mem[0000] = 12'b101001100101;
mem[0001] = 12'b101000000011;
mem[0002] = 12'b101000011010;
mem[0003] = 12'b001000001110;
mem[0004] = 12'b000001101001;
mem[0005] = 12'b000010001101;
mem[0006] = 12'b011000000011;
mem[0007] = 12'b101000001011;
mem[0008] = 12'b001000001101;
mem[0009] = 12'b000000101000;
mem[0010] = 12'b101000010111;
mem[0011] = 12'b000001101000;
mem[0012] = 12'b110000001000;
mem[0013] = 12'b000000101111;
mem[0014] = 12'b001101101101;
mem[0015] = 12'b001101101000;
mem[0016] = 12'b001000001110;
mem[0017] = 12'b000010001000;
mem[0018] = 12'b011000000011;
mem[0019] = 12'b000000101000;
mem[0020] = 12'b001101101001;
mem[0021] = 12'b001011101111;
mem[0022] = 12'b101000001110;
mem[0023] = 12'b010010100011;
mem[0024] = 12'b010011000011;
mem[0025] = 12'b101001101110;
mem[0026] = 12'b001000001101;
mem[0027] = 12'b000000101000;
mem[0028] = 12'b001000101000;
mem[0029] = 12'b011001000011;
mem[0030] = 12'b101001000100;
mem[0031] = 12'b110000000001;
mem[0032] = 12'b000010001000;
mem[0033] = 12'b011001000011;
mem[0034] = 12'b101001000111;
mem[0035] = 12'b110000000010;
mem[0036] = 12'b000010001000;
mem[0037] = 12'b011001000011;
mem[0038] = 12'b101001001010;
mem[0039] = 12'b110000000011;
mem[0040] = 12'b000010001000;
mem[0041] = 12'b011001000011;
mem[0042] = 12'b101001001101;
mem[0043] = 12'b110000000100;
mem[0044] = 12'b000010001000;
mem[0045] = 12'b011001000011;
mem[0046] = 12'b101001010000;
mem[0047] = 12'b110000000101;
mem[0048] = 12'b000010001000;
mem[0049] = 12'b011001000011;
mem[0050] = 12'b101001010011;
mem[0051] = 12'b110000000110;
mem[0052] = 12'b000010001000;
mem[0053] = 12'b011001000011;
mem[0054] = 12'b101001010110;
mem[0055] = 12'b110000000111;
mem[0056] = 12'b000010001000;
mem[0057] = 12'b011001000011;
mem[0058] = 12'b101001011001;
mem[0059] = 12'b110000001000;
mem[0060] = 12'b000010001000;
mem[0061] = 12'b011001000011;
mem[0062] = 12'b101001011100;
mem[0063] = 12'b110000001001;
mem[0064] = 12'b000010001000;
mem[0065] = 12'b011001000011;
mem[0066] = 12'b101001011111;
mem[0067] = 12'b101001100010;
mem[0068] = 12'b110000110000;
mem[0069] = 12'b000000111111;
mem[0070] = 12'b101001100010;
mem[0071] = 12'b110000110001;
mem[0072] = 12'b000000111111;
mem[0073] = 12'b101001100010;
mem[0074] = 12'b110000110010;
mem[0075] = 12'b000000111111;
mem[0076] = 12'b101001100010;
mem[0077] = 12'b110000110011;
mem[0078] = 12'b000000111111;
mem[0079] = 12'b101001100010;
mem[0080] = 12'b110000110100;
mem[0081] = 12'b000000111111;
mem[0082] = 12'b101001100010;
mem[0083] = 12'b110000110101;
mem[0084] = 12'b000000111111;
mem[0085] = 12'b101001100010;
mem[0086] = 12'b110000110110;
mem[0087] = 12'b000000111111;
mem[0088] = 12'b101001100010;
mem[0089] = 12'b110000110111;
mem[0090] = 12'b000000111111;
mem[0091] = 12'b101001100010;
mem[0092] = 12'b110000111000;
mem[0093] = 12'b000000111111;
mem[0094] = 12'b101001100010;
mem[0095] = 12'b110000111001;
mem[0096] = 12'b000000111111;
mem[0097] = 12'b101001100010;
mem[0098] = 12'b010010100011;
mem[0099] = 12'b010011000011;
mem[0100] = 12'b101001110011;
mem[0101] = 12'b000001100100;
mem[0102] = 12'b000001101011;
mem[0103] = 12'b000001101100;
mem[0104] = 12'b001010101011;
mem[0105] = 12'b001000001011;
mem[0106] = 12'b000000101101;
mem[0107] = 12'b110000001010;
mem[0108] = 12'b000000101110;
mem[0109] = 12'b101000000001;
mem[0110] = 12'b001000001000;
mem[0111] = 12'b000000101011;
mem[0112] = 12'b001000001011;
mem[0113] = 12'b000000101101;
mem[0114] = 12'b101000000010;
mem[0115] = 12'b101001101000;
mem[0116] = 12'b000000000011;
mem[2047] = 12'b101000000000;
end
// Latch address
always @(posedge clock)
address_latched <= address;
// READ
assign q = mem[address_latched];
 
endmodule
 
/*
0000: GOTO 101
0001: GOTO 3
0002: GOTO 26
0003: MOVFW 0x0e
0004: CLRF 0x09
0005: SUBWFW 0x0d
0006: BTFSC STATUS [0]
0007: GOTO 11
0008: MOVFW 0x0d
0009: MOVWF 0x08
0010: GOTO 23
0011: CLRF 0x08
0012: MOVLW 8
0013: MOVWF 0x0f
0014: RLFF 0x0d
0015: RLFF 0x08
0016: MOVFW 0x0e
0017: SUBWFW 0x08
0018: BTFSC STATUS [0]
0019: MOVWF 0x08
0020: RLFF 0x09
0021: DECFSZF 0x0f [7]
0022: GOTO 14
0023: BCF STATUS [5]
0024: BCF STATUS [6]
0025: GOTO 110
0026: MOVFW 0x0d
0027: MOVWF 0x08
0028: MOVFF 0x08
0029: BTFSC STATUS [2]
0030: GOTO 68
0031: MOVLW 1
0032: SUBWFW 0x08
0033: BTFSC STATUS [2]
0034: GOTO 71
0035: MOVLW 2
0036: SUBWFW 0x08
0037: BTFSC STATUS [2]
0038: GOTO 74
0039: MOVLW 3
0040: SUBWFW 0x08
0041: BTFSC STATUS [2]
0042: GOTO 77
0043: MOVLW 4
0044: SUBWFW 0x08
0045: BTFSC STATUS [2]
0046: GOTO 80
0047: MOVLW 5
0048: SUBWFW 0x08
0049: BTFSC STATUS [2]
0050: GOTO 83
0051: MOVLW 6
0052: SUBWFW 0x08
0053: BTFSC STATUS [2]
0054: GOTO 86
0055: MOVLW 7
0056: SUBWFW 0x08
0057: BTFSC STATUS [2]
0058: GOTO 89
0059: MOVLW 8
0060: SUBWFW 0x08
0061: BTFSC STATUS [2]
0062: GOTO 92
0063: MOVLW 9
0064: SUBWFW 0x08
0065: BTFSC STATUS [2]
0066: GOTO 95
0067: GOTO 98
0068: MOVLW 48
0069: MOVWF 0x1f
0070: GOTO 98
0071: MOVLW 49
0072: MOVWF 0x1f
0073: GOTO 98
0074: MOVLW 50
0075: MOVWF 0x1f
0076: GOTO 98
0077: MOVLW 51
0078: MOVWF 0x1f
0079: GOTO 98
0080: MOVLW 52
0081: MOVWF 0x1f
0082: GOTO 98
0083: MOVLW 53
0084: MOVWF 0x1f
0085: GOTO 98
0086: MOVLW 54
0087: MOVWF 0x1f
0088: GOTO 98
0089: MOVLW 55
0090: MOVWF 0x1f
0091: GOTO 98
0092: MOVLW 56
0093: MOVWF 0x1f
0094: GOTO 98
0095: MOVLW 57
0096: MOVWF 0x1f
0097: GOTO 98
0098: BCF STATUS [5]
0099: BCF STATUS [6]
0100: GOTO 115
0101: CLRF FSR
0102: CLRF 0x0b
0103: CLRF 0x0c
0104: INCFF 0x0b
0105: MOVFW 0x0b
0106: MOVWF 0x0d
0107: MOVLW 10
0108: MOVWF 0x0e
0109: GOTO 1
0110: MOVFW 0x08
0111: MOVWF 0x0b
0112: MOVFW 0x0b
0113: MOVWF 0x0d
0114: GOTO 2
0115: GOTO 104
0116: NOP
2047: GOTO 0
*/
/*
covered instructions:
 
GOTO
MOVFW
CLRF
SUBWFW
BTFSC
MOVWF
MOVLW
RLFF
DECFSZF
BCF
MOVFF
INCFF
NOP
*/
/tested_instructions.txt
0,0 → 1,14
 
GOTO
MOVFW
CLRF
SUBWFW
BTFSC
MOVWF
MOVLW
RLFF
DECFSZF
BCF
MOVFF
INCFF
NOP
/init_file.mif
0,0 → 1,126
WIDTH=12;
DEPTH=2048;
 
ADDRESS_RADIX=HEX;
DATA_RADIX=HEX;
 
CONTENT BEGIN
0 : A65;
1 : A03;
2 : A1A;
3 : 20E;
4 : 69;
5 : 8D;
6 : 603;
7 : A0B;
8 : 20D;
9 : 28;
A : A17;
B : 68;
C : C08;
D : 2F;
E : 36D;
F : 368;
10 : 20E;
11 : 88;
12 : 603;
13 : 28;
14 : 369;
15 : 2EF;
16 : A0E;
17 : 4A3;
18 : 4C3;
19 : A6E;
1A : 20D;
1B : 28;
1C : 228;
1D : 643;
1E : A44;
1F : C01;
20 : 88;
21 : 643;
22 : A47;
23 : C02;
24 : 88;
25 : 643;
26 : A4A;
27 : C03;
28 : 88;
29 : 643;
2A : A4D;
2B : C04;
2C : 88;
2D : 643;
2E : A50;
2F : C05;
30 : 88;
31 : 643;
32 : A53;
33 : C06;
34 : 88;
35 : 643;
36 : A56;
37 : C07;
38 : 88;
39 : 643;
3A : A59;
3B : C08;
3C : 88;
3D : 643;
3E : A5C;
3F : C09;
40 : 88;
41 : 643;
42 : A5F;
43 : A62;
44 : C30;
45 : 3F;
46 : A62;
47 : C31;
48 : 3F;
49 : A62;
4A : C32;
4B : 3F;
4C : A62;
4D : C33;
4E : 3F;
4F : A62;
50 : C34;
51 : 3F;
52 : A62;
53 : C35;
54 : 3F;
55 : A62;
56 : C36;
57 : 3F;
58 : A62;
59 : C37;
5A : 3F;
5B : A62;
5C : C38;
5D : 3F;
5E : A62;
5F : C39;
60 : 3F;
61 : A62;
62 : 4A3;
63 : 4C3;
64 : A73;
65 : 64;
66 : 6B;
67 : 6C;
68 : 2AB;
69 : 20B;
6A : 2D;
6B : C0A;
6C : 2E;
6D : A01;
6E : 208;
6F : 2B;
70 : 20B;
71 : 2D;
72 : A02;
73 : A68;
74 : 3;
7FF : A00;
ND;
/tov.bat
0,0 → 1,7
path;
path=..\..\ctool
hexdasm test1.hex
copy *.mif ..\..\rtl
copy *.h ..\..\rtl
copy *.v ..\..\rtl
copy *.h ..\..\sim

powered by: WebSVN 2.1.0

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