TriCore
®
TC1.6P & TC1.6E
32-bit Unified Processor Core
Instruction Set Information
V1.0 2013-07
User Manual (Volume 2) 1-8
1.3.1 RTL Functions
Register Transfer Level functions are defined in the table which follows.
Table 1-9 RTL Functions
Function Definition
abs(x) abs(x) returns ((x <0) ? (0 - x) : x);
cache_address_ivld(EA) Defined in ‘Cache RTL Functions’, which follows
cache_address_wb(EA) Defined in ‘Cache RTL Functions’, which follows
cache_address_wi(EA) Defined in ‘Cache RTL Functions’, which follows
cache_index_ivld Defined in ‘Cache RTL Functions’, which follows
cache_index_wb Defined in ‘Cache RTL Functions’, which follows
cache_index_wi Defined in ‘Cache RTL Functions’, which follows
cache_index_wb(EA) Defined in the ‘Cache RTL Functions’ section, which follows. ( TriCore1.6.1
TriCoreS)
cache_index_wi(EA) Defined in the ‘Cache RTL Functions’ section, which follows. ( TriCore1.6.1
TriCoreS)
carry(a,b,c) carry(a,b,c) {
result = a + b + c; // unsigned additions
return result[32];
cdc_decrement() If PSW.CDC == 7’b1111111 returns FALSE, otherwise decrements
PSW.CDC.COUNT and returns TRUE if PSW.CDC.COUNT underflows,
otherwise returns FALSE
cdc_increment() If PSW.CDC == 7'b1111111 returns FALSE, otherwise increments
PSW.CDC.COUNT and returns TRUE if PSW.CDC.COUNT overflows,
otherwise returns FALSE
cdc_zero() Returns TRUE if PCW.CDC.COUNT == 0 or if PSW.CDC == 7'b1111111,
otherwise returns FALSE
leading_ones(x) Returns the number of leading ones of ‘x’
leading_signs(x) Returns the number of leading sign bits of ‘x’
leading_zeros(x) Returns the number of leading zeros of ‘x’
reverse16(n) {n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7], n[8], n[9], n[10], n[11], n[12], n[13],
n[14], n[15]}
round16(n) = {(x + 32'h00008000)[31:16],16'h0000};
ssov(x,y) max_pos = (1 << (y - 1)) - 1;
max_neg = -(1 << (y - 1));
return ((x > max_pos) ? max_pos : ((x < max_neg) ?
max_neg : x ));
suov(x,y) max_pos = (1 << y) - 1;
return ((x > max_pos) ? max_pos : ((x < 0) ? 0 : x));
sign_ext(x) Sign extension; high-order bit of x is left extended
trap(x) Instruction will take trap ‘x’
zero_ext(x) Zero extensions; high-order bits are set to 0