Package: gplcver Version: 2.12a-1.1 Severity: important Tags: upstream With the attached files input, it segfaults on:
cver teste-memoria.v -- System Information: Debian Release: squeeze/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 2.6.32-3-amd64 (SMP w/2 CPU cores) Locale: LANG=pt_BR.UTF-8, LC_CTYPE=pt_BR.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages gplcver depends on: ii libc6 2.10.2-6 Embedded GNU C Library: Shared lib gplcver recommends no packages. gplcver suggests no packages. -- no debconf information
`include "memoria.v" module TesteMemoria; reg clock; reg ativo; reg escrita; reg [3:0] endereco; wire [31:0] dados; reg [31:0] escrever; assign dados = ativo && escrita ? escrever : 32'bz; initial begin $dumpfile("teste-memoria.vcd"); $dumpvars; clock = 0; #2 ativo = 1; escrita = 1; endereco = 0; escrever = 1; #2 ativo = 0; escrita = 0; escrever = 8'bz; #2 ativo = 1; #2 $finish; end always #1 clock = ~clock; Memoria memoria(clock, ativo, escrita, endereco, dados); endmodule // TesteMemoria
module Memoria(clock, ativo, escrita, endereco, dados); input clock; // "Implementar uma porta de entrada utilizada para sinalização. Essa porta // indicará à memória que a mesma deve realizar a operação desejada;" input ativo; // "Implementar uma porta indicando se o acesso é de leitura ou escrita;" input escrita; // "Implementar uma porta de endereço de 4 bits;" input [3:0] endereco; // "Implementar uma porta de dados de 32 bits utilizando inout para // compartilhar leitura e escrita;" inout [31:0] dados; wire clock; wire ativo; wire escrita; wire [3:0] endereco; wire [31:0] dados; // "512 bytes de memória física em que a palavra é de 4 bytes;" // // 512 / 4 = 128 reg [31:0] memoria[127:0]; assign dados = ativo && !escrita ? memoria[endereco] : 8'bz; always @(posedge clock) if(ativo && escrita) memoria[endereco] <= dados; endmodule // disco