- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi
We are using a SRAM that has a 16-bit wide data bus and /BLE and /BHE signals for byte-write. Writing bytes to addresses 0 to 7 works, with BLE and BHE behaving as expected, although A0 is always at logic 0 (so presumably we must connect A1..A18 to the SRAM). Writing words to addresses 0 to 3 is fine when the addresses are even. When the addresses are odd, though, writing $55AA to the SRAM causes 2 write cycles to consecutive addresses, BUT $55AA is presented on the data bus throughout. So writing $55AA to address 1 causes the bytes $AA,$55,$AA,$55 to appear from addresses 0 to 3, which is clearly wrong. No BLE or BHE activity appears. This reminds me very much of my 68000 days. Is there an address exception? If so this kind of "misbehaviour" could be OK if an exception is raised. The PTF file contents are below (note we're using the "dynamic bus sizing[memory]" option):## This class.ptf file built by Component Editor# 2005.06.23.15:36:32# # DO NOT MODIFY THIS FILE# If you hand-modify this file you will likely# interfere with Component Editor's ability to# read and edit it. And then Component Editor# will overwrite your changes anyway. So, for# the very best results, just relax and# DO NOT MODIFY THIS FILE#
CLASS is61lv256
{
ASSOCIATED_FILES
{
Add_Program = "the_wizard_ui";
Edit_Program = "the_wizard_ui";
Generator_Program = "cb_generator.pl";
}
MODULE_DEFAULTS
{
class = "is61lv256";
class_version = "2.0";
SYSTEM_BUILDER_INFO
{
Instantiate_In_System_Module = "0";
Is_Enabled = "1";
Date_Modified = "--unknown--";
Top_Level_Ports_Are_Enumerated = "1";
}
WIZARD_SCRIPT_ARGUMENTS
{
}
SIMULATION
{
DISPLAY
{
}
}
COMPONENT_BUILDER
{
GLS_SETTINGS
{
}
}
PORT_WIRING
{
}
SLAVE avalonS
{
SYSTEM_BUILDER_INFO
{
Bus_Type = "avalon_tristate";
Address_Width = "18";
Address_Alignment = "dynamic";
Data_Width = "16";
Has_Base_Address = "1";
Has_IRQ = "0";
Setup_Time = "10ns";
Hold_Time = "10ns";
Read_Wait_States = "20ns";
Write_Wait_States = "20ns";
Read_Latency = "0";
Maximum_Pending_Read_Transactions = "0";
Is_Printable_Device = "0";
Is_Memory_Device = "1";
Is_Readable = "1";
Is_Writable = "1";
Minimum_Uninterrupted_Run_Length = "1";
}
COMPONENT_BUILDER
{
ATS_SETTINGS
{
Setup_Value = "10";
Read_Wait_Value = "20";
Write_Wait_Value = "20";
Hold_Value = "10";
Timing_Units = "ns";
Read_Latency_Value = "0";
Max_Pending_Read_Transactions_Value = "1";
Address_Alignment = "dynamic";
Is_Printable_Device = "0";
interface_name = "Avalon Tristate Slave";
Minimum_Arbitration_Shares = "1";
external_wait = "0";
Is_Memory_Device = "1";
}
}
PORT_WIRING
{
PORT Adds
{
width = "18";
width_expression = "";
direction = "input";
type = "address";
is_shared = "1";
}
PORT Data
{
width = "16";
width_expression = "";
direction = "inout";
type = "data";
is_shared = "1";
}
PORT WE_N
{
width = "1";
width_expression = "";
direction = "input";
type = "write_n";
is_shared = "0";
}
PORT OE_N
{
width = "1";
width_expression = "";
direction = "input";
type = "read_n";
is_shared = "0";
}
PORT SRAM_CE_N
{
width = "1";
width_expression = "";
direction = "input";
type = "chipselect_n";
is_shared = "0";
}
PORT avalon_clk
{
width = "1";
width_expression = "";
direction = "input";
type = "clk";
is_shared = "0";
}
PORT BE
{
width = "2";
width_expression = "";
direction = "input";
type = "byteenable_n";
is_shared = "1";
}
}
}
}
USER_INTERFACE
{
USER_LABELS
{
name = "IS61LV256";
technology = "User Logic";
}
WIZARD_UI the_wizard_ui
{
title = "IS61LV256 - {{ $MOD }}";
CONTEXT
{
H = "WIZARD_SCRIPT_ARGUMENTS/hdl_parameters";
M = "";
SBI_ = "SYSTEM_BUILDER_INFO";
SBI_avalonS = "SLAVE avalonS/SYSTEM_BUILDER_INFO";
}
PAGES main
{
PAGE 1
{
align = "left";
title = "IS61LV256 2.0 Settings";
layout = "vertical";
TEXT
{
title = "Built on: 2005.06.23.15:36:32";
}
TEXT
{
title = "Class name: is61lv256";
}
TEXT
{
title = "Class version: 2.0";
}
TEXT
{
title = "Component name: IS61LV256";
}
TEXT
{
title = "Component Group: User Logic";
}
}
}
}
}
DEFAULT_GENERATOR
{
top_module_name = "";
black_box = "1";
vhdl_synthesis_files = "";
verilog_synthesis_files = "";
black_box_files = "";
}
COMPONENT_BUILDER
{
CACHED_HDL_INFO
{
# cached hdl info, emitted by cbGuinevereApp.CBFrameRealtime.getDocumentCachedHDLInfoSection:123
# used only by Component Builder
}
HDL_PARAMETERS
{
# generated by cbDocument.CBDocument.getParameterContainer:385
# used only by Component Editor
}
SW_FILES
{
}
built_on = "2005.06.23.15:36:32";
}
CB_GENERATOR
{
HDL_FILES
{
}
top_module_name = "";
emit_system_h = "0";
}
SOPC_Builder_Version = "5.00";
}
Link Copied
4 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
is your wiring correct ?
i use ISSI IS61LV25616AL 256k x 16 wiring: NIOS [A18..A1] -> SRAM [A17..A0] userlogic is setup as following: Bus Interface Type: Avalon Memory Slave PORT NAME | Width | Direction | Shared | Type address | 18 | input | yes | address write_n | 1 | input | yes | write_n read_n | 1 | input | yes | read_n writedata | 16 | inout | yes | data chipselect_n | 1 | input | --- | chipselect_n be_n | 2 | input | yes | byteenable_n system clock frequency is 50 Mhz i use 1 setup, 1 wait, 1 wait cycle- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Jason,
> Writing words to addresses 0 to 3 is fine when the addresses are even. When the > addresses are odd, though, ... Don't do this -- writing a halfword to an odd address results in and undefined operation. Take a look at the instruction set for details. > Is there an address exception? No. Regards, --Scott- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Could I make this (addition of Address Exception) a formal change request to Altera, please?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Jason,
> a formal change request to Altera You should probably do this at the Altera website. Regards, --Scott
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page